问答详情
源自:5-5 CSS3背景 制作导航菜单综合练习题

请问大神right:0可以删除吗?还有 background: linear-gradient(top, #ff625a, #9e3e3a 50%, #ff625a);top前面不用加to吗?

<!doctype html>

<html>

<head>

    <meta charset="UTF-8">

<title>CSS制作立体导航</title>

<link rel="stylesheet" href="http://www.w3cplus.com/demo/css3/base.css">

<style>

body{

 background: #ebebeb;

}

.nav{

 width:560px;

 height: 50px;

 font:bold 0/50px Arial;

 text-align:center;

 margin:40px auto 0;

background: #f65f57;

        border-radius:10px;

        box-shadow:0px 8px 0px #900;

/*制作圆*/


          /*制作导航立体风格*/

}

.nav a{

 display: inline-block;

-webkit-transition: all 0.2s ease-in;

-moz-transition: all 0.2s ease-in;

  -o-transition: all 0.2s ease-in;

  -ms-transition: all 0.2s ease-in;

  transition: all 0.2s ease-in;

}

.nav a:hover{

 -webkit-transform:rotate(10deg);

 -moz-transform:rotate(10deg);

 -o-transform:rotate(10deg);

 -ms-transform:rotate(10deg);

 transform:rotate(10deg);

}


.nav li{

 position:relative;

 display:inline-block;

 padding:0 16px;

 font-size: 13px;

 text-shadow:1px 2px 4px rgba(0,0,0,.5);

 list-style: none outside none;

}

/*使用伪元素制作导航列表项分隔线*/

     .nav li::before,.nav li::after{

 content:"";

 position:absolute;

 top:14px;

 height: 25px;

 width: 1px;

}

.nav li::after{

 right: 0;

 background: -moz-linear-gradient(top, rgba(255,255,255,0), rgba(255,255,255,.2) 50%, rgba(255,255,255,0));

 background: -webkit-linear-gradient(top, rgba(255,255,255,0), rgba(255,255,255,.2) 50%, rgba(255,255,255,0));

 background: -o-linear-gradient(top, rgba(255,255,255,0), rgba(255,255,255,.2) 50%, rgba(255,255,255,0));

 background: -ms-linear-gradient(top, rgba(255,255,255,0), rgba(255,255,255,.2) 50%, rgba(255,255,255,0));

 background: linear-gradient(top, rgba(255,255,255,0), rgba(255,255,255,.2) 50%, rgba(255,255,255,0));

}

.nav li::before{

 left: 0;

 background: -moz-linear-gradient(top, #ff625a, #9e3e3a 50%, #ff625a);

 background: -webkit-linear-gradient(top, #ff625a, #9e3e3a 50%, #ff625a);

 background: -o-linear-gradient(top, #ff625a, #9e3e3a 50%, #ff625a);

 background: -ms-linear-gradient(top, #ff625a, #9e3e3a 50%, #ff625a);

 background: linear-gradient(top, #ff625a, #9e3e3a 50%, #ff625a);

}


       /*删除第一项和最后一项导航分隔线*/

.nav li:first-child::before{

       background: none;

}

            

.nav li:last-child::after{

       background: none;

}


.nav a,

.nav a:hover{

 color:#fff;

 text-decoration: none;

}


</style>

</head>

<body>

<ul class="nav">

     <li><a href="">Home</a></li>

     <li><a href="">About Me</a></li>

     <li><a href="">Portfolio</a></li>

     <li><a href="">Blog</a></li>

     <li><a href="">Resources</a></li>

     <li><a href="">Contact Me</a></li>

</ul>

</body>

</html>


提问者:穿梭时间 2019-05-08 19:00

个回答

  • 慕瓜1216469
    2019-05-16 20:53:54

    right=0不能删除,删除了,你通过伪元素添加的这个空格位置就会被默认紧贴(如果是:before就紧贴下一个元素的前面,:after则相反)。position:absolute是相对于该元素的父元素来定位的,所以right=0实际上是把这个空格位置紧贴在它的父元素也就是<li>的脸上,所以最后前后贴脸的两个空格才能重合起来。至于top加不加to都行,事实证明它可以不加to.