CSS3新增选择器

CSS3新增选择器都知道css有三个简单常用的选择器,#id、class和标签选择器。但是css3又新增了一些选择器,可以减少结构代码中ID属性和class属性的定义。使用它们可以减少不少冗杂的代码,便捷开发。下面介绍:css3属性选择器css3结构伪类选择器css3UI伪类选择器1.css3属性选择器属性选择器语法如下(E表示标签):选择器功能描述E[attribute]选…

大家好,又见面了,我是你们的朋友全栈君。

都知道css有三个简单常用的选择器,#id、class和标签选择器。但是css3又新增了一些选择器,可以减少结构代码中ID属性和class属性的定义。使用它们可以减少不少冗杂的代码,便捷开发。下面介绍:

  1. css3属性选择器
  2. css3结构伪类选择器
  3. css3 UI伪类选择器

1.css3属性选择器

属性选择器语法如下(E表示标签):

选择器 功能描述
E[attribute] 选取带有指定属性的元素
E[attribute=value] 选取带有指定属性和值的元素
E[attr^=“val”] 匹配属性attr的值以指定值”val”开头的每个元素
E[attr$=“val”] 匹配属性attr的值以指定值”val”结尾的元素
E[attr*=“val”] 匹配属性attr的值包含字符串”val”元素

例如如下实例,查找属性值href以http开头的元素,并使其背景颜色为yellow:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style type="text/css"> p{ 
     margin: 10px; } /*查找含有href属性为http的a元素*/ /*a[href^="http"]{ background-color: yellow; }*/ /*a[href$="pdf"]{ background-color: pink; }*/ /*a[href*="age"]{ background-color: orange; }*/ </style>
</head>
<body>
	<p><a href="http://www.baidu.com/name.pdf">PDF文件</a></p>
	<p><a href="http://www.baidu.com/name.svg">SVG</a></p>
	<p><a href="http://www.baidu.com/name.ppt">PPT文件</a></p>
	<p><a href="http://www.baidu.com/age.xls">age.XLS文件</a></p>
	<p><a href="http://www.baidu.com/name.pdf">PDF文件</a></p>
	<p><a href="www.baidu.com/name.pdf">PDF文件</a></p>
	<p><a href="http://www.baidu.com/age.gif">age.GIF文件</a></p>
	<p><a href="http://www.baidu.com/name.pdf">PDF文件</a></p>
</body>
</html>

上面注释逐一放开效果如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.css3结构伪类选择器

结构伪类选择器是css3中新增的选择器,主要作用是通过文档结构的先后关系来匹配特定的元素,从而减少结构代码中ID属性和class属性的定义,使得文档更简洁。

结构伪类选择器语法:
下方语法中n不能以0开头,123…,也可以是其他关键字如odd奇数、even偶数。也可以使用2n表示偶数,2n+1表示奇数。

选择 功能描述
:root 选择匹配文档的根元素
E:nth-child(n) 选择所有在其父元素中的第n个位置的匹配E的子元素
E:nth-last-child(n) 选择所有在其父元素中倒数第n个位置的匹配E的子元素
E:nth-of-type(n) 选择所有在其父元素中同类型第n个位置的匹配E的子元素
E:nth-last-of-type(n) 选择所有在其父元素中同类型倒数第n个位置的匹配E的子元素
E:last-child 选择位于其父元素中最后一个位置,且匹配E的子元素 ,与E:nth-last-child(1)等同
E:fisrt-child 选择位于其父元素中第一个位置,且匹配E的子元素 ,与E:nth-child(1)等同
E:first-of-type 选择在其父元素中匹配E的第一个同类型子元素
E:last-of-type 选择在其父元素中匹配E的最后一个同类型子元素
E:only-child 选择在其父元素中只包含一个子元素,且该子元素匹配E。
E:only-of-type 选择在其父元素中只包含一个同类型子元素,且该子元素匹配E。
E:empty 选择匹配E的元素,且该元素不包含子元素。

