- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) > web開(kāi)發(fā) >
- css3與html5實(shí)現響應式導航菜單效果
本篇內容介紹了“css3與html5實(shí)現響應式導航菜單效果”的有關(guān)知識,在實(shí)際案例的操作過(guò)程中,不少人都會(huì )遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學(xué)有所成!
此方法可以應用到有特別多的鏈接菜單項目中,特別在移動(dòng)項目中,它可以將所有菜單轉換成一個(gè)按鈕式的下拉菜單。
HTML
示例中有一個(gè)導航菜單的html結構,元素<nav>用來(lái)定位導航菜單,.current表示當前活動(dòng)的導航項。
代碼如下:
<ul>
<li class="current"><a href="#">首頁(yè)</a></li>
<li><a href="#">客戶(hù)服務(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相對定位,我們在.nav li中使用display: inline-block代替float:left,這樣一來(lái)我們可以使用text-align 來(lái)對nav菜單進(jìn)行左中右對齊設置。
代碼如下:
.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對菜單進(jìn)行右對齊和居中對齊。
/* right nav */
.nav.right ul {
text-align: right;
}
/* center nav */
.nav.center ul {
text-align: center;
}
接下來(lái)我們來(lái)做響應式設計,我們使用CSS3的media query來(lái)實(shí)現。當瀏覽器窗口寬度小于600px時(shí),我們把<nav>設置成relative相對定位,把<ul>設置成absolute絕對定位,并且display:none隱藏所有li元素,這個(gè)時(shí)候導航菜單變成一個(gè)固定大小的按鈕。當鼠標滑向nav元素時(shí),菜單下拉展開(kāi),設置所有li的樣式display: block,具體請看代碼:
代碼如下:
@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;
}
}
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系站長(cháng)郵箱:ts@56dr.com進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。
Copyright ? 2009-2021 56dr.com. All Rights Reserved. 特網(wǎng)科技 版權所有 珠海市特網(wǎng)科技有限公司 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2 建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站