文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

css3高级选择器的用法

2024-04-02 19:55

关注

这篇文章主要讲解了“css3高级选择器的用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“css3高级选择器的用法”吧!

css3属性选择器

css3之属性选择器,其中包括:

代码如下:


1.[att=val]
2.[att*=val]
3.[att^=val]
4.[att$=val]

下面我将用实例演示它们的用法

css代码:

代码如下:


<style type="text/css">
   p[id=p_name] {color:red;}
   p[id*=p] {border:1px solid #DDD;}
   p[id^=start] {font-weight:700}
   p[id$=end] {background:yellow}
</style>

效果如图1:

结构性伪类选择器

1.伪类选择器

在讲伪类选择器之前,我先说下类选择器,类选择器的使用如下所示:

代码如下:


<style type="text/css">
   p.p_test {color:#F60;}
</style>

伪类选择器,大家看到这个术语不是很懂,楼主跟你们一样,但是看到下面的示例,立马知晓:

代码如下:


<style type="text/css">
   a:link {color:#F00; text-decoration:none;}
   a:visited {color:#0F0; text-decoration:none;}
   a:hover {color:#F0F; text-decoration:underline;}
   a:active {color:#00F; text-decoration:none;}
</style>

看到这大家顿时知道了吧,在css中我们最常用的伪类选择器是使用在a元素上。那么伪类选择器与类选择器额区别是,类选择器可以随便起名字如“p.right”,
“p.left”;但是伪类选择器是css中已经定义好的选择器,不能随便起名。

2.伪元素选择器

伪元素选择器是指并不是对真正的元素使用的选择器,而是针对css中已经定义好的伪元素使用的选择器。

在css中有下面四个伪元素选择器:

2.1.first-line伪元素选择器(它用于某个元素中的第一行文字使用样式,只能与块级元素关联)

示例如下:

代码如下:


<html>
<head>
<style type="text/css">
p:first-line
 {
 color:#ff0000;
 font-variant:small-caps;
 }
</style>
</head></p> <p><body>
<p>
This is a text.<br/>
That is a text.
</p>
</body>
</html>


2.2.first-letter伪元素选择器(向文本的第一个字母添加特殊样式,在 CSS2.1 之前,:first-letter 只能与块级元素关联。CSS2.1 扩大了这个范围,可以与任
何元素关联)

示例如下:

代码如下:


<html>
<head>
<style type="text/css">
p:first-letter
 {
 color:#ff0000;
 font-size:xx-large;
 }
</style>
</head></p> <p><body>
<p>This is a text.</p>
</body>
</html>

2.3.before伪元素选择器(在元素之前添加内容)

这个伪元素允许创作人员在元素内容的最前面插入生成内容。默认地,这个伪元素是行内元素,不过可以使用属性 display 改变这一点.

示例如下:

代码如下:


<!DOCTYPE HTML>
<html lang="en-US">
<head>
   <meta charset="UTF-8">
   <title> 选择器 </title>
   <style type="text/css">
       li {list-style:none;}
       li:before {content:'■'}
   </style>
</head>
<body>
   <ul>
       <li>项目1</li>
       <li>项目2</li>
       <li>项目3</li>
   </ul>
</body>
</html>

2.4.after伪元素选择器(在元素之后添加内容)

示例如下:

代码如下:


<!DOCTYPE HTML>
<html lang="en-US">
<head>
   <meta charset="UTF-8">
   <title> 选择器 </title>
   <style type="text/css">
       li {list-style:none;}
       li:after {content:'--测试文字';color:red}
   </style>
</head>
<body>
   <ul>
       <li>项目1</li>
       <li>项目2</li>
       <li>项目3</li>
   </ul>
</body>
</html>

3. 4个基本结构性伪类选择器

3.1.root选择器(将样式绑定到页面的根元素中)

所谓根元素,是指位于文档树的最顶层结构的元素,在html页面上就是指包含整个页面的“html”部分.

示例如下:

代码如下:


<!DOCTYPE HTML>
<html lang="en-US">
<head>
   <meta charset="UTF-8">
   <title> 选择器 </title>
   <style type="text/css">
       :root {background:yellow;}
       body {background:red;}
   </style>
</head>
<body>
   <ul>
       <li>项目1</li>
       <li>项目2</li>
       <li>项目3</li>
   </ul>
</body>
</html>

ps:在使用样式指定root元素与body元素的背景时,根据情况不同的指定条件,背景色的显示范围会有所变化,如上面的代码不使用root选择器来指定root元素
的背景色,只指定body元素的背景色,则整个页面就变成红色的了。

3.2.not选择器(想对某个结构使用样式,但是想排除这个结构元素下面的子结构元素,让它不使用这个样式,就使用not选择器)

示例如下:

代码如下:


<!DOCTYPE HTML>
<html lang="en-US">
<head>
   <meta charset="UTF-8">
   <title> 选择器 </title>
   <style type="text/css">
       body *:not(p) {color:blue;}
   </style>
</head>
<body>
   <p>我是排除元素</p>
   <ul>
       <li>项目1</li>
       <li>项目2</li>
       <li>项目3</li>
   </ul>
</body>
</html>

3.3.empty选择器(指定当元素的内容为空时使用样式)

示例如下:

代码如下:


<!DOCTYPE HTML>
<html lang="en-US">
<head>
   <meta charset="UTF-8">
   <title> 选择器 </title>
   <style type="text/css">
       table td {padding:10px;}
       table td:empty {background:#DDD}
   </style>
</head>
<body>
   <table>
       <tr>
           <td>1</td>
           <td>2</td>
           <td>3</td>
       </p> <p></tr>
       <tr>
           <td>4</td>
           <td>5</td>
           <td></td>
       </tr>
   </p> <p></table>
</body>
</html>

3.4.target选择器(使用target选择器来对页面中的某个target元素[该元素的id被当作页面的超链接类使用]指定样式,该样式只有在用户点击了页面中的超链接

,并且跳转到target元素后起作用)

示例如下:

代码如下:


<!DOCTYPE HTML>
<html lang="en-US">
<head>
   <meta charset="UTF-8">
   <title> 选择器 </title>
   <style type="text/css">
       :target {background:yellow;}
   </style>
</head>
<body>
   <a href="#div1">连接一</a>
   <a href="#div2">连接一</a>
   <div class="test" id="div1">内容一</div>
   <div id="div2">内容二</p> <p></div>
</body>
</html>

4. 下面接着说其它几个选择器

first-child,last-child,nth-child,nth-last-child这几个选择器能够针对一个父元素中的第一个,最后一个,指定序号的子元素,甚至第偶数个,第奇数
个子元素进行样式指定。

4.1.first-child与last-child的运用,first-child在ie7开始被支持,其它现代浏览器都支持

代码如下:


<!DOCTYPE HTML>
<html lang="en-US">
<head>
   <meta charset="UTF-8">
   <title> 选择器 </title>
   <style type="text/css">
       .ul1 li:first-child {background:yellow;}
       .ul1 li:last-child {background:red;}
   </style>
</head>
<body>
   <ul class="ul1">
       <li>项目1</li>
       <li>项目2</li>
       <li>项目3</li>
   </ul>
</body>
</html>

4.2.nth-child(表示第几个元素),运用如下:

代码如下:


<!DOCTYPE HTML>
<html lang="en-US">
<head>
   <meta charset="UTF-8">
   <title> 选择器 </title>
   <style type="text/css">
       .ul1 li:nth-child(2) {background:yellow;}
   </style>
</head>
<body>
   <ul class="ul1">
       <li>项目1</li>
       <li>项目2</li>
       <li>项目3</li>
   </ul>
</body>
</html>

4.3.nth-last-child(表示倒数第几个元素),运用如下:

代码如下:


<!DOCTYPE HTML>
<html lang="en-US">
<head>
   <meta charset="UTF-8">
   <title> 选择器 </title>
   <style type="text/css">
       .ul1 li:nth-last-child(1) {background:yellow;}
   </style>
</head>
<body>
   <ul class="ul1">
       <li>项目1</li>
       <li>项目2</li>
       <li>项目3</li>
   </ul>
</body>
</html>

ps:nth-child与nth-last-child的序号是从1开始,当然也可以是关键词或公式。;除了对指定序号的子元素使用样式以外,还可以对某个父元素中的所有第奇
数个子元素或第偶数个子元素使用样式。

4.3.1 nth-child 对某个父元素中的所有第奇数个子元素的样式设置

代码如下:


<!DOCTYPE HTML>
<html lang="en-US">
<head>
   <meta charset="UTF-8">
   <title> 选择器 </title>
   <style type="text/css">
       .ul1 li:nth-child(odd) {background:yellow;}
   </style>
</head>
<body>
   <ul class="ul1">
       <li>项目1</li>
       <li>项目2</li>
       <li>项目3</li>
       <li>项目4</li>
       </p> <p><li>项目5</li>
       <li>项目6</li>
       <li>项目7</li>
   </ul>
</body>
</html>

4.3.2 nth-last-child 对某个父元素中的所有倒数上去的第偶数个子元素的样式设置

代码如下:


<!DOCTYPE HTML>
<html lang="en-US">
<head>
   <meta charset="UTF-8">
   <title> 选择器 </title>
   <style type="text/css">
       .ul1 li:nth-last-child(even) {background:yellow;}
   </style>
</head>
<body>
   <ul class="ul1">
       <li>项目1</li>
       <li>项目2</li>
       <li>项目3</li>
       <li>项目4</li>
       </p> <p><li>项目5</li>
       <li>项目6</li>
       <li>项目7</li>
   </ul>
</body>
</html>

4.4.nth-of-type(匹配属于父元素的特定类型的第 N 个子元素的每个元素)

4.5.nth-last-of-type(配属于父元素的特定类型的第 N 个子元素的每个元素,从最后一个子元素开始计数)

好,既然知道他们的用处,那我们直接看个列子:

代码如下:


<!DOCTYPE HTML>
<html lang="en-US">
<head>
   <meta charset="UTF-8">
   <title> 选择器 </title>
   <style type="text/css">
       h3:nth-of-type(odd) {background:red;}
       h3:nth-last-of-type(even) {background:green;}
   </style>
</head>
<body>
   <h3>标题一</h3>
   <p>内容一</p>
   <h3>标题二</h3>
   <p>内容二</p>
   <h3>标题三</h3>
   <p>内容三</p>
</body>
</html>

5.only-child(匹配属于其父元素的唯一子元素的每个元素)

其实“:nth-child(1):nth-last-child(1)”的结合用法

代码如下:


<!DOCTYPE HTML>
<html lang="en-US">
<head>
   <meta charset="UTF-8">
   <title> 选择器 </title>
   <style type="text/css">
       div p:only-child {background:red;}
   </style>
</head>
<body>
   <div>
       <p>孩子一</p>
   </div>
   <div>
       <p>孩子一</p>
       <p>孩子二</p>
   </div>
   <div>
       <p>孩子一</p>
       <p>孩子二</p>
       </p> <p><p>孩子三</p>
   </div>
</body>
</html>


上面说了那么多的css选择器的示例运用,有这些选择器可以大幅度的提高开发书写或修改样式表是的工作效率,我其实一直期待使用这些css选择器,可惜有IE

感谢各位的阅读,以上就是“css3高级选择器的用法”的内容了,经过本文的学习后,相信大家对css3高级选择器的用法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