CSS3中的选择器

这里总结一共有11种选择器,分别为:

通配符选择器、类选择器、id选择器、元素选择器(又叫标签选择器)、属性选择器、

伪类选择器、伪元素选择器、后代选择器(又叫包含选择器)、子元素选择器、兄弟选择器(相邻兄弟选择器+、通用兄弟选择器~)、群组选择器(几个共用一个,用逗号隔开)

(优先级:!important>行间样式>id>class=属性=伪类选择器>元素=伪元素选择器>通配符)

1、通配符选择器

语法:* {属性名:属性值;属性名:属性值; ........}  为页面上的所有元素设置样式,优先级最低

*{
  margin:0;
  padding:0;  
}

2、类选择器

语法:.类名{属性名:属性值;属性名:属性值; .......}  为含有相同类名的元素设置样式

<style>
   .s1{
      color:red;  
    } 
</style>
<body>
<p class='s1'>aa</p>
<p class='s2'>bb</p>
<p class='s1 s2'>cc</p>
<!----aa和cc的字体颜色为红色----> </body>

3、id选择器

语法:#id名{属性名:属性值;属性名:属性值; .......}   为id属性值为指定id名的元素设置样式

<style>
   #d1{
      color:red;  
    } 
</style>
<body>
<p id='d1'>aa</p>
<p id='d2'>bb</p>
<!----aa的字体颜色为红色---->
</body>

注意:在一个html文档中,一个id名只能使用一次;且不能使用id词列表

<p id='d1'>aa</p>
<p id='d1'>bb</p>  <!----错误,一个id名只能使用一次---->
<p id='d2 d3'>cc</p> <!-----错误,不能使用id列表-------->

4、元素选择器

又叫标签选择器,根据元素名(标签名)来设置样式

语法:元素名{属性名:属性值;属性名:属性值; .......}  为所有指定的元素设置样式

<style>
   p{            
      color:red;  
    } 
</style>
<body>
    <p>aa</p>
    <div>
        <p>bb</p>
    </div>
    <p >cc</p>
<!----aa、bb和cc的字体颜色均为红色---->
</body>    

5、属性选择器

 具体分为三种:

①简单属性选择器:选择具有某个属性名的元素

语法:[元素属性名]{属性名:属性值;属性名:属性值; .......}   选择有指定属性名的元素,而不管元素的该属性的属性值是什么

<style>
   [href]{
      color:red;  
    } 
</style>
<body>
    <a href='taobao'>taobao</a>
    <div>
        <a href='baidu'>baidu</a>
    </div>
    <a href='tencent' >tencent</p>
<!----taobao baiidu和tencent的字体颜色均为红色---->
</body>    

②具体属性值选择器:选择具有指定属性键值对(属性名和属性值都要匹配)的元素

语法:[元素属性="属性值"]{属性名:属性值;属性名:属性值; .......}  属性名和属性值要完全匹配

<style>
   [href='taobao']{
      color:red;  
    } 
</style>
<body>
    <a href='taobao'>taobao</a>
    <div>
        <a href='baidu'>baidu</a>
    </div>
    <a href='tencent' >tencent</p>
<!----taobao的字体颜色均为红色---->
</body>   

③子串匹配属性选择器:可以规定属性值包含什么字符串(*)或以什么字符串开头(^)/结尾($)

语法:[元素属性^="def"]{属性名:属性值;属性名:属性值; .......} 相应的属性值以def开头的元素

   [元素属性$="def"]{属性名:属性值;属性名:属性值; .......} 相应的属性值以def结尾的元素

   [元素属性*="def"]{属性名:属性值;属性名:属性值; .......} 相应的属性值包含def的元素

<style>
   [href^='t']{
      color:red;  
    } 
    [href$='u']{
        color:yellow;
    }
    [href*='b']{
        font-size:30px;
    }
</style>
<body>
    <a href='taobao'>taobao</a>
    <div>
        <a href='baidu'>baidu</a>
    </div>
    <a href='tencent' >tencent</p>
<!----taobao和tencent的字体颜色为红色;baidu的字体颜色为黄色;taobao和baidu的字体大小为30px---->
</body>       

