欢迎来到DIVCSS5查找CSS资料与学习DIV CSS布局技术!
  源代码下载
 
  https://github.com/comehope/front-end-daily-challenges
 
  代码解读
 
  定义dom,导航中包含一个无序列表,列表中有一个列表项:
 
  <nav>
 
  <ul>
 
  <li>home</li>
 
  </ul>
 
  </nav>
 
  居中显示:
 
  body{
 
  margin:0;
 
  height:100vh;
 
  display:flex;
 
  align-items:center;
 
  justify-content:center;
 
  background-color:teal;
 
  }
 
  隐藏列表项前端的引导符号:
 
  navul{
 
  padding:0;
 
  list-style-type:none;
 
  }
 
  定义按钮容器尺寸:
 
  :root{
 
  font-size:10px;
 
  }
 
  navli{
 
  width:20rem;
 
  height:7rem;
 
  }
 
  设置文字样式:
 
  navli{
 
  font-size:20px;
 
  text-align:center;
 
  line-height:7rem;
 
  font-family:sans-serif;
 
  text-transform:uppercase;
 
  letter-spacing:1px;
 
  }
 
  用伪元素制作2个背景色块:
 
  
 
  navli{
 
  position:relative;
 
  }
 
  navli::before,
 
  navli::after{
 
  content:'';
 
  position:absolute;
 
  width:inherit;
 
  height:inherit;
 
  top:0;
 
  left:0;
 
  }
 
  navli::before{
 
  background-color:white;
 
  z-index:-1;
 
  }
 
  navli::after{
 
  background-color:goldenrod;
 
  z-index:-2;
 
  }
 
  让后面的背景块向右下偏移,并且让前面的背景块投放阴影,增加立体效果:
 
  navli::before{
 
  box-shadow:0.2rem0.2rem0.5remrgba(0,0,0,0.2);
 
  }
 
  navli::after{
 
  transform:translate(1.5rem,1.5rem);
 
  }
 
  接下来增加悬停效果。
 
  设置缓动时间,主元素和伪元素都将有缓动效果:
 
  navli{
 
  transition:0.3s;
 
  }
 
  navli::before,
 
  navli::after{
 
  transition:0.3s;
 
  }
 
  当悬停时,2个背景色块的颜色互换:
 
  navli:hover::before{
 
  background-color:goldenrod;
 
  }
 
  navli:hover::after{
 
  background-color:white;
 
  }
 
  同时,后面的背景色块的向左上方移动,按钮整体则向右下方移动:
 
  navli:hover{
 
  transform:translate(1.5rem,1.5rem);
 
  }
 
  navli:hover::after{
 
  transform:translate(-1.5rem,-1.5rem);
 
  }
 
  同时,再让文本在悬停时变色:
 
  navli:hover{
 
  color:white;
 
  }
 
  再增加几个按钮:
 
  <nav>
 
  <ul>
 
  <li>home</li>
 
  <li>products</li>
 
  <li>services</li>
 
  <li>contact</li>
 
  </ul>
 
  </nav>
 
  最后,增加按钮之间的间距:
 
  navli{
 
  margin:3rem;
 
  }
 
  大功告成!









本文转载自中文网

如需转载,请注明文章出处和来源网址:http://www.divcss5.com/css3-style/c55530.shtml