老师,为什么last-child效果不对?

老师,为什么last-child效果不对?

相关代码:

        footer .link ul li a:last-child{
margin-right: 0;
}
​<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
*{
margin: 0;
padding: 0;
}
header{
width: 1000px;
height: 100px;
margin: 10px auto;
/* background-color: #333; */
}
header .logo{
float:left;
width: 300px;
height:100px;
background-color: orange;
}
header .login{
float: right;
width: 300px;
height: 30px;
background-color: orangered;
}
header nav{
float:right;
width: 600px;
height: 60px;
margin-top: 10px;
background-color: orchid;
}
section{
width: 1000px;
height: 500px;
margin: 10px auto;
background-color: #333;
}
section aside{
float:left;
width: 390px;
height: 500px;
background-color: peru;
}
section main{
float:right;
width: 600px;
height: 500px;
background-color: #444;
}
section main .content{
width: 600px;
height: 400px;
background-color: royalblue;
}
section main .pics{
width: 600px;
height: 80px;
margin-top: 20px;
}
section main .pics ul{
list-style:none;
}
section main .pics ul li{
float:left;
width: 144px;
height: 80px;
background-color: rgb(71, 180, 243);
margin-right: 8px;
}
section main .pics ul li:last-child{
margin-right: 0;
}
footer{
width: 1000px;
height: 80px;
margin: 0 auto;
background-color: rgba(51, 51, 51, 0.301);
}
footer .link{
width: 1000px;
height: 25px;
}
footer .link ul{
list-style: none;

}
footer .link ul li{
float: left;
}
footer .link ul li a{
display: inline-block;
background: rgb(209, 159, 159);
border-radius: 8px;
text-decoration: none;
width: 150px;
height: 25px;
margin-right: 20px;
text-align: center;
}
footer .link ul li a:last-child{
margin-right: 0;
}
</style>
</head>
<body>
<header>
<div class="logo"></div>
<div class="login"></div>
<nav></nav>
</header>
<section>
<aside></aside>
<main>
<div class="content"></div>
<div class="pics">
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
</main>
</section>
<footer>
<div class="link">
<ul>
<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>
</ul>
</div>
<address></address>
<div class="page-info"></div>
</footer>
</body>
</html>


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,last-child是生效了的。具体如下:

http://img1.sycdn.imooc.com//climg/60334feb09943bbd11590754.jpg

祝学习愉快!

  • 慕UI4313976 提问者 #1

    老师是这块:

    http://img1.sycdn.imooc.com//climg/6033aa4409afbb9609820062.jpg

    footer .link ul li a{
    display: inline-block;
    background: rgb(209, 159, 159);
    border-radius: 8px;
    text-decoration: none;
    width: 150px;
    height: 25px;
    margin-right: 20px;
    text-align: center;
    }
    footer .link ul li a:last-child{
    margin-right: 0;
    }


    2021-02-22 20:58:23
  • 卡布琦诺 回复 提问者 慕UI4313976 #2

    同学你好,首先,last-child是生效了的,从效果图上可以看到,所有a标签的margin-right都是0,a标签之间的间距没有了。那这是什么原因呢?这是由于代码书写不规范导致的,按照同学的写法,footer .link ul li a:last-child是查找每个li里面最后一个子元素a标签,再来看一下html代码结构:

    http://img1.sycdn.imooc.com//climg/6034647509e0244406500381.jpg

    每个a标签都可以看做是li的最后一个子元素,所以footer .link ul li a:last-child这种写法会把所有的a标签的margin-right重置成0,想要实现只有最有一个子元素没有margin-right间距,需要按照如下修改:

    http://img1.sycdn.imooc.com//climg/6034658b09d843bd04690464.jpg

    这样就是查找ul下最有一个子元素li标签了,只有最后一个li标签的margin-right会被重置成0,其他的li标签的margin-right:20px不受影响。

    祝学习愉快!

    2021-02-23 10:19:08
  • 慕UI4313976 提问者 回复 卡布琦诺 #3

    谢谢老师指导!

    2021-02-23 15:04:48
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师