04/10/2018, 19:56

Tạo menu đa cấp cực pro bằng CSS3

Hôm nay mình sẽ chia sẻ với các bạn thêm một hiệu ứng làm menu bằng CSS3 giúp bạn bổ sung thêm nhiều lựa chọn cho việc thiết kế menu cho web của mình. Các bạn có thể xem demo bài viết tại đây và làm theo từng bước sau : Bước 1 : HTML Như thường lệ , chúng ta sẽ bắt đầu tạo ra menu bằng ...

Tạo menu đa cấp cực pro bằng CSS3

Hôm nay mình sẽ chia sẻ với các bạn thêm một hiệu ứng làm menu bằng CSS3 giúp bạn bổ sung thêm nhiều lựa chọn cho việc thiết kế menu cho web của mình. Các bạn có thể xem demo bài viết tại đây và làm theo từng bước sau :

Bước 1 : HTML
Như thường lệ , chúng ta sẽ bắt đầu tạo ra menu bằng các phần tử html

<div>
<ul id="nav">
<li>
<a href="#">Parent link #1</a>
<a href="#">Sub #11</a>
<a href="#">Sub #12</a>
<a href="#">Sub #13</a>
<a href="#">Sub #14</a>
</li>
<li>
<a href="#">Parent link #2</a>
<a href="#">Sub #21</a>
<a href="#">Sub #22</a>
<a href="#">Sub #23</a>
<a href="#">Sub #24</a>
</li>
<li>
<a href="#">Parent link #3</a>
<a href="#">Sub #31</a>
<a href="#">Sub #32</a>
<a href="#">Sub #33</a>
<a href="#">Sub #34</a>
</li>
<li>
<a href="#">Parent link #4</a>
<a href="#">Sub #41</a>
<a href="#">Sub #42</a>
<a href="#">Sub #43</a>
<a href="#">Sub #44</a>
</li>
</ul>

</div>

Bước 2 : CSS

Sau đây là css types cho menu của chúng ta

ul#nav {
border: 1px solid #454545;
display: block;
height: 400px;
margin: 0;
padding: 15px;
awidth: 160px;

-moz-border-radius: 9px;
-ms-border-radius: 9px;
-webkit-border-radius: 9px;
-o-border-radius: 9px;
border-radius: 9px;

background: -moz-linear-gradient(#f1f7ff, #d9e1ec);
background: -ms-linear-gradient(#f1f7ff, #d9e1ec);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f1f7ff), color-stop(100%, #d9e1ec));
background: -webkit-linear-gradient(#f1f7ff, #d9e1ec);
background: -o-linear-gradient(#f1f7ff, #d9e1ec);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f1f7ff', endColorstr='#d9e1ec');
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#f1f7ff', endColorstr='#d9e1ec')";
background: linear-gradient(#f1f7ff, #d9e1ec);
}

@-moz-keyframes custom_effect {
0% {
background:rgba(255, 255, 255, 0.0);
height: 60px;
}
33% {
background:rgba(255, 255, 255, 0.0);
height: 160px;
}
66% {
background:rgba(255, 255, 255, 1.0);
}
100% {
background:rgba(190, 220, 255, 0.8);
height: 135px;
}
}
@-webkit-keyframes custom_effect {
0% {
background:rgba(255, 255, 255, 0.0);
height: 60px;
}
33% {
background:rgba(255, 255, 255, 0.0);
height: 160px;
}
66% {
background:rgba(255, 255, 255, 1.0);
}
100% {
background:rgba(190, 220, 255, 0.8);
height: 135px;
}
}
ul#nav li {
-moz-border-radius: 9px;
-ms-border-radius: 9px;
-webkit-border-radius: 9px;
-o-border-radius: 9px;
border-radius: 9px;

background-color:transparent;
border: 1px solid #454545;
display: block;
height: 60px;
line-height: 60px;
margin-bottom: 15px;
overflow: hidden;
}
ul#nav li:hover {
-moz-animation-name: custom_effect;
-moz-animation-duration: 0.4s;
-moz-animation-timing-function: ease;
-moz-animation-iteration-count: 1;
-moz-animation-direction: normal;
-moz-animation-delay: 0;
-moz-animation-play-state: running;
-moz-animation-fill-mode: forwards;

-webkit-animation-name: custom_effect;
-webkit-animation-duration: 0.4s;
-webkit-animation-timing-function: ease;
-webkit-animation-iteration-count: 1;
-webkit-animation-direction: normal;
-webkit-animation-delay: 0;
-webkit-animation-play-state: running;
-webkit-animation-fill-mode: forwards;

background:rgba(190, 220, 255, 0.8);
height: 135px;
}
ul#nav a {
border-style: none;
border-awidth: 0;
color: #181818;
cursor: pointer;
float: left;
font-size: 13px;
font-weight: bold;
line-height: 30px;
margin-top: 100px;
padding-left: 18px;
text-align: left;
text-decoration: none;
text-shadow: 0 1px 1px #FFFFFF;
vertical-align: middle;

-moz-transition: all 0.1s 0.4s;
-ms-transition: all 0.1s 0.4s;
-o-transition: all 0.1s 0.4s;
-webkit-transition: all 0.1s 0.4s;
transition: all 0.1s 0.4s;
}
ul#nav a:hover {
text-decoration: underline;
}
ul#nav li a:first-child {
display: block;
float: none;
line-height: 60px;
margin-top: 0;
}
ul#nav li:hover a:first-child {
line-height: 60px;
}
ul#nav li:hover a {
margin-top: 0;
}

Mình hy vọng các bạn sẽ thấy thích và sử dụng menu dạng này cho website của mình. Chúc các bạn thành công !

Tags: css tips css3 menu thiet ke web thu thuat css

Chuyên Mục: Css

Bài viết được đăng bởi webmaster

0