web第六天,CSS优先级与盒子模型

一,CSS继承

  文字相关的样式可以被继承

  例 : color   line-height   font-style   font-size   font-weight

  布局相关的样式不能被继承 (默认行为)

    通过设置inherit值,可以改变默认的继承方式。

二,CSS优先级

 

  相同样式优先级

    当设置相同样式时,后写的优先级较高,但不建议出现重复设置样式的情况。

 

  内部样式与外部样式

    内部样式与外部样式优先级相同,如果都设置了相同样式,后引入的优先级高。

 

  单一样式优先级

    style行间> id>   class>   tag>    *>   继承(inherit)

    1000  100  10  1

  

    !important 权重 > 10000(建议不要乱用,非规范写法)

    场景 : 紧急情况下使用。

 

    标签+类的权重 >  单类

 

    群组和单一样式?

    群组选择器与单一选择器的权重相同,靠后写的优先级高。

 

    层次选择器

 

    权重 :把对应的数值加起来

    约分 : 把相同的选择器约掉

    建议 : 层次选择器最好不要超过三层

三,CSS盒子模型

 

  1,盒子 :

            content < padding < border < margin

        内容  内填充  边框  外填充

 

    padding : 内填充(内边距)

      写了一个值 : 20px (上右下左)

      写了两个值 : 20px  30px (上下  左右)

      写了三个值 : 20px 30px 20px(上  左右  下)

      写了四个值 : 20px 20px 20px 20px(上  右  下  左)

 

    margin : 外填充 (外边距)

 

      写了一个值 : 20px (上右下左)

      写了两个值 : 20px  30px (上下  左右)

      写了三个值 : 20px 30px 20px(上  左右  下)

      写了四个值 : 20px 20px 20px 20px(上  右  下  左)

 

    注 :1. 背景颜色会填充到margin以内的区域。

           背景图 : 默认背景图会平铺border  padding  content区域。

      只有一张背景图时,从padding区域开始添加(默认行为)

    2,文字只会在content区域

    3,padding属性不可以出现负值,margin属性可以出现负值。

  

  2,box-sizing?

    box-sizing属性

    content-box(默认值): 整个盒子的宽  =  content(width)+ padding + border

    border-box : 整个盒子的宽 = content(width-padding-border)+ padding +border

 

  应用场景 :

    1,可以省略一些计算的环节。

    2,可以针对100%的换算。 

 

  3,盒子模型的问题

    1,margin叠加的问题

      只会出现在上下margin中,左右是不存在margin叠加问题的。

      特点 : 会取叠加中较大的值。

      解决方法:

        1.BFC规范(以后介绍)

        2.想办法只给一个元素添加间距

 

    2,margin传递的问题

      margin传递的问题只会出现在嵌套的结构中,且只有margin-top会有传递的问题,其他三个方向是没有传递的问题的

      特点 : margin-top会导致父容器与子容器一起向下移动。

      解决方法 :

        1.BFC规范(比较推荐)

        2.给父容器加边框(不太推荐)

        3.margin换成padding(将子容器的margin属性改为父容器的padding属性)

 

  4,盒子的应用

 

    1,margin : 0  auto(实现容器的左右居中,上下不行)

      上下居中方法 : 1.position  2.transition  3.flex(以后学习)

      文字居中方法 : 左右居中(text-align : center) 上下居中 (line-height : height)

 

    2,当一个盒子不写宽度的时候?

      盒子的宽度默认与父容器的宽度相同,

      并且当设置padding,border,margin的时候,盒子的content会从新计算。

 

三,PS的简单学习

 

  1,对图像进行放大缩小 : alt+鼠标滑轮

  2,工具栏中的第二个 :矩形选框工具(测量尺寸大小)

  3,通过信息面板,可以查看到测量的尺寸大小(在窗口菜单可以找到,需要把单位改为像素)

 

四,overflow(溢出隐藏)

 

  给盒子一个固定大小后,当盒子里的内容比较多的情况下,就可能产生溢出的现象。

  溢出隐藏 :

    hidden : 溢出部分隐藏

    scroll : 容器出现下拉页面

    auto : 自动化(未超出时为hidden,超出后变为scroll)

 

  overflow-x :hidden;

  overflow-y : scroll;(可以对容器的x,y分别设置溢出属性)

 

盒子嵌套实例


 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <title>Document</title> 7 <style> 8 /* #box1{width: 350px ;height: 350px;border: 1px black dashed;padding: 30px;} 9  #box2{10  border: 5px blue solid;11  padding: 20px;12  background: #f6f6f6;13  }14  #box3{15  background: #ffa0df;16  padding: 40px;17  }18  #box4{19  border: 1px white dashed;20  padding: 3px;21  }22  #box5{23  border: 1px white dashed;24  padding: 49px;25  }26  #box6{27  border: 5px #fcff00 solid;28  height: 100px;29  background: #96ff38;30  } */31  #box1{32  width: 400px;height: 400px;33  border: 1px black dashed;34 }35  #box2{36  border: 5px #d7effe solid;37  margin: 30px;38  background: #f6f6f6;39 }40  #box3{41  background: #ffa0df;42  margin: 20px;43  border: 1px #ffa0df dashed;44 }45  #box4{46  margin: 40px;47  border: 1px white dashed;48 }49  #box5{50  border: 1px white dashed;51  margin: 3px;52 }53  #box6{54  height: 100px;55  margin:49px;56  border: 5px #fcff00 solid;57  background: #96ff38;58 }59 </style>60 </head>61 <body>62 <div id="box1">63 <div id="box2">64 <div id="box3">65 <div id="box4">66 <div id="box5">67 <div id="box6">68 69 </div>70 </div>71 </div>72 </div>73 </div>74 </div>75 </body>76 </html>

盒子嵌套实例

 

相关文章