6、后代选择器(又叫包含选择器)

语法:祖先元素 后代元素 {属性名:属性值;属性名:属性值; .......}  为具有指定祖先元素的所有后代元素设置样式 ,这两个元素之间的层次间隔可以是无限的 

<style>
  .s1 p{
      color:red;  
    } 
</style>
<body>
    <p>aa</p>
    <div class='s1'>
        <p>bb</p>
        <div>
            <p>cc</p>
        </div>
        <p>dd</p>
    </div>
    <p >ee</p>
<!----bb、cc和dd的字体颜色为红色---->
</body> 

7、子元素选择器

语法:父元素>子元素 {属性名:属性值;属性名:属性值; .......} 为具有指定父元素的所有子元素设置样式,其中子元素为父元素的直接子元素(注意和后代子元素的区别)

<style>
  .s1>p{
      color:red;  
    } 
</style>
<body>
    <p>aa</p>
    <div class='s1'>
        <p>bb</p>
        <div>
            <p>cc</p>
        </div>
        <p>dd</p>
    </div>
    <p >ee</p>
<!----bb和dd的字体颜色为红色---->
</body>       

8、兄弟选择器(相邻兄弟选择器+、通用兄弟选择器~)

分为两种:相邻兄弟选择器(+)和通用兄弟选择器(~)

①相邻兄弟选择器

语法:元素E+元素F {属性名:属性值;属性名:属性值; .......}  为紧接着E元素后的F元素设置样式,且E元素和F元素具有相同的父元素(两者为兄弟元素)

<style>
  .s1+p{
      color:red;  
    } 
</style>
<body>
    <div>
        <p>aa</p>
        <p  class='s1'>bb</p>      
        <p>cc</p>
    </div>
    <p >dd</p>
<!----cc的字体颜色为红色---->
</body>    

②通用兄弟选择器

语法:E~F {属性名:属性值;属性名:属性值; .......}   为E后面的所有能够匹配F的其兄弟元素F设置样式

<style>
  .s1~p{
      color:red;  
    } 
</style>
<body>
    <div>
        <p>aa</p>
        <p  class='s1'>bb</p> 
        <div>
          <p>cc</p>
        </div>
        <p>dd</p>        
      <p>ee</p>            
    </div>
    <p >ff</p>
<!----dd和ee的字体颜色为红色---->
</body> 

9、伪元素选择器

语法:selector: pseudo-element/:: pseudo-element{property:value;........}   通过添加一些实际的元素来向匹配selector选择器的元素添加一些效果

有以下五种:

①:first-line/::first-line伪元素 用于向文本的首行设置特殊样式,只能用于块级元素

②:first-letter/::first-letter伪元素 用于向文本的首字母设置样式,只能用于块级元素

③:before/::before 在元素内容之前添加内容,属于该元素,默认伪元素是行内元素

④:after /::after 在元素内容之后添加内容,属于该元素,默认伪元素是行内元素

⑤::selection  设置元素在被选择时的样式。

说明:CSS3之前,伪元素只有1~4四种(::selection为新增),且均为单冒号(:),为了和伪类选择器进行区分,CSS3中规定,伪元素一律使用双冒号(::),但单冒号依然可以使用,且兼容性更好

