CSS中的常用选择器详解

命名规范:由数字、字母、下划线、中划线组成,且开头不能是数字

  1. ID选择器
    【唯一,重复出现不符合规范】

    <style>
    	#box1 {width: 100px; height: 100px; border: 1px solid red;}
    	#box2 {width: 200px; height: 200px; border: 1px solid red;}
    </style>
    <body>
    	<div id="box1"></div>
    	<div id="box2"></div>
    </body>
    
  2. class类别选择器
    【不唯一,代表一类元素】

    <style>
    	.box {width: 100px; height: 100px; border: 1px solid red;}
    </style>
    <body>
    	<div class="box">1</div>
    	<p class="box">2</p>
    </body>
    
  3. 标签选择器
    【通过标签名来选择元素】

    <style>
    	div {width: 100px; height: 100px; border: 1px solid red;}
    	p {line-height: 30px;}
    </style>
    <body>
    	<div>1</div>
    	<p>2</p>
    </body>
    
  4. 分组选择器
    【通过逗号分割,给不同的选择器添加相同的样式】

    <style>
    	div, .title, #p1 {
    		font-size: 30px;
    	}
    </style>
    <body>
    	<div>这是一个块</div>
    	<h2 class="title">这是一个二级标题</h2>
    	<p id="p1">这是一个段落</p>
    </body>
    
  5. 通配选择器
    【作用于所有的元素,用于重置样式】

    * {
    	margin: 0;
    	padding: 0;
     }
    
  6. 层次选择器
    ① M N:后代,获取M中所有的孩子N
    ② M > N:父子,获取M的儿子N

    <style>
    	/*后代,获取到的元素为a、b、c、d、e、f、g*/
    	#list li {}
    	/*父子,获取到的元素为a、b、c、d*/
    	#list > li {}
    </style>
    <body>
    	<ul id="list">
    		<li id="a">
    			<ol>
    				<li id="e"></li>
    				<li id="f"></li>
    				<li id="g"></li>
    			</ol>
    		</li>
    		<li id="b"></li>
    		<li id="c"></li>
    		<li id="d"></li>
    	</ul>
    </body>
    

    ③ M ~ N:兄弟,获取M下面所有与M同级的兄弟N
    ④ M + N:相邻,获取M下面相邻且与M同级的兄弟N(必须挨着才算)

    <style>
     /*兄弟,获取到的元素为p1、p2、p3*/
     div ~ p {}
     /*相邻,获取到的元素为p1*/
     div + p {}
    </style>
    <body>
    	<p id="p0">段落0</p>
    	<div>块元素</div>
    	<p id="p1">段落1</p>
    	<p id="p2">段落2</p>
    	<h2>标题</h2>
    	<p id="p3">段落3</p>
    </body>
    
  7. 属性选择器
    ① 属性名匹配
    ② 完全匹配:=
    ③ 部分匹配:*=
    ④ 起始匹配:^=
    ⑤ 结束匹配:$=
    ⑥ 组合匹配: [ ][ ][ ]

    <style>
    	/*属性名匹配,匹配到的元素有块2、块3、块4*/
    	div[class] {}
    	/*完全匹配,匹配到的元素有块3*/
    	div[class="div-container"] {}
    	/*部分匹配,匹配到的元素有块2、块3、块4*/
    	div[class*=container] {}
    	/*起始匹配,匹配到的元素有块2、块4*/
    	div[class^=container] {}
    	/*结束匹配,匹配到的元素有块2、块3*/
    	div[class$=container] {}
    	/*组合匹配,匹配到的元素有块1、块2*/
    	div[name][id] {}
    </style>
    <body>
    	<div name="box1">1</div>
    	<div class="container" id="box2">2</div>
    	<div class="div-container">3</div>
    	<div class="container-div">4</div>
    </body>
    
  8. 伪类选择器
    写法:选择器:伪类{ }
    常用伪类:
      ① :hover:可设置鼠标移入时的样式
      ② :before:在父元素的前面添加一些文本及样式
      ③ :after:在父元素的后面添加一些文本及样式
      ④ :checked:表单元素(复选框)被选中时的样式
      ⑤ :disabled:表单元素被禁用时的样式
      ⑥ :focus:表单元素获取焦点时的样式

  9. 结构型伪类选择器
    ① :nth-of-type(n):获取同类型中第n个元素
    ② :first-of-type:获取同类型中第一个元素
    ③ :last-of-type:获取同类型中最后一个元素
    ④ :only-of-type:获取同类型中唯一的那个元素
    ⑤ nth-last-of-type(n):获取同类型中倒数第n个元素
    ⑥ :nth-child(n):获取所有孩子中第n个元素
    ⑦ :first-child:获取所有孩子中第一个元素
    ⑧ :last-child:获取所有孩子中最后一个元素
    ⑨ :only-child:获取所有孩子中唯一的那个元素
    注:type表示在同类别中筛选,child表示在所有孩子中筛选

    <style>
    	/*nth-of-type,选中的元素为p2*/
    	div p:nth-of-type(2) {}
    	/*first-of-type,选中的元素为p1*/
    	div p:first-of-type {}
    	/*last-of-type,选中的元素为p5*/
    	div p:last-of-type {}
    	/*only-of-type,未选中元素,因为div中有多个p,不唯一*/
    	div p:only-of-type {}
    	/*nth-last-of-type,选中的元素为p3*/
    	div p:nth-last-of-type(3) {}
    	/*nth-child,选中的元素为title*/
    	div p:nth-child(2) {}
    	/*first-child,选中的元素为p1*/
    	div p:first-child {}
    	/*last-child,选中的元素为p5*/
    	div p:last-child {}
    	/*only-child,选中的元素为title*/
    	div h2:only-child {}
    </style>
    <body>
    	<div>
    		<p id="p1">段落</p>
    		<h2 id="title">这是一个二级标题</h2>
    		<p id="p2">段落</p>
    		<p id="p3">段落</p>
    		<p id="p4">段落</p>
    		<p id="p5">段落</p>
    	</ul>
    </body>
    
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值