css基础知识总结

103 阅读3分钟

  • !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

替换元素

浏览器渲染原理以及流程