CSS选择器之:first-child,:last-child

定义

:first-child 选择器用于选取属于其父元素的首个子元素的指定选择器。

提示:p:last-child 等同于 p:nth-first-child(1)。

:last-child 选择器匹配属于其父元素的最后一个子元素的每个元素。

提示:p:last-child 等同于 p:nth-last-child(1)。

直接看定义稍微有点绕,定义中最关键的就是属于其父元素。如果不能理解的话我们通过几个经典的例子来让大家豁然开朗。

实例

first-child和last-child基本相同,我们通过看:last-child一并学习吧

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="css.css"/>
    <style>
        button:last-child{
            width: 40px;
            height: 40px;
            background-color: aqua;
        }
    </style>
</head>
<body>
<div class='level-1'>
    <button>我的父级是level-1</button>
    <div class="level-2-1">
        <button>我的父级是level-2-1</button>
        <button>我的父级是level-2-1</button>
        <button>我的父级是level-2-1</button>
        <button>我的父级是level-2-1</button>
        <button>我的父级是level-2-1</button>
    </div>
    <div class="level-2-2">
        <button>我的父级是level-2-1</button>
        <button>我的父级是level-2-1</button>
        <button>我的父级是level-2-1</button>
        <button>我的父级是level-2-1</button>
        <button>我的父级是level-2-1</button>
    </div>
    <button>我的父级是level-1</button>
</div>
</body>
<script src="js/require.js" data-main="main" type="text/javascript"></script>
</html>

通过上面的例子我们很容易看出来last之间的关系,看似明白了那我们接下来继续看

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="css.css"/>
    <style>
        button:last-child{
            min-width: 40px;
            min-height: 40px;
            background-color: aqua;
            border-radius: 10px;
        }
    </style>
</head>
<body>
<div class='level-1'>
    <button>我的父级是level-1</button>
    <div class="level-2-1">
        <button>level-2-1-btn</button>
        <button>level-2-1-btn</button>
        <button>level-2-1-btn</button>
        <button>level-2-1-btn</button>
        <button>level-2-1-btn-last</button>
        <span>level-2-1-p-last</span>
    </div>
    <div class="level-2-2">
        <button>level-2-2-btn</button>
        <button>level-2-2-btn</button>
        <button>level-2-2-btn</button>
        <button>level-2-2-btn</button>
        <button>level-2-2-btn-last</button>
        <div class="level-2-2-1">
            <button>level-2-2-1</button>
            <button>level-2-2-1</button>
            <button>level-2-2-1</button>
            <button>level-2-2-1</button>
            <button>level-2-2-1-last</button>
        </div>
    </div>
    <button>level-1-btn-last</button>
    <p>level-1-p-last</p>
</div>
</body>
<script src="js/require.js" data-main="main" type="text/javascript"></script>
</html>

是不是有点疑问,为什么只有一个btn生效。我们用button做详解,其他的都同理

  1. button:last-child寻找select的父级元素,直到查到body;
  2. 根据父级元素查找其最后一个子元素A;
  3. 对比该子元素A和button是否为同一类型,如果是则生效,否则不生效;

如果能看懂最后一个例子,那么对于last-child就出师了

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="css.css"/>
    <style>
        :last-child{
            min-width: 40px;
            min-height: 40px;
            border:3px dashed rebeccapurple;
            border-radius: 10px;
            color: #f5293e;
        }
    </style>
</head>
<body>
<div class='level-1'>
    <button>我的父级是level-1</button>
    <div class="level-2-1">
        <button>level-2-1-btn</button>
        <button>level-2-1-btn</button>
        <button>level-2-1-btn</button>
        <button>level-2-1-btn</button>
        <button>level-2-1-btn-last</button>
        <span>level-2-1-p-last</span>
    </div>
    <div class="level-2-2">
        <button>level-2-2-btn</button>
        <button>level-2-2-btn</button>
        <button>level-2-2-btn</button>
        <button>level-2-2-btn</button>
        <button>level-2-2-btn-last</button>
        <div class="level-2-2-1">
            <button>level-2-2-1</button>
            <button>level-2-2-1</button>
            <button>level-2-2-1</button>
            <button>level-2-2-1</button>
            <button>level-2-2-1-last</button>
        </div>
    </div>
    <button>level-1-btn-last</button>
    <p>level-1-p-last</p>
</div>
</body>
<script src="js/require.js" data-main="main" type="text/javascript"></script>
</html>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值