CSS 选择器

CSS 选择器

CSS样式的继承

  • 发生在祖先和后代之间,我们为一个元素设置的样式,同时也会继承到他的后代元素上。

  • 继承的设计是为了方便我们的开发,利用继承我们可以将一些通用的样式统一设置到共同的祖先元素上,纸样只需设置一次即可让有的元素都有该样式。

  • 注意:并不是所有的样式都会被继承,比如 背景相关的,布局相关的都不会被继承。

CSS优先级

一、什么是CSS优先级

CSS优先级,即是指CSS样式在浏览器中被解析的先后顺序。

二、CSS优先级规则

比较简单易记的一种方法就是给不同选择器分配不同的值:

  • id选择器默认优先级最高,其权值为100。
  • class选择器、属性选择器和伪类选择器的权值为10。
  • 标签选择器的优先级较低,其权值为1。

所以在比较样式的优先级时,只需统计选择符中的id、class、标签名个数,然后把对应的权值相加即可。根据结果便可得出优先级高低,选择器的累加不会超过其最大的数量级,类选择器在高也不会超过id选择器。

  • 结果较大的优先级较高。
  • 结果相同,则后定义的样式优先级较高。
  • 如果样式值中含有!important,则该值优先级最高,甚至超过内联样式(慎用)。。

CSS练习网站

CSS Diner网址:

https://flukeout.github.io/

CSS-结构

<!DOCTYPE html>
<html>
<head>
    <style>
           css代码
    </style>
</head>
    <body>
    </body>
</html>

CSS常用选择器

名字 功能 语法
元素选择器 根据标签名来选中指定的元素 标签名
id选择器 根据元素的id(唯一)属性来选中指定的元素 #id属性值
类选择器 根据元素的class属性选中指定元素 .class属性值
通配选择器 选中页面中的所有元素 *
交集选择器 选中多个同时符合多个条件的元素 选择器1选择器n{},如有元素选择器,用元素选择器开头
并集选择器 选择多个选择器对应的元素 选择器1,选择器2,选择器n
子元素选择器 选中指定父元素的指定子元素 父元素>子元素
后代元素选择器 选中指定元素内的指定后代元素 祖先 后代{}
相邻兄弟选择器 选择下一个兄弟 前一个+下一个{}
  选择下边所有的兄弟元素 前一个~下一个{}
     
序选择器 选中同级别中的第一个标签
div :first-child
选中div的第一个子代
:first-child
    :last-child
  div p:nth-child(2) selects the second p in every div :nth-child(n)
  选中同级别中的倒数第n个标签 :nth-last-child(n)
  选中父元素中唯一的子元素标签 :only-child
     
同级同类型的第几个 选中同级别中同类型的第一个标签 :first-of-type
  选中同级别中同类型的最后一个标签 :last-of-type
  选中同级别中同类型的第n个标签 :nth-of-type(n)
  选中同级别中同类型的倒数第n个标签 :nth-last-of-type(n)
  选中父元素中唯一类型的某个标签 :only-of-type
     
  选中同级别中的所有奇数 :nth-child(odd)
  选中同级别中的所有偶数 :nth-child(even)
     
  x和y是用户自定义的, 而n是一个计数器, 从0开始递增 :nth-child(xn+y)
  选中同级别中同类型的所有奇数 :nth-of-type(odd)
  选中同级别中同类型的所有偶数 :nth-of-type(even)
  x和y是用户自定义的, 而n是一个计数器, 从0开始递增 :nth-of-type(xn+y)
     
属性选择 Select p elements that don’t have children p:empty
  You can use this to select all elements that do not match selector “X”. :not(X)
  selects all elements that have a value=”anything” attribute [attribute]
  Attribute selectors are case sensitive, each character must match exactly. [attribute=”value”]
  选择属性值以特定字符开头的所有元素 [attribute^=”value”]
  选择属性值以特定字符结尾的所有元素 [attribute$=”value”]
  选择在任何地方都包含特定字符的属性值的所有元素 [attribute*=”value”]
伪类选择器    
  未访问的链接 a:link
  已访问的链接 a:visited
  鼠标悬停链接或标签变色 a:hover
  已选择的链接 a:active
     
  q:lang(it)为属性值以 “en” 开头的 元素定义引号 :lang
q:lang(en) { quotes: “~” “~”; }
所有 CSS 伪元素    
  在每个 <p> 元素之后插入内容。 ::after
p::after
  在每个 <p> 元素之前插入内容。 ::before
p::before
  选择每个 <p> 元素的首字母。 ::first-letter
p::first-letter
  选择每个 <p> 元素的首行。 ::first-line
p::first-line
  选择用户选择的元素部分。 ::selection
p::selection