【CSS3】选择器(属性 结构性伪类)--慕课网【学习总结】

2023-11-30 17:58

本文主要是介绍【CSS3】选择器(属性 结构性伪类)--慕课网【学习总结】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.属性选择器

CSS3新增了3个属性选择器,使得属性选择器有了通配符的概念,这三个属性选择器与CSS2的属性选择器共同构成了CSS功能强大的属性选择器。如下表所示:
这里写图片描述

【例如】
<!--html代码-->
<a href="xxx.pdf">我链接的是PDF文件</a>
<a href="#" class="icon">我类名是icon</a>
<a href="#" title="我的title是more">我的title是more</a>
/*css代码*/
a[class^=icon]{background: green;color:#fff;
}
a[href$=pdf]{background: orange;color: #fff;
}
a[title*=more]{background: blue;color: #fff;
}

这里写图片描述


2.结构性伪类选择器

(1)root & not & empty & target

①root

根选择器:匹配元素E所在文档的根元素。在HTML文档中,根元素始终是<html>

:root”选择器等同于 <html> 元素:

:root{background:orange}
html {background:orange;}
  • 建议使用:root方法。
  • 另外在IE9以下还可以借助“:root”实现hack功能。
【例如】
<!--html代码-->
<div>:root选择器的演示</div>/*css代码*/
:root {background:orange;
}

效果:
这里写图片描述

②not

否定选择器可以选择除某个元素之外的所有元素。和jQuery中的:not选择器一模一样。

【例如】

给form表单中除submit按钮之外的input元素添加红色边框:

/*css代码*/
form {width: 200px;margin: 20px auto;
}
div {margin-bottom: 20px;
}
input:not([type="submit"]){border:1px solid red;
}
<!--html代码-->
<form action="#"><div><label for="name">Text Input:</label><input type="text" name="name" id="name" placeholder="John Smith" /></div><div><label for="name">Password Input:</label><input type="text" name="name" id="name" placeholder="John Smith" /></div><div><input type="submit" value="Submit" /></div>
</form>

效果:
这里写图片描述

③empty

空选择器。用来选择没有任何内容的元素,这里没有内容指的是一点内容都没有,哪怕是一个空格。

【例如】

有三个段落p元素,需把没有任何内容的P元素隐藏起来。就可以使用“:empty”选择器来控制:

<!--html代码-->
<p>我是一个段落</p>
<p> </p>
<p></p>
/*css代码*/
p{background: orange;min-height: 30px;
}
p:empty {display: none;
}

效果:
这里写图片描述

④target

目标选择器,用来匹配文档(页面)的url的某个标志符的目标元素。

【例如1】

点击链接显示隐藏的段落:

<!--html代码-->
<h2><a href="#brand">Brand</a></h2>
<div class="menuSection" id="brand">content for Brand
</div>
/*css代码*/
.menuSection{display: none;
}
:target{/*这里的:target就是指id="brand"的div对象*/display:block;
}

效果:
这里写图片描述

【分析】

1、具体来说,触发元素的URL中的标志符通常会包含一个#号,后面带有一个标志符名称,上面代码中是:#brand
2、:target就是用来匹配id为“brand”的元素(id=”brand”的元素),上面代码中是那个div元素。

【例如2】

多个url(多个target)处理:
就像上面的例子,#brand与后面的id=”brand”是对应的当同一个页面上有很多的url的时候你可以取不同的名字,只要#号后对的名称与id=""中的名称对应就可以了。下面可以对不同的target对象分别设置不的样式:

<!--html代码-->
<h2><a href="#brand">Brand</a></h2>
<div class="menuSection" id="brand">content for Brand
</div>
<h2><a href="#jake">Brand</a></h2>
<div class="menuSection" id="jake">content for jake
</div>
<h2><a href="#aron">Brand</a></h2>
<div class="menuSection" id="aron">content for aron
</div>
/*css代码*/
#brand:target {background: orange;color: #fff;
}
#jake:target {background: blue;color: #fff;
}
#aron:target {background: red;color: #fff;
}

(2)first-child & last-child & nth-child(n) & nth-last-child(n)

①first-child

选择其父元素的第一个子元素。简单点理解就是选择元素中的第一个子元素,记住是子元素,而不是后代元素。

【例如】

通过“:first-child”选择器定位列表中的第一个列表项,并将序列号颜色变为红色:(指定属于其父元素ol的第一个子元素的 li 元素的颜色)

<!--html代码-->
<ol><li><a href="##">Link1</a></li><li><a href="##">Link2</a></li><li><a href="##">link3</a></li>
</ol>
/*css代码*/
ol > li:first-child{color: red;
}

