Blogger Information
Blog 19
fans 0
comment 0
visits 13205
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
box-sizing属性、伪类以及媒体查询
王浩
Original
506 people have browsed it
  1. 作业内容:
  2. 1. box-sizing属性解决了什么问题?实例演示
  3. 2. 伪类选择器的参数 an+b的经典应用场景,实例演示
  4. 3. 媒体查询移动优先与PC优先的区别与联系,实例演示

一、关于box-sizing属性的作用以及使用场景

  1. <style>
  2. .rule {
  3. color: yellow;
  4. width: 300px;
  5. background-color: red;
  6. }
  7. .box {
  8. color: #fff;
  9. width: 100px;
  10. background-color: blue;
  11. display: table-cell;
  12. padding: 0px;
  13. }
  14. </style>
  15. <div class="rule">这是一个长300px的DIV</div>
  16. <div class="box">这是一个长100px的DIV</div>
  17. <div class="box">这是一个长100px的DIV</div>
  18. <div class="box">这是一个长100px的DIV</div>

以上代码可以看出在没有使用padding属性的时候,上面一个红底黄字的DIV宽度,与下面三个蓝底白字的DIV宽度总和相等。但,如果将.box的padding属性设置一个值,如5px;那么图片显示效果将会变成如下图示:

这样就有可能会撑破页面,破坏想要的显示效果。
而这个时候,给.box类添加一个box-sizing属性,值为border-box

  1. box-sizing: border-box;

则可以让元素大小局限在指定的宽度内。即:指定width=内容width+padding的width+border的width。显示效果如下:

这样的话,后期在调整padding属性和border等属性的时候,就不会撑破页面,也就不需要再作更多的其他调整。

二、伪类选择器

经常会有这么一种场景,系统的导航(变称菜单)是由后台登陆的角色权限判断动态生成的。这个时候就没有办法给每一条记录添加一个指定的class,就算要加,也只能把所有的数据都添加成同一个class。这个时候,我们需要指定被选中的那一条显示高亮。又或者是有的表格,数据太多。我们需要将隔行做成背景颜色不一样,来提升视觉效果。这个时候我们就需要用到伪类选择器。伪类选择器也可以精简我们的HTML代码。不需要添加太多的class类。只需要在最外层容器添加一个class就可以了。

下面我们来码代码,以更便捷的知道伪类的实际使用。

  1. <ul class="list">
  2. <li>item1</li>
  3. <li>item2</li>
  4. <li>item3</li>
  5. <li>item4</li>
  6. <li>item5</li>
  7. <li>item6</li>
  8. <li>item7</li>
  9. <li>item8</li>
  10. </ul>
  11. <style>
  12. /* 针对第三条数据,改变样式 */
  13. .list > :nth-of-type(3) {
  14. color: red;
  15. }
  16. /* 针对倒数第二条数据,改变样式 */
  17. .list > :nth-last-of-type(2) {
  18. color: blue;
  19. }
  20. /* 循环查找,这个时候我们要用到an+b的方式 */
  21. /* 从第三个元素开始,后面每次跳过一次元素 */
  22. .list > :nth-of-type(2n + 3) {
  23. background-color: #eee;
  24. }
  25. /* 循环查找,这个时候我们要用到an+b的方式 */
  26. /* 从第一个元素开始,后面每次跳过一次元素 */
  27. .list > :nth-of-type(2n + 1) {
  28. background-color: #eee;
  29. }
  30. /* 循环查找,这个时候我们要用到an+b的方式 */
  31. /* 从第0个元素开始,后面每次跳过一次元素,即偶数行 */
  32. .list > :nth-of-type(2n) {
  33. background-color: #eee;
  34. }
  35. </style>

上效果图:

三、媒体查询,涉及到移动优先和PC优先

所谓移动优先,即系统默认是从最小的元素显示开始,如果屏幕宽度变大,就逐步增大;相反,PC优先,则优先显示最大的效果,然后逐步递减,多话不说,上代码:

移动优先的案例:

  1. <style>
  2. :root {
  3. font-size: 12px;
  4. }
  5. @media (min-width: 480px) {
  6. :root {
  7. font-size: 14px;
  8. }
  9. }
  10. @media (min-width: 640px) {
  11. :root {
  12. font-size: 16px;
  13. }
  14. }
  15. @media (min-width: 960px) {
  16. :root {
  17. font-size: 18px;
  18. }
  19. }
  20. .btn {
  21. width: 10rem;
  22. height: 10rem;
  23. }
  24. </style>
  25. <button class="btn">这是个响应式按钮</button>

PC端优先的按例:

  1. <style>
  2. :root {
  3. font-size: 18px;
  4. }
  5. @media (max-width: 960px) {
  6. :root {
  7. font-size: 16px;
  8. }
  9. }
  10. @media (max-width: 640px) {
  11. :root {
  12. font-size: 14px;
  13. }
  14. }
  15. @media (max-width: 480px) {
  16. :root {
  17. font-size: 12px;
  18. }
  19. }
  20. .btn {
  21. width: 10rem;
  22. height: 10rem;
  23. }
  24. </style>
  25. <button class="btn">这是个响应式按钮</button>
Correcting teacher:PHPzPHPz

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post