学会结构伪类选择器再也不会想每个标签都加 class 和id了

最近在学习css感觉心得犹如喷泉一样狂涌不止,之前学习了结构伪类选择器觉得没啥用,感觉形式冗长,不如 类选择器,ID选择器,等简单。但是最近深入学习发现,在一些情况下结构伪类选择器更优于其他选择器
结构伪类选择器的优点
减少文档内的class 和id属性的定义,使文档更简洁。简单来说就是用了结构伪类选择器比不用结构伪类选择器的文档更简洁。
因此弄懂学会结构伪类选择器很重要,关键时刻能节约不少时间
下面是我对结构伪类选择器的自我理解
我把结构伪类分为了两个部分来说
1.-child类型。2.-type类型
child类型:

  1. first-child
    该选择器的含义是:选定父元素下的第一个子元素
    例如:
div :first-child{
				color: #0000FF;
				font-size: 40px;
				
			}
		</style>
	</head>
	<body>
	
	<div>
		<p>1</p>
		<p>2</p>
		<P>3</P>
		<P>4</P>
		<p>5</p>
		</div>

在这里插入图片描述

  1. last-child
    这个根据英文意思也能理解:就是选定父元素下的最后一个子元素
<style>
			
			div :last-child{
				color: #0000FF;
				font-size: 40px;}
		</style>
	</head>
	<body>
	
	<div>
		<p>1</p>
		<p>2</p>
		<P>3</P>
		<P>4</P>
		<p>5</p>
		</div>

运行结果:在这里插入图片描述

  1. only-child
    这个选择器我自我感觉有点鸡肋,但是还是要说一下:它的意思是,父元素下唯有一个子元素才能被选中:
<style>
			
			div :only-child{
				color: #0000FF;
				font-size: 40px;}
		</style>
	</head>
	<body>
	
	<div>
		<p>1</p>
	//以下p标签是被注释掉了	
<!-- 	<p>2</p>
	<P>3</P>
	<P>4</P>
	<p>5</p> -->
		
		</div>

在这里插入图片描述
这里之所以要注释掉下面的几个P标签是因为only性,父元素下的唯一子元素才能被选中;

  1. nth-child(n)
    该选择器是选择父元素下顺数第(n)个子元素:
	div :nth-child(3){
				color: #0000FF;
				font-size: 40px;}
		</style>
	</head>
	<body>
	
	<div>
		<p>1</p>
		<p>2</p>
		<P>3</P>
		<P>4</P>
		<p>5</p>
		
		</div>

结果如下:
在这里插入图片描述5. nth-last-child(n)
这个选择器与上一个类似只不过它选择的对象是倒数的,就不做介绍了。仿照上面的例子就可以轻松理解该选择器

type类型:
他其实有很多思想是与child类似的只不过type是倾向类型选定,而child是倾向逻辑层次的上下级选定

  1. only-of-type
    父元素下的唯一相同类型元素:div article:only-of-type{} 意思是div下的article是div里的唯一一个元素
    例如:
div article:only-of-type{
				color: #0000FF;
				font-size: 40px;}
		</style>
	</head>
	<body>
	
	<div>
		<article>
		<p>1</p>
		<p>2</p>
		</article>
		<P>3</P>
		<P>4</P>
		<p>5</p>
		
		</div>

运行结果
在这里插入图片描述

  1. first-of-type
    与first-child类似也是选择第一个元素,但是它是选择同类型中第一个兄弟元素
div article:first-of-type{
				color: #0000FF;
				font-size: 40px;}
		</style>
	</head>
	<body>
	
	<div><P>1</P>
		<article>
		<p>2</p>
		<p>3</p>
		</article>
		
		<article>
		<P>4</P>
		<p>5</p>
		</article>
		</div>
		

在这里插入图片描述

  1. last-of-type
    相信认真看了上面的内容,再看到这里的朋友们,应该已经懂了吧,我就不过多赘述了;直接上代码以及运行结果,看看它的强大之处
	
			div article:last-of-type{
				color: #0000FF;
				font-size: 40px;}
		</style>
	</head>
	<body>
	
	<div><P>1</P>
		<article>
		<p>2</p>
		<p>3</p>
		</article>
		
		<article>
		<P>4</P>
		<p>5</p>
		</article>
		</div>

运行结果:在这里插入图片描述

  1. nth-of-type(n)
	div p:nth-of-type(1){
				color: #0000FF;
				font-size: 40px;}
		</style>
	</head>
	<body>
	
	<div>
		<span>0.5</span>
		<P>1</P>
		<p>2</p>
		<p>3</p>
		<P>4</P>
		<p>5</p>
		</div>

在这里插入图片描述
在这里多插入了一个span标签
是便于理解:它是从相同类型的标签开始算起的,并且起始值从一开始而不是0;
5. nth-last-of-type(n)

	div p:nth-last-of-type(1){
				color: #0000FF;
				font-size: 40px;}
		</style>
	</head>
	<body>
	
	<div>
		<span>0.5</span>
		<P>1</P>
		<p>2</p>
		<p>3</p>
		<P>4</P>
		<p>5</p>
		<span>6</span>
		</div>

运行结果
在这里插入图片描述
同理也是一样,它选择的是div下p标签里面的倒数第一个,而不是仅仅直接是倒数第一个的span标签

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值