效果:
这里写图片描述

②last-child

“:last-child”选择器选择的是其父元素的最后一个子元素

【例如】

指定属于其父元素ul的最后一个子元素的 li 元素的背景色:

ul>li:last-child{background:blue;}

③nth-child(n)

“:nth-child(n)”选择器用来定位某个父元素的一个或多个特定的子元素(顺序)。
  其中“n”是其参数,而且可以是整数值(1,2,3,4),也可以是表达式(2n+1、-n+5)和关键词(odd、even),但参数n的起始值始终是1,而不是0。也就是说,参数n的值为0时,选择器将选择不到任何匹配的元素。

【经验与技巧】

“:nth-child(n)”选择器中的n为一个表达式时,其中n是从0开始计算,当表达式的值为0或小于0的时候,不选择任何匹配的元素。如下表所示:
这里写图片描述

【例如】

通过“:nth-child(n)”选择器,并且参数使用表达式“2n”,将偶数行列表背景色设置为橙色:

<!--html代码-->
<ol><li>item1</li><li>item2</li><li>item3</li><li>item4</li>
</ol>
/*css代码*/
ol > li:nth-child(2n){background: orange;
}

效果:
这里写图片描述

④nth-last-child(n)

从某父元素的最后一个子元素(逆序)开始计算,来选择特定的元素。

  • 小tips: p:last-child 等同于 p:nth-last-child(1)。
【例如】

选择列表中倒数第五个列表项,将其背景设置为橙色:

/*css代码*/
ol > li:nth-last-child(5){background: orange;
}

(3)first-of-type & last-of-type & nth-of-type(n) & nth-last-of-type(n)

①first-of-type选择器

“:first-of-type”选择器类似于“:first-child”选择器,不同之处就是指定了元素的类型,其主要用来定位一个父元素下的某个类型第一个子元素

【例如】

定位div容器中的第一个p元素(p不一定是容器中的第一个子元素),并设置其背景色为橙色:

<!--html代码-->
<div class="wrapper"><div>我是一个块元素,我是.wrapper的第一个子元素</div><p>我是一个段落元素,我是不是.wrapper的第一个子元素,但是他的第一个段落元素</p><p>我是一个段落元素</p><div>我是一个块元素</div>
</div>
.wrapper {width: 500px;margin: 20px auto;padding: 10px;border: 1px solid #ccc;color: #fff;
}
.wrapper > div {background: green;
}
.wrapper > p {background: blue;
}
/*我要改变第一个段落的背景为橙色*/
.wrapper > p:first-of-type {background: orange;
}

效果:
这里写图片描述

②last-of-type选择器

用来定位一个父元素下的某个类型最后一个子元素

【例如】

通过“:last-of-type”选择器,将容器“div.wrapper”中最后一个段落元素背景设置为橙色(这个段落不是“div.wrapper”容器的最后一个子元素)

 .wrapper > p:last-of-type{background: orange;
}

③nth-of-type(n)选择器

“:nth-of-type(n)”选择器和“:nth-child(n)”选择器非常类似,不同的是它只计算父元素中指定的某种类型的子元素(顺序)

  • “:nth-of-type(n)”选择器中的“n”“:nth-child(n)”选择器中的“n”参数也一样,可以是具体的整数,也可以是表达式,还可以是关键词。
【例如】

通过“:nth-of-type(2n)”选择器,将容器“div.wrapper”中偶数段数的背景设置为橙色:

.wrapper > p:nth-of-type(2n){background: orange;
}

④nth-last-of-type(n)选择器

“:nth-last-of-type(n)”选择器和“:nth-of-type(n)”选择器是一样的,选择父元素中指定的某种子元素类型,但它的起始方向是从最后一个子元素开始(逆序)

【例如】

通过“:nth-last-of-type(n)”选择器将容器“div.wrapper”中的倒数第三个段落背景设置为橙色。:

.wrapper > p:nth-last-of-type(3){background: orange;
}

(4)only-child & only-of-type

①only-child选择器

匹配的元素的父元素中仅有一个子元素,而且是一个唯一的子元素。

【例如】

通过“:only-child”选择器,来控制仅有一个子元素的背景样式:

<!--html代码-->
<div class="post"><p>我是一个段落</p><p>我是一个段落</p>
</div>
<div class="post"><p>我是一个段落</p>
</div>
.post p {background: green;color: #fff;padding: 10px;
}
.post p:only-child {background: orange;
}

