CSS 之 选择器

今天面试被问到了css选择器,害,拉胯了。

选择器

基础选择器

选择器 名称 描述
* 通配选择器 选择所有的元素
E 元素选择器 选择指定的元素
#idName id选择器 选择id属性等于idName的元素
.className class选择器 选择class属性包含className的元素
E[att] 属性选择器 选择具有att属性的E元素

组合选择器

选择器 名称 描述
E F 后代选择器 选择所有包含在E元素里面的F元素
E>F 子元素选择器 选择所有作为E元素的子元素F
E+F 相邻选择器 选择紧贴在E元素之后的F元素
E~F 兄弟选择器 选择E元素所有兄弟元素F
, 并集选择器 用多个逗号分隔多个选择器,形成并集
. 交集选择器 找两个或多个选择器的交集

伪类和伪元素选择器

伪类

  1. 标记状态
    • :link 选取未访问过的超链接
    • :visited 选取访问过的连接
    • :hover 选取鼠标悬浮的元素
    • :active 选取点中的元素
    • :focus 选取获取焦点的元素
  2. 筛选功能
    • :empty
      选取没有子元素的元素
    • :checked
      选取勾选状态下的input 元素 只对 radio 和checkbox 有效
    • :disabled
      选取禁用的表单元素
    • :first-child
      选取当前选择器下的第一个元素
    • :last-child
      选取当前选择器下的最后一个元素
    • :nth-child(an+b)
      选取指定位置的元素,参数支持an+b的形势.比如 li:nth(2n+1),就可以选取li元素序号是2的整数倍+1的所有元素,也就是1,3,5,7,9序号的li元素
    • :nth-last-child(an+b)
      和上面类似,不过从后面选取.
    • :only-child
      选取元素唯一的子元素,如果元素的父元素只有它一个子元素就会生效,如果还有其他的兄弟元素,则不生效
    • :only-of-type
      选取唯一的某个元素类型。如果元素的父元素只有它一个当前类型的子元素就会生效。

伪元素

  • ::first-line
    为元素的第一行使用样式
  • ::first-letter
    为某个元素的首字母或第一个文字使用样式
  • ::before
    在某个元素之前插入内容
  • ::after
    在某个元素之后插入内容
  • ::selection
    对光标选中的元素添加样式

选择器权重

  1. 第一优先级:无条件优先的属性只需要在属性后面使用!important。它会覆盖页面内任何位置定义的元素样式。
  2. 第一等:内联样式,如:style="color:red;",权值为1000.(该方法会造成css难以管理,所以不推荐使用)
  3. 第二等:ID选择器,如:#header,权值为0100.
  4. 第三等:类选择器、属性选择器和伪类选择器、如:.bar, 权值为0010.
  5. 第四等:标签选择器和伪元素选择器,如:div ::first-line 权值为0001.
  6. 继承的样式没有权值。

CSS 之 选择器

上一篇:【HTML5】2天搞定HTML5


下一篇:html转amp之1:环境配置【ytkah英译AMP】