css3與html5實(shí)現(xiàn)響應(yīng)式導(dǎo)航菜單(導(dǎo)航欄)效果分享

此方法可以應(yīng)用到有特別多的鏈接菜單項(xiàng)目中,特別在移動(dòng)項(xiàng)目中,它可以將所有菜單轉(zhuǎn)換成一個(gè)按鈕式的下拉菜單。
HTML
示例中有一個(gè)導(dǎo)航菜單的html結(jié)構(gòu),元素<nav>用來定位導(dǎo)航菜單,.current表示當(dāng)前活動(dòng)的導(dǎo)航項(xiàng)。
<ul>
<li class="current"><a href="#">首頁</a></li>
<li><a href="#">客戶服務(wù)</a></li>
<li><a href="#">產(chǎn)品展示</a></li>
<li><a href="#">經(jīng)典案例</a></li>
<li><a href="#">聯(lián)系我們</a></li>
</ul>
CSS
首先我們要給菜單nav相對(duì)定位,我們在.nav li中使用display: inline-block代替float:left,這樣一來我們可以使用text-align 來對(duì)nav菜單進(jìn)行左中右對(duì)齊設(shè)置。
.nav {
position: relative;
margin: 20px 0;
}
.nav ul {
margin: 0;
padding: 0;
}
.nav li {
margin: 0 5px 10px 0;
padding: 0;
list-style: none;
display: inline-block;
}
.nav a {
padding: 3px 12px;
text-decoration: none;
color: #999;
line-height: 100%;
}
.nav a:hover {
color: #d0d0d0;
}
.nav .current a {
background: #999;
color: #fff;
border-radius: 5px;
}
使用text-align對(duì)菜單進(jìn)行右對(duì)齊和居中對(duì)齊。
/* right nav */
.nav.right ul {
text-align: right;
}
/* center nav */
.nav.center ul {
text-align: center;
}
接下來我們來做響應(yīng)式設(shè)計(jì),我們使用CSS3的media query來實(shí)現(xiàn)。當(dāng)瀏覽器窗口寬度小于600px時(shí),我們把<nav>設(shè)置成relative相對(duì)定位,把<ul>設(shè)置成absolute絕對(duì)定位,并且display:none隱藏所有l(wèi)i元素,這個(gè)時(shí)候?qū)Ш讲藛巫兂梢粋€(gè)固定大小的按鈕。當(dāng)鼠標(biāo)滑向nav元素時(shí),菜單下拉展開,設(shè)置所有l(wèi)i的樣式display: block,具體請(qǐng)看代碼:
@media screen and (max-width: 600px) {
.nav {
position: relative;
min-height: 40px;
}
.nav ul {
width: 180px;
padding: 5px 0;
position: absolute;
top: 0;
left: 0;
border: solid 1px #aaa;
background: #fff url(images/menu.png) no-repeat 10px 11px;
border-radius: 5px;
box-shadow: 0 1px 2px rgba(0,0,0,.3);
}
.nav li {
display: none; /* hide all items */
margin: 0;
}
.nav .current {
display: block; /* show only currentitem */
}
.nav a {
display: block;
padding: 5px 5px 5px 32px;
text-align: left;
}
.nav .current a {
background: none;
color: #666;
}
/* on nav hover */
.nav ul:hover {
background-image: none;
}
.nav ul:hover li {
display: block;
margin: 0 0 5px;
}
.nav ul:hover .current {
background: url(images/check.png) no-repeat 10px 7px;
}
/* right nav */
.nav.right ul {
left: auto;
right: 0;
}
/* center nav */
.nav.center ul {
left: 50%;
margin-left: -90px;
}
}
相關(guān)文章
- 本篇文章給大家分享基于html和CSS3制作簡單側(cè)邊導(dǎo)航欄,效果簡單大方,需要的朋友可以從參考下2016-02-25
- 本篇文章給大家分享基于html和CSS3制作酷炫的導(dǎo)航欄,效果非常美觀,需要的朋友可以從參考下2015-09-23
純css實(shí)現(xiàn)的下拉導(dǎo)航欄附html結(jié)構(gòu)及css樣式
下拉導(dǎo)航欄想必大家并不陌生吧,在之前或許都是使用js或jquey之類的腳本來實(shí)現(xiàn)的,而如今,使用純css也可以實(shí)現(xiàn)了,下面是成功制作的示例,大家可以參考下2014-03-26CSS3的一個(gè)簡單導(dǎo)航欄實(shí)現(xiàn)
這篇文章主要介紹了CSS3的一個(gè)簡單導(dǎo)航欄實(shí)現(xiàn),無需用到JavaScript,文章最后附有demo,需要的朋友可以參考下2015-08-03CSS教程高級(jí)應(yīng)用 2個(gè)純CSS面包屑導(dǎo)航欄實(shí)現(xiàn)代碼
這篇文章主要為大家介紹了兩個(gè)純CSS 面包屑導(dǎo)航欄實(shí)現(xiàn)代碼,內(nèi)容比較簡單,不會(huì)的朋友可以進(jìn)來看一下,其中HTML代碼實(shí)現(xiàn)非常簡單,需要的朋友可以參考下2014-10-11html+css 實(shí)現(xiàn)簡易導(dǎo)航欄功能
這篇文章主要介紹了基于html+css 實(shí)現(xiàn)簡易導(dǎo)航欄功能,主要就是css(級(jí)聯(lián)樣式表)對(duì)html的內(nèi)容做格式化。具體內(nèi)容詳情大家跟隨小編一起通過本文學(xué)習(xí)吧2021-04-07