效果:
这里写图片描述

②only-of-type选择器

“:only-of-type”是表示一个元素他有很多个子元素,而其中只有一种类型的子元素是唯一的,使用“:only-of-type”选择器就可以选中这个元素中的唯一一个类型子元素。

【例如】

通过“:only-of-type”选择器来修改容器中仅有一个div元素的背景色为橙色:

<!--html代码-->
<div class="wrapper"><p>我是一个段落</p><p>我是一个段落</p><p>我是一个段落</p>
</div><div class="wrapper"><p>我是一个段落</p>
</div>
.wrapper p:only-of-type{background: orange;
}

效果:
这里写图片描述

这篇关于【CSS3】选择器(属性 结构性伪类)--慕课网【学习总结】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/437988

相关文章

JavaSE正则表达式用法总结大全

《JavaSE正则表达式用法总结大全》正则表达式就是由一些特定的字符组成,代表的是一个规则,:本文主要介绍JavaSE正则表达式用法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录常用的正则表达式匹配符正则表China编程达式常用的类Pattern类Matcher类PatternSynta

python删除xml中的w:ascii属性的步骤

《python删除xml中的w:ascii属性的步骤》使用xml.etree.ElementTree删除WordXML中w:ascii属性,需注册命名空间并定位rFonts元素,通过del操作删除属... 可以使用python的XML.etree.ElementTree模块通过以下步骤删除XML中的w:as

前端如何通过nginx访问本地端口

《前端如何通过nginx访问本地端口》:本文主要介绍前端如何通过nginx访问本地端口的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、nginx安装1、下载(1)下载地址(2)系统选择(3)版本选择2、安装部署(1)解压(2)配置文件修改(3)启动(4)

HTML中meta标签的常见使用案例(示例详解)

《HTML中meta标签的常见使用案例(示例详解)》HTMLmeta标签用于提供文档元数据,涵盖字符编码、SEO优化、社交媒体集成、移动设备适配、浏览器控制及安全隐私设置,优化页面显示与搜索引擎索引... 目录html中meta标签的常见使用案例一、基础功能二、搜索引擎优化(seo)三、社交媒体集成四、移动

HTML input 标签示例详解

《HTMLinput标签示例详解》input标签主要用于接收用户的输入,随type属性值的不同,变换其具体功能,本文通过实例图文并茂的形式给大家介绍HTMLinput标签,感兴趣的朋友一... 目录通用属性输入框单行文本输入框 text密码输入框 password数字输入框 number电子邮件输入编程框

HTML img标签和超链接标签详细介绍

《HTMLimg标签和超链接标签详细介绍》:本文主要介绍了HTML中img标签的使用,包括src属性(指定图片路径)、相对/绝对路径区别、alt替代文本、title提示、宽高控制及边框设置等,详细内容请阅读本文,希望能对你有所帮助... 目录img 标签src 属性alt 属性title 属性width/h

CSS3打造的现代交互式登录界面详细实现过程

《CSS3打造的现代交互式登录界面详细实现过程》本文介绍CSS3和jQuery在登录界面设计中的应用,涵盖动画、选择器、自定义字体及盒模型技术,提升界面美观与交互性,同时优化性能和可访问性,感兴趣的朋... 目录1. css3用户登录界面设计概述1.1 用户界面设计的重要性1.2 CSS3的新特性与优势1.

HTML5 中的<button>标签用法和特征

《HTML5中的<button>标签用法和特征》在HTML5中,button标签用于定义一个可点击的按钮,它是创建交互式网页的重要元素之一,本文将深入解析HTML5中的button标签,详细介绍其属... 目录引言<button> 标签的基本用法<button> 标签的属性typevaluedisabled

HTML5实现的移动端购物车自动结算功能示例代码

《HTML5实现的移动端购物车自动结算功能示例代码》本文介绍HTML5实现移动端购物车自动结算,通过WebStorage、事件监听、DOM操作等技术,确保实时更新与数据同步,优化性能及无障碍性,提升用... 目录1. 移动端购物车自动结算概述2. 数据存储与状态保存机制2.1 浏览器端的数据存储方式2.1.

基于 HTML5 Canvas 实现图片旋转与下载功能(完整代码展示)

《基于HTML5Canvas实现图片旋转与下载功能(完整代码展示)》本文将深入剖析一段基于HTML5Canvas的代码,该代码实现了图片的旋转(90度和180度)以及旋转后图片的下载... 目录一、引言二、html 结构分析三、css 样式分析四、JavaScript 功能实现一、引言在 Web 开发中,