zoukankan      html  css  js  c++  java
  • CSS3 结构伪类选择器

    今天在B站看了一个CSS3 关于结构伪类选择器的视频,总结加深下印象:

    选择器 作用
    first-child 匹配子集的第一个元素
    last-child 匹配子集的最后一个元素
    nth-child(n) 根据索引n匹配值
    nth-last-child(n) 根据索引n匹配值,索引从最后一个开始数
    nth-of-type(n) 根据标签Type和索引n匹配值
    nth-last-of-type(n) 根据标签Type和倒数索引n匹配值
    only-child 当标签下有且仅有一个匹配的元素时,才会有作用,如果有多个元素不会有作用

    首先画一个基于ul的横向列表,后面伪类选择器会基于此ul列表展开:

    	<!DOCTYPE html>
    	<html lang="en">
    	<head>
    	    <meta charset="UTF-8">
    	    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    	    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    	    <title>结构伪类选择器</title>
    	    <style>
    	        * {
    	            padding: 0px;
    	            margin: 0px;
    	        }
    	
    	        .clearfix{
    	            clear: both;
    	            overflow: auto;
    	        }
    	
    	        .demo {
    	            border: 1px solid #ccc;
    	            width: 300px;
    	            margin: 50px auto;
    	            padding: 10px;
    	        }
    	
    	        .demo li {
    	            float: left;
    	            list-style: none;
    	            padding: 2px;
    	            border: 1px solid #ccc;
    	            margin-right: 4px;
    	            width: 20px;
    	        }
    	
    	        .demo a{
    	            display: block;
    	            width: 20px;
    	            height: 20px;
    	            text-align: center;
    	            border-radius: 10px;
    	            background-color: rgb(180, 51, 255);
    	            text-decoration: none;
    	        }
    			/*
    				伪类选择器操作区
    			*/
    	    </style>
    	</head>
    	<body>
    	    <div class="demo clearfix">
    	        <ul class="clearfix">
    	            <li><a href="">1</a></li>
    	            <li><a href="">2</a></li>
    	            <li><a href="">3</a></li>
    	            <li><a href="">4</a></li>
    	            <li><a href="">5</a></li>
    	            <li><a href="">6</a></li>
    	            <li><a href="">7</a></li>
    	            <li><a href="">8</a></li>
    	            <li><a href="">9</a></li>
    	            <li><a href="">10</a></li>
    	        </ul>
    	    </div>
    	</body>
    	</html>
    

    在这里插入图片描述
    1. first-child:匹配子集的第一个元素。
        将demo下第一个li标签背景变为红色:

    	.demo li:first-child{
    	    background-color: red;
        }
    

    在这里插入图片描述
    2. last-child:匹配子集的最后一个元素。
        将demo下最后一个li标签背景变为红色:

    	.demo li:last-child{
        	background-color: red;
        }
    

    在这里插入图片描述
    3. nth-child(n):根据索引n匹配值
        nth-child(n):匹配所有索引
        nth-child(2n) 或 nth-child(even):匹配偶数索引
        nth-child(2n+1) 或 nth-child(odd):匹配奇数索引
        nth-child(n+4):匹配第4个以后的索引,包括第4个
        nth-child(3n+1):匹配1,4,7…索引值(当n=0时,n=1时,n=2时…)

        将demo下奇数索引li标签背景变为红色:

    	.demo li:nth-child(2n+1){
         	background-color: red;
        }
    

    在这里插入图片描述
    4. nth-last-child(n):根据索引n匹配值,索引从最后一个开始数,与 nth-child(n) 效果相反
        将demo下倒数的奇数索引li标签背景变为红色:

    	.demo li:nth-last-child(2n+1){
        	background-color: red;
        }
    

    在这里插入图片描述
    5. nth-of-type(n):根据标签Type和索引n匹配值,与 nth-child(n) 效果类似,但加了一个标签筛选
        如果ul下第一个标签是span标签,使用选择器nth-child(n):ul下的第一个li标签索引值是2,而使用选择器nth-of-type(n):ul下的第一个li标签索引值是1。

    6. nth-last-of-type(n):根据标签Type和倒数索引n匹配值,与 nth-of-type(n)效果类似,但索引是倒数开始

    7. only-child:当标签下有且仅有一个匹配的元素时,才会有作用,如果有多个元素不会有作用。

    	.demo li:only-child{
        	background-color: red;
        }
    	<div class="demo clearfix">
            <ul class="clearfix">          
                <li><a href="">10</a></li>
            </ul>
        </div>
    

    在这里插入图片描述

    8. only-of-type:当标签下有且仅有一个匹配的元素且元素内容为空时,才会有作用,如果有多个元素或元素内不为空不会有作用。

    	.demo li:only-of-type{
           background-color: red;
        }
        <div class="demo clearfix">
            <ul class="clearfix">          
                <li></li>
            </ul>
        </div>
    

    在这里插入图片描述


    有的伪类选择器可能在某些浏览器无法使用,可以使用下面这个网站查看选择器对浏览器的兼容性。
    https://caniuse.com/

  • 相关阅读:
    JSP_内置对象_out
    POJ_2186_Popular Cows_强连通分量
    POJ_2411_Mondriaan's Dream_状态压缩dp
    POJ_2115_扩展欧几里德
    HDU_5690_快速幂,同余的性质
    POJ_1061_扩展欧几里德
    HDU_5833_高斯消元
    Delphi 使用 Datasnap 的几种三层应用技术总结
    BIM 开发商 --广州
    Cola Cloud 基于 Spring Boot, Spring Cloud 构建微服务架构企业级开发平台
  • 原文地址:https://www.cnblogs.com/wangqilong/p/12540362.html
Copyright © 2011-2022 走看看