CSS3中的选择器

目录

“*”选择器

全选所有元素

全选某元素的所有子元素

元素选择器

类选择器:"."

id选择器:"#"

群组化选择器

层次选择器

后代选择器

子代选择器

兄弟选择器

相邻选择器

伪类选择器

鼠标事件伪类

child型伪类

功能型伪类


“*”选择器

        “*”可以称作“全选”选择器。我们可以用它全选所有元素,也可以用它全选某个元素的所有子元素。

全选所有元素

 * {
     margin: 0;
     padding: 0;
 }

此代码常用于消除浏览器默认的内外边距。

全选某元素的所有子元素

 div *{
     background-color: aqua;
 }

元素选择器

        元素选择器根据标签的名称来选择所有对应的标签。

 <style>
 div {
     color:red;
     font-size:10px;
     }
 </style>
 ​
 <body>
 <div>div被选中</div>
 <p>此段落不受影响。</p>
 </body>

类选择器:"."

        类选择器是根据元素的class属性来选中元素。一个文件中,类名是可以重复的,所以我们可以通过类选择器选中不同类型的元素。

 <style>
     .cb{
             background-color: aqua;
         }
 </style>
 ​
 <body>
     <div class="cb">
         hello world
     </div>
     <section class="cb">
         hello world
     </section>
 </body>

id选择器:"#"

        id选择器根据标签的“id”属性值选择对应的标签。由于id在一个文件中是惟一的,所以id选择器选中的元素也是唯一的。

 <style>
 #p1 {
     text-align:center;
     color:red;
     }
 </style>
 ​
 <body>
 <p id="p1">id为p1的元素被选中</p>
 <p>此段落不受影响。</p>
 </body>

        以上三种选择器的优先级:id选择器 > 类选择器 > 元素选择器。优先级越高,能选择的标签就越少;优先级越低,能选择的标签就越多。

群组化选择器

        当几个地方需要使用到相同的css样式的时候,分开写是一件十分麻烦的工作,而且会使代码显得冗长。这时我们可以把几个相同设定的选择器合并在一起,减少代码的数量。具体方法是把几个选择器使用逗号隔开书写在一起的一起就行了。

 <style>
     h1, h2, h3, h4, ul, p {
         color:red; 
     } 
 </style>
 <body>
     <h1>群组化选择器</h1>
     <h2>群组化选择器</h2>
     <h3>群组化选择器</h3>
     <h4>群组化选择器</h4>
     <ul>
         <li>群组化选择器</li>
         <li>群组化选择器</li>
     </ul>
     <p>群组化选择器</p>
 </body>

层次选择器

        层次选择器可以通过一个标签选择另一个与它有关系的标签,比如它的子代、后代、兄弟、邻居等元素。

后代选择器

        后代选择器用空格隔开,选择指定标签下所有对应的后代标签(儿子,孙子,重孙子等等)。

 <style>
         div p{
             color: red;
         }
 </style>
 <body>
     <div>
         <p>1</p>
         <p>2</p>
         <p>3</p>
         <ul>
             <li><p>4</p></li>
             <li><p>5</p></li>
             <li><p>6</p></li>
         </ul>
     </div>
 </body>

子代选择器

        子代选择器使用符号">"隔开,选择的是指定标签下所有符合要求的子元素,其孙子、重孙子等则不会选中。

 <style>
     div>p{
     color: red;
     }
 </style>
 <body>
     <div>
         <p>1</p>
         <p>2</p>
         <p>3</p>
         <ul>
             /* ul下的p标签不会被选中 */
             <li><p>4</p></li>
             <li><p>5</p></li>
             <li><p>6</p></li>
         </ul>
     </div>
 </body>

兄弟选择器

        兄弟选择器使用符号"~"隔开,选择的是当前标签之后的所有同级标签。需要注意的是选中的是它的兄弟,而它自己不会被选中。当使用兄弟选择器的时候,直接选择某个标签的兄弟元素的选择范围太大了,需要使用类选择器或id选择器来指明选择谁的兄弟元素。

 <style>
     /*选择class为name的标签的之后所有同级p标签*/
     .name~p{
         background-color: aqua;
     }
 </style>
 <body>
     <p class="name">1</p>
     <p>2</p>
     <p>3</p>
 </body>

相邻选择器

        相邻选择器使用符号"+"隔开,选择的是当前标签的下一个同级标签,并且只能选中一个元素。

 <style>
     /*选中id为name的下一个p标签*/
     #name+p{
         color: red;
     }
 </style>
 <body>
     <p id="name">1</p>
     <p>2</p>
     <p>3</p>
 </body>

伪类选择器

鼠标事件伪类

        我们平常浏览网页时会发现一个链接点击前是一个颜色,点击后又是一个颜色,甚至点击时又是一种颜色。这些设置就需要用到伪类选择器来实现了。当然,伪类选择器不仅仅是对链接生效,对所有元素都有效果。

名称作用
:link当链接没有被访问时的样式
:visited链接已经被访问的状态
:hover鼠标在链接上方悬停时的状态
:active鼠标点击链接时的状态
 <style>
     a:link{
         background-color: black;
     }
 ​
     a:hover{
         background-color: white;
     }
     a:active{
         background-color: red;
     }
     a:visited{
         background-color: aqua;
     }
 </style>
 ​
 <body>
     <a href="https://www.csdn.net/" target="_blank">csdn</a>
 </body>

child型伪类

名称作用
p:nth-type(n)如果p元素的父元素的第n个子元素为p元素则选中,否则不选中
p:nth-of-type(n)选中p元素的父元素的第n个p元素
p:first-type如果p元素的父元素的第一个子元素为p元素则选中,否则不选中
p:first-of-type选中p元素的父元素下第一个p元素的子元素
p:nth-child(n)选中所有p元素的父元素的第n个子元素
p:nth-last-child(n)选择所有p元素的父元素的倒数的第n个子元素
p:nth-last-of-child(n)选择所有p元素倒数的第n个为p元素的子元素
p:only-child选中所以仅有一个子元素的p元素
p:only-of-type选中所以仅有一个子元素且为p元素的元素
p:last-child选中所有p元素的最后一个子元素
div:not(p)选中所有div元素的子元素中除了p元素以外的所有子元素
p:empty选中所有没有子元素的p元素

注:以p元素和div元素为例

功能型伪类

名称作用
p:before在每个p元素之前插入内容
p:after在每个p元素之后插入内容

注:以p元素为例

文中若有不当之处,欢迎各位朋友批评指正。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

可乐喽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值