Tạo hiệu ứng ánh sáng đơn giản cho menu bằng CSS3

Cập nhật: Lượt xem: 1622 [ Css ]

Nếu bạn đang cần tạo một hiệu ứng mới mẻ và ấn tượng cho menu trên website khách hàng, hay của chính bạn thì hiệu ứng mà Laptrinhweb chia sẻ cho các bạn ngày hôm nay sẽ là một lựa chọn không nên bỏ qua.

Tạo hiệu ứng ánh sáng đơn giản cho menu bằng CSS3

Hiệu ứng mà Laptrinhweb muốn chia sẻ được làm hoàn toàn bằng CSS3, và qua bài viết này, các bạn sẽ hiểu thêm về CSS3 cũng như có thêm một kiến thức mới cho mình.

HTML

Đầu tiên chúng ta cần một đoạn mã html cho menu như sau :

<ul>
  <li>
    <a>light</a>
  </li>
  <li>
    <a>speed</a>
  </li>
  <li>
    <a>hover</a>
  </li>
  <li>
    <a>effect</a>
  </li>
</ul>

CSS

Đây chính là phần chính của bài viết, để tạo hiệu ứng hover tuyệt đẹp cho menu, chúng ta cần đoạn css sau :

html {
  font-size: 0.625rem;
  font-family: 'Roboto Slab';
  font-weight: 300;
  -webkit-font-smoothing: antialiased;
  -moz-font-smoothing: antialiased;
  text-rendering: optimizelegibility;
  background: crimson;
  color: white;
}
 
ul {
  width: 100%;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%);
  -ms-transform: translate(-50%);
  transform: translate(-50%);
  text-align: center;
  font-size: 2.4rem;
  text-transform: uppercase;
}
ul li {
  display: inline-block;
  margin: 0 3rem;
}
ul a {
  position: relative;
  cursor: pointer;
}
ul a:hover {
  color: crimson;
}
ul a:after {
  content: "";
  display: block;
  height: 100%;
  width: 100%;
  position: absolute;
  z-index: -5;
  left: 50%;
  bottom: 0;
  -webkit-transform: translateX(-50%) skew(-89deg) scaleX(1.5);
  -ms-transform: translateX(-50%) skew(-89deg) scaleX(1.5);
  transform: translateX(-50%) skew(-89deg) scaleX(1.5);
  opacity: 0;
  background: #FFF45C;
  -webkit-transition: all 0.3s cubic-bezier(0.42, 0.08, 0, 1.8);
  transition: all 0.3s cubic-bezier(0.42, 0.08, 0, 1.8);
}
ul a:hover:after {
  width: 140%;
  -webkit-transform: translateX(-50%) skew(-20deg) scaleX(1);
  -ms-transform: translateX(-50%) skew(-20deg) scaleX(1);
  transform: translateX(-50%) skew(-20deg) scaleX(1);
  opacity: 1;
}

Đó là tất cả những gì mà mình muốn chia sẻ cho các bạn ngày hôm nay, mình hy vọng là các bạn sẽ cảm thấy thích với hiệu ứng menu này.

Chúc các bạn thành công !