HTML选择器

CSS三大特性

  • 层叠性
  • 继承性
  • 优先性

层叠性

1.当同一个元素被两个选择器选中时,CSS会根据++选择器的权重++决定使用哪一个选择器
2.权重低的选择器效果会被权重高的选择器效果覆盖,权重相同时取后者
id选择器的权重为100,类选择器的权重为10,标签选择器的权重为1


继承性

继承性是子元素继承父元素样式的特性,在CSS中以text-、font-、line-开头的属性以及color属性都可以继承

有一些比较特殊的元素,如a标签的颜色不能继承,必须对a标签本身进行设置;h标签字体的大小不能继承,必须对h标签本身进行设置


优先性

id选择器>类选择器>标签选择器>通配选择器>继承>浏览器默认属性值


通配选择器

作用:选中页面所有元素
语法:*{}

*{color:blue;}

类选择器(class选择器)

如果想要差异化选择不同的标签,单独选一个或者某几个标签,可以选择类选择器
语法:.class属性{}

<style>  
.box{color:red;}  
</style>
<body>
<div class="box">小明</div>   
<div class="box">小李</div>     <!--文本都变成红色-->
</body>

不要使用纯数字、中文等命名、尽量使用英文字母来表示


id选择器

作用:根据元素的id属性值选中一个元素
语法:#id属性{}

<style>  
#box{color:red;}  
</style>
<body>
<div id="box">变红</div>
</body>

id属性具有唯一性,也就是说一个页面中相同的id只能出现一次


元素选择器

作用:根据标签名来选中指定元素
语法:p{},div{}

<style>  
div{color:red;}  
</style>
<body>
<div>变红</div>
</body>

后代选择器

作用:选择元素内部中某一种元素的所用元素(包括子元素和其它后代元素)
例:

father div{ 100px;}

父元素和后代元素必须要用空格隔开,表示选中某个元素内部的后代元素

<style>
#box1 p{color:blue;}
#box2 span{color:red;}
</style>
<body>
<div id="box1">
<p>好好学习,天天向上</p>  <!--文本内容变成蓝色-->
<div>失败是成功之母</div>
</div>
<div id="box2">
<div>好好学习,天天向上</div>
<span>失败是成功之母</span>  <!--文本内容变成红色-->
</div>
</body>

组群选择器

作用:同时选择多个选择器进行相同的操作
语法:p,span,div{}

<style>  
p,span,div{color:red;}  
</style>
<body>
<p>小李</p>
<span>小王</span>
<div>小明</div>  <!--文本内容都变成红色-->
</body>

选择器之间要用逗号隔开


属性选择器

作用:根据元素的属性及属性值来选择元素
语法:

  • [属性名]{} --->选择含有指定属性的元素
<style>
[title]{color:blue;}
</style>
<body>
<p title="a">富强</p>
<span title="b">民主</span>  <!--p标签和span标签文本内容都变成蓝色-->
</body>
  • [属性名=属性值]{} --->选择含有指定属性和属性值的元素
<style>
[title="a"]{color:blue;}
</style>
<body>
<p title="a">富强</p>
<span title="b">民主</span> <!--只有p标签文本内容变成蓝色-->
</body>
  • [属性名^=属性值]{} --->以...开头
<style>
[title^="film"]{border:3px black;}
</style>
<body>
<img src="img/1.jpg" alt="film-a">  <!--前两张图片都被设置了一个黑色边框-->
<img src="img/2.jpg" alt="film-b">
<img src="img/3.jpg" alt="films-c">  <!--没有任何变化-->
</body>
  • [属性名*=属性值]{} --->包含...
<style>
[title*="film"]{border:3px black;}
</style>
<body>
<img src="img/1.jpg" alt="film-a">  
<img src="img/2.jpg" alt="films-b">  <!--没有任何变化-->
<img src="img/3.jpg" alt="films-film"> 
<!--第一张和第三张图片都被设置了一个黑色边框-->
</body>
  • [属性名$=属性值]{} --->以...结尾
<style>
[title$="a"]{border:3px black;}
</style>
<body>
<img src="img/1.jpg" alt="film">  <!--没有任何变化-->
<img src="img/2.jpg" alt="films-b-a">  
<img src="img/3.jpg" alt="films-film-a"> 
<!--第二张和第三张图片都被设置了一个黑色边框-->
</body>

伪类选择器

  • 伪类:不存在的类,特殊的类
    • 用来描述一个元素的特殊状态
    • 一般情况下都是使用:开头
      常见有以下:
  1. :first-child --->表示选中第一个子元素
  2. :last-child --->表示选中最后一个子元素
  3. :nth-child() --->可以匹配列表中任意一个子元素

括号中可填1,2,3,……,n;odd;even;2n;2n+1等其它

注意:以上伪类都是根据所有的子元素进行排序的

以下三种伪类功能和上述类似,不同点在于它们是在同类型元素中进行排列

  1. :first-of-type
  2. :last-of-type
  3. :nth-of-type()

伪元素选择器

  • 伪元素表示页面中一些特殊的并不真实存在的元素
  • 伪元素前是::
    常见伪元素有:
    • ::first-letter --->表示第一个字母
    • ::first-line --->表示第一行
    • ::selection --->表示选中的内容
    • ::before --->表示元素的开始
    • ::after --->表示元素的结束
      注意:before和after必须结合content属性来使用
      例:
div::before{content:『; color:red;}
div::before{content:』; color:red;}

------------恢复内容结束------------

原文地址:https://www.cnblogs.com/L-hua/p/13998882.html