实例效果如下

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style type="text/css"> th{ 
     height: 30px; } td{ 
     height: 20px; } td, th{ 
     border: 1px solid #cad9ea; padding: 0 1em 0; } /*匹配文档的根元素*/ /*:root{ background-color: red; }*/ /*匹配在其父元素中第二个位置匹配tr的子元素*/ /*tr:nth-child(2){ background-color: #ff0000; }*/ /*在其父元素table中倒数第2个位置的匹配tr的子元素*/ /*tr:nth-last-child(2){ background-color: yellow; }*/ /*每一个tr中的最后一个td*/ /*td:last-child{ background-color: blue; }*/ </style>
</head>
<body>
	<table>
		<tr>
			<th>姓名</th>
			<th>年龄</th>
			<th>班级</th>
			<th>成绩</th>
		</tr>
		<tr>
			<td>1111</td>
			<td>2222</td>
			<td>3333</td>
			<td>4444</td>
		</tr>
		<tr>
			<td>1111</td>
			<td>2222</td>
			<td>3333</td>
			<td>4444</td>
		</tr>
		<tr>
			<td>1111</td>
			<td>2222</td>
			<td>3333</td>
			<td>4444</td>
		</tr>
		<tr>
			<td>1111</td>
			<td>2222</td>
			<td>3333</td>
			<td>4444</td>
		</tr>
	</table>
	
</body>
</html>

在这里插入图片描述
对于上面表格,如果设置结构伪类选择器的效果:

  1. :root

    /*匹配文档的根元素*/
    :root{ 
         
    		background: red;
    	}
    

    在这里插入图片描述

  2. :nth-child(2):父元素table中第二个配置tr的

    /*匹配在其父元素中第二个位置匹配tr的子元素*/
    tr:nth-child(2){ 
         
    	background-color: #ff0000; 
    }
    

    在这里插入图片描述

  3. nth-last-child(2)

    /*在其父元素table中倒数第2个位置的匹配tr的子元素*/
    tr:nth-last-child(2){ 
         
    	background-color: yellow;
    }
    

    在这里插入图片描述

  4. :last-child

    /*每一个tr中的最后一个td*/
    td:last-child{ 
         
    	background-color: blue;
    }
    

    在这里插入图片描述
    结构伪类选择器使用方法就是这样。

3.UI伪类选择器

css3中共定义了11中UI伪类选择器。如下:
在这里插入图片描述
实例如下:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style type="text/css"> /*input[type="text"]:enabled{ background-color: #ffff00; }*/ /*input[type="text"]:disabled{ background: pink; }*/ /*input:required{ background: #ff5aba; }*/ /*input:read-only{ background: blue; }*/ /*::selection{ color: red; }*/ </style>
</head>
<body>
	<form action="#" name="myform" method="get">
		name: <input type="text" name="xiaohua"><br>
		country: <input type="text" disabled="disabled" value="china"><br>
		<input type="radio" checked="checked" value="male"><br>
		<input type="radio" value="female"><br>
		
		<p>普通的input元素:<br><input value="hello"></p>

		<p>只读的input元素:<br><input readonly="" value="hello"></p>
		
		<div>这是div元素的文本:</div>
		<input type="number" min="1" max="10" value="6">
		<p>可选择的input元素: <br><input type="text"></p>

		<p>必填的input元素: <br><input required type="text"></p>
		
		<input type="email" value="w1418899@163.com">
	</form>
</body>
</html>

在这里插入图片描述
将上面注释逐一放开效果如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

每天进步一点点、充实一点点、加油!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/157550.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SpringBatch概述

    SpringBatch概述1、SpringBatch简介1.1、简介根据Spring官网描述,SpringBatch是一个轻量级的、完善的批处理应用框架,旨在支持企业系统建立健壮、高效的批处理应用。然而SpringBatch不是一个调度框架,它只关注于任务的处理,如日志监控、事务、并发问题等,但是它可以与其它调度框架一起联合使用,完成相应的调度任务,如Quartz、Tivoli、Control-M等。Sprin…

    2022年5月8日
    50
  • Vue进阶(四十七):面试必备:2022 Vue经典面试题总结(含答案)

    Vue进阶(四十七):面试必备:2022 Vue经典面试题总结(含答案)面试必备:2019Vue经典面试题总结(含答案)一、什么是MVVM?MVVM是Model-View-ViewModel的缩写。MVVM是一种设计思想。Model层代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑;View代表UI组件,它负责将数据模型转化成UI展现出来,ViewModel是一个同步View和Model的对象。在MVVM架构下,View和Mod…

    2022年6月13日
    49
  • 图片批量重命名的2种好方法有哪些_怎么给手机图片重命名

    图片批量重命名的2种好方法有哪些_怎么给手机图片重命名第一种,使用CTRL+A(全选)快捷键或者按CTRL键使用鼠标选中部分图片按F2(重命名快捷键)或者鼠标右键→重命名重命名只有一个图片出现编辑框,编辑完成回车就可以了。第二种,使用pptX文档更改。格式为(image1.jpeg,image2.jpeg,image3.jpeg……)新建ppt文档点击插入→图片pptX!pptX!pptX!我试了ppt文档压缩后不能打开找到图片所在的路径,全选图片后点击打开,保存文档…

    2025年9月15日
    7
  • SQL Server配置管理器没有任何项目

    SQL Server配置管理器没有任何项目今天安装了SQL2017后,连接数据库发现报sql错误2,想着是MSSQLSERVER服务没开,就去配置管理器打开,但是发现新安装的sql,显示没有任何项目辗转查了好久才发现导致的原因是:安装sql过程中,添加实例为当前系统用户,但是之后我修改过系统的计算机名称,导致原实例MSSQLSERVER不识别,所以不显示也不识别。解决方法有:(选择其中一种执行即可)(1)把计算机的名称

    2022年7月20日
    36
  • phpMyAdmin使用教程

    phpMyAdmin使用教程什么是phpMyAdmin?phpMyAdmin是众多MySQL图形化管理工具中使用最为广泛的一种,是一款使用PHP开发的基于B/S模式的MySQL客户端软件,该工具是基于Web跨平台的管理程序,并且支持简体中文,用户可以在官网上下载最新版本的。phpMyAdmin为Web开发人员提供了类似Access,SQLServer的图形化数据库操作界面,通

    2022年5月31日
    108
  • C语言条件运算符_c语言数组长度可变吗

    C语言条件运算符_c语言数组长度可变吗如果希望获得两个数中最大的一个,可以使用if语句,例如:if(a>b){max=a;}else{max=b;}不过,C语言提供了一种更加简单的方法,叫做条件运算符,语法格式为:表达式1?表达式2:表达式3条件运算符是C语言中唯一的一个三目运算符,其求值规则为:如果表达式1的值为真,则以表达式2的值作为整个条件表达式的值,否则以表达式3…

    2022年10月4日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号