<style>
div{float:left;margin:20px;}
h1{font-size:16px;}
p{width:200px;padding:5px 10px;border:1px solid #ddd;font:14px/1.5 simsun,serif,sans-serif;}

.s1 p:first-letter {float:left;font-size:40px;font-weight:bold;line-height:1;}
.s1 p::first-letter {float:left;font-size:40px;font-weight:bold;line-height:1;}

.s2 p:first-line {color:#090;}
.s2 p::first-line {color:#090;}

.s3 p::before{content:"haha--";color:red;}

.s4 p::after{content:"--haha";color:red;}

.s5 p::selection{background:#000;color:#f00;}
</style>
<body>
<div class="s1">
  <h1>杂志常用的首字下沉效果(first-letter)</h1>
  <p>
    今天,阳光明媚,晴空万里,非常适合户外活动,如踏青、远足之类的。长期 坐在办公室的同学们要多注意运动。
  </p>
</div>

<div class="s2">
  <h1>杂志常用的首字下沉效果(first-line)</h1>
  <p>
    今天,阳光明媚,晴空万里,非常适合户外活动,如踏青、远足之类的。长期 坐在办公室的同学们要多注意运动。
  </p>
</div>

<div class="s3">
  <h1>在元素前添加内容(after)</h1>
<p>this is a test</p>
</div>

<div class="s4">
  <h1>在元素后添加内容(after)</h1>
<p>this is a test</p>
</div>

<div class="s5">
  <h1>选中下面的文字,看看它的颜色(selection)</h1>
<p>你选中这段文字后,看看它们的文本颜色和背景色,就能明白::selection的作用。</p>
</div>
</body>

效果图为:

附加一个after和before的应用实例

10、伪类选择器

 语法:selector: pseudo-classes-selector{property:value;........}   向匹配selector选择器的元素添加一些效果

伪类较多,在此只罗列,不举例

E:linkCSS1设置超链接a在未被访问前的样式。
E:visitedCSS1设置超链接a在其链接地址已被访问过时的样式。
E:hoverCSS1/2设置元素在其鼠标悬停时的样式。
E:activeCSS1/2设置元素在被用户激活(在鼠标点击与释放之间发生的事件)时的样式。
E:focusCSS1/2设置元素在成为输入焦点(该元素的onfocus事件发生)时的样式。
E:lang(fr)CSS2匹配使用特殊语言的E元素。
E:not(s)CSS3匹配不含有s选择符的元素E。
E:rootCSS3匹配E元素在文档的根元素。
E:first-childCSS2匹配父元素的第一个子元素E。
E:last-childCSS3匹配父元素的最后一个子元素E。
E:only-childCSS3匹配父元素仅有的一个子元素E。
E:nth-child(n)CSS3匹配父元素的第n个子元素E。
E:nth-last-child(n)CSS3匹配父元素的倒数第n个子元素E。
E:first-of-typeCSS3匹配同类型中的第一个同级兄弟元素E。
E:last-of-typeCSS3匹配同类型中的最后一个同级兄弟元素E。
E:only-of-typeCSS3匹配同类型中的唯一的一个同级兄弟元素E。
E:nth-of-type(n)CSS3匹配同类型中的第n个同级兄弟元素E。
E:nth-last-of-type(n)CSS3匹配同类型中的倒数第n个同级兄弟元素E。
E:emptyCSS3匹配没有任何子元素(包括text节点)的元素E。
E:checkedCSS3匹配用户界面上处于选中状态的元素E。(用于input type为radio与checkbox时)
E:enabledCSS3匹配用户界面上处于可用状态的元素E。
E:disabledCSS3匹配用户界面上处于禁用状态的元素E。
E:targetCSS3匹配相关URL指向的E元素。

伪类和伪元素的区别:

伪类选择元素基于的是当前元素处于的状态,或者说元素当前所具有的特性,而不是元素的id、class、属性等静态的标志。由于状态是动态变化的,所以一个元素达到一个特定状态时,它可能得到一个伪类的样式;当状态改变时,它又会失去这个样式。由此可以看出,它的功能和class有些类似,但它是基于文档之外的抽象,所以叫伪类。

伪元素是对元素中的特定内容进行操作,它所操作的层次比伪类更深了一层,也因此它的动态性比伪类要低得多。实际上,设计伪元素的目的就是去选取诸如元素内容第一个字(母)、第一行,在某些元素的前面或后面添加内容这种普通的选择器无法完成的工作。它控制的内容实际上和元素是相同的。其中first-letter就是将首字符作为元素的假想子元素,first-line将首行作为假想的子元素;after和before是在元素的末尾/首部添加子元素

 

11、群组选择器

 语法:selector1,selector2,selector3,....{property:value;........}    几种选择器共用一种样式,选择器之间用逗号隔开

<style>
  .s1,p{
      color:red;  
    } 
</style>
<body>
        <p>aa</p>
    <span  class='s1'>bb</span>    
        <a>cc</a>
<!----aa和bb的字体颜色为红色---->
</body>  

 

转载于:https://www.cnblogs.com/lihuijuan/p/8991562.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值