css的三大特性分别是
继承性,层叠性,和优先级。
说一下css中width的继承性及其特殊情况:
继承性概念详解:css的继承性指的被包在内部的标签拥有外部标签的样式性,子元素可以继承父元素的属性。但也不是所有的css属性都有继承性的
常见的拥有继承性的属性
文本相关属性以 text- 、 font- 、line-开头的属性和color。
列表相关属性以 list-开头的属性
- text-align, text-indent
- font-family,font-size, font-style,font-weight, font,
- line-height
- list-style-image,list-style-position,list-style-type, list-style
- color
其中也有例外如a标签的字体颜色是不继承的,它有它自己的默认颜色-蓝色,下划线等自带样式,h1~h6的字体大小是不继承的,跟a标签一样都是有自带默认值,除非单独为其设置样式 才可以改变。
有人会说子级盒子我不设置的情况下,也会有父级的宽高,其实也是分情况的:
-
当符合css默认“继承”的情况下(子元素必须是块级元素且无定位或浮动),是不需要写width属性,就可以默认“继承”的。
-
子元素是一个内联元素,或内联块元素;或者是定位元素或浮动元素;是需要自己手动加的。可以把它设置称一个固定值(100px),也可以把它设置为一个百分数(100%)
-
当使用width:100%的时候 也要注意其基准点到底是谁:
(1)对于使用position:relative的子元素或浮动的子元素,其基准点始终是基于其直接父元素而言的,跟其父元素是否有定位无关。
(2)对于绝对定位position:absolute的子元素,其基准点是相对于离其最近的一层定位父元素而言。如果其所有父级元素均无定位,则是相对于body而言。
(3)对于使用position:fixed的子元素,其基准点就是body。跟父元素无关。