- !import 声明的样式优先级最高
- 如果优先级相同的,后面出现的样式会覆盖前面的,后面的生效
- 继承得到的样式优先级最低
- 通用选择器
*, 子选择器,后代选择器,相邻选择器,权重为0,不在优先级等级里面 - 样式表的优先级顺序:内联样式 > 内部style样式 > 外部样式 > 浏览器样式 > 用户自定义样式 > 浏览器默认样式
css哪些属性是可继承,哪些是不可继承的?
css可继属性
css不可继承属性
隐藏元素的方法
diplay中block, inline, inline-block区别
伪元素,伪类区别
z-index属性在什么情况下会失效
z-index的使用时在有两个重叠的标签,在一定的情况下,控制其中一个在另一个上方/下方出现。
z-index值越大,就约在上面
z-index元素的position属性需要是relative, absolute, fixed
z-index属性在下列情况下会失效
- 父元素postion为relative时,子元素的z-index失效。解决:父元素position改为absolute或static
- 元素没有设置position属性为非static属性,解决:设置该元素的position属性为relative, absolute, fixed中一种
- 元素在设置z-index的同时还设置了float浮动,解决:去除float, 改为display:inline-block
元素的层叠顺序
由上到下分别是:
- 背景和边框:建立当前层叠上下文元素的背景和边框
- 负的z-index:在当前的层叠上下文中,z-index的值为负数
- 块级盒: 文档流内非行内非定位后代元素
- 浮动盒:非定位浮动元素
- 行内盒:文档流内行内级非定位后代元素
- z-index:0
- 正的z-index
注意:当定位元素z-index:auto的时候,生成盒在当前层叠上下文的层级为0, 不会建立新的层叠上下文,除非是根元素
postion属性以及区别
li 与 li 之间有看不见的空白间隔是什么原因引起的?如何解决?
浏览器会把inline内联元素间的空白字符(空格、换行、Tab等)渲染成一个空格。为了美观,通常是一个
<li>放在一行,这导致<li>换行后产生换行字符,它变成一个空格,占用了一个字符的宽度。
解决办法:
(1)为
<li>设置float:left。不足:有些容器是不能设置浮动,如左右切换的焦点图等。 (2)将所有<li>写在同一行。不足:代码不美观。 (3)将<ul>内的字符尺寸直接设为0,即font-size:0。不足:<ul>中的其他字符尺寸也被设为0,需要额外重新设定其他字符尺寸,且在Safari浏览器依然会出现空白间隔。 (4)消除<ul>的字符间隔letter-spacing:-8px,不足:这也设置了<li>内的字符间隔,因此需要将<li>内的字符间隔设为默认letter-spacing:normal