css3-属性选择器/伪类选择器/伪元素-web前端寒假总结

首先概括一下概念吧,属性选择器就是根据属性来选择HTML元素,来应用CSS样式(比如你的某个属性符合我的要求,我就给你应用样式)。属性选择器就是为匹配属性的HTML元素设置样式。


首先属性选择器中所有的例子,其HTML部分都是这部分代码:

<body>
	<p align="center">111</p>
	<p>222</p>
	<p align="left">333</p>
</body>

这三个<p>段落内容分别是111、222、333,对其属性分别是居中、无、左对齐。

属性选择器的基本格式 : 标签名 [ 属性要求 ] { CSS属性名:属性 }


比如最基本的:

标签名[属性]

<style>
	p[align]{
		color: red;
	}
</style>

意思就是所有<p>标签,只要有align属性的都符合条件,即染为红色。运行结果为111和333红色,222为黑色。


标签名[属性='属性值']

<style>
	p[align='center']{
		color: red;
	}
</style>

意思就是所有<p>标签,只要有align属性为'center'的染为红色。运行结果为111红色,222和333为黑色。


标签名[属性^='属性值'] / 标签名[属性$='属性值']

<style>
	p[align^='c']{
		color: red;
	}
</style>

意思就是所有<p>标签,align属性为'c'开头的染为红色。运行结果为111红色,222和333为黑色。

扫描二维码关注公众号,回复: 8824171 查看本文章

同理,把^改为$,当align属性为'c'结尾的染为红色。


标签名[属性*='属性值']

<style>
	p[align*='t']{
		color: red;
	}
</style>

所有<p>标签,align属性包含字符串'c'的染为红色。即111、333红色。


伪类选择器

伪类动态选择器,我觉得就是一个HTML元素在点击之前、之后、点击瞬间和悬停这四种情况的临时样式。

<body>
	<div class="test">

	</div>
</body>

<style>
	.test{
		/* 基础样式 */
		width: 100px;
		height: 100px;
	}
	.test:link{
		/* 未被点击 */
		background-color: grey;
	}
	.test:hover{
		/* 鼠标悬停 */
		background-color: red;
	}
	.test:active{
		/* 鼠标点击瞬间 */
		background-color: black;
	}
	.test:visited{
		/* 点击之后 */
		background-color: teal;
	}
</style>

伪装结构选择器

利用文档结构的特殊性来匹配元素,比如父元素只有一个子元素,等等。

比如 标签名:only-child 表示该类的父类只有其一个元素的情况。

比如 标签名:only-first 表示匹配该类的父类的第一个元素。其中  :标签名:nth-child(3) 表示第三个。

比如 标签名:only-last 表示匹配该类的父类的最后一个元素。 其中  :标签名:nth-last-child(3) 表示倒数第三个。

其他的还有很多,但个人感觉都是花里胡哨,基本不会去用的......

标签名:only-of-type 表示子元素唯一;

标签名:first-of-type 表示匹配第一个子元素;

标签名:last-of-type 表示匹配最后一个子元素;nth-of-type(3)同理

标签名:empty 表示没有子元素的HTML元素


状态伪类

就是HTML元素的状态......比如是否可见

标签名:enabled 表示可见的HTML属性   ; disenabled同理

标签名:checked 表示选中的HTML元素 比如单选框、复选框

标签名:not() 否定伪类  比如下方代码,把id不是b的都变为红色。

<body>
	<p id="a">111</p>
	<p id="b">222</p>
	<p id="c">333</p>
</body>

<style>
	p:not(#b){
		color: red;
	}
</style>

最后一个比较好玩的东西是目标伪类选择器

如果让你实现一个功能:在HTML中的瞄的基础之上,跳转到瞄内容的时候,背景显示红色。

像这样,点击“导航1”,跳转到内容111,并且显示红色背景。

点击“导航3”,跳转到内容333,并且显示红色背景。

这就需要用到“  标签名:target  ”,代码如下所示:

<body>
	<a href="#a">导航1</a>
	<a href="#b">导航2</a>
	<a href="#c">导航3</a>
	
	<p id="a">内容111</p>
	<p id="b">内容222</p>
	<p id="c">内容333</p>
</body>


<style>
	p:target{
		background-color: red;
	}
</style>

发布了43 篇原创文章 · 获赞 26 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_41464123/article/details/104080578
今日推荐