默认继承是衡量一个属性该不该被应用的参照之一,也是解决CSS困惑的重要因素
默认继承值没有特殊性,可以被任意选择器覆盖!
通常情况下,影响页面布局的属性不会被默认继承,如margin,padding,影响视觉效果的会默认继承,如color,line-height。
1visibility: hidden
考虑以下情况
<div class="third" style="visibility: hidden;">
<div class="third_child">1111</div>
</div>
为什么.third_child不可见?因为它继承了父元素的visibility属性。
2 text-indent 还是 padding-left
.tree{
text-indent: 20px;
height: 20px;
}
<div class="tree">
<p>1</p>
<div >
<p>2</p>
<div>
<p>3</p>
</div>
</div>
</div>
当text-indent换成padding-left效果是一样的,但原理去差很多
前者是因为后代元素都继承了.tree 的text-indent属性,子元素可以覆盖这个值来实现自己的行为。
而后者是因为子元素的内容区缩小了,导致文本的起始点相左偏移了20像素,后代不能覆盖这个值,自己的padding-left属性只能以.tree的padding-left属性为基础发挥作用。
3.line-height
<div style="line-height: 40px;">
<div style="display: inline-block;width: 100%;">123231</div>
<div style="display: inline-block;width: 100%;">123231</div>
</div>
最外层的高度变为80px,是因为子元素都继承了line-height: 40px;这个属性。
4 inherit 强制继承
规定值从父元素继承,padding-left:inherit;
<div style="padding-left: 20px;">
<div style="padding-left: inherit;">123231</div>
</div>
网友评论