摘要:需求當(dāng)鼠標(biāo)到按鈕上時(shí),出現(xiàn)下拉菜單導(dǎo)航條。設(shè)置是,默認(rèn)寬度為內(nèi)容寬度,則鼠標(biāo)只會(huì)在到按鈕區(qū)域時(shí)才會(huì)展開下拉菜單以上是我的一些想法以及實(shí)現(xiàn),如有錯(cuò)誤之處,歡迎各位前端大神留言評(píng)論拍磚。
前言:本題是網(wǎng)易云課堂的前端微專業(yè)《頁面制作》課程的作業(yè)題,當(dāng)時(shí)對(duì)題意理解錯(cuò)誤沒有實(shí)現(xiàn)題目要求,成了心中永遠(yuǎn)的痛,所謂念念不忘必有回響,在學(xué)校圖書館花了幾個(gè)小時(shí)做出來并對(duì)相關(guān)知識(shí)點(diǎn)進(jìn)行了總結(jié),寫了這篇博文。好,進(jìn)入正題。
1.需求:當(dāng)鼠標(biāo)hover到按鈕上時(shí),出現(xiàn)下拉菜單導(dǎo)航條。
2.HTML結(jié)構(gòu)
3.設(shè)置樣式
li, li a { text-decoration: none; list-style-type: none; font-family: "宋體"; font-size: 12px; color: #000; }
(2)設(shè)置按鈕的邊框等,此時(shí)我設(shè)置的是外層標(biāo)簽中標(biāo)簽的樣式,此時(shí)將內(nèi)層標(biāo)簽設(shè)置成塊級(jí)block,這樣可以設(shè)置寬高,并且后面有用(后面再說)。
.btn1 { display: block; border: 1px solid #ffffd; width: 50px; height: 28px; text-align: center; line-height: 28px; }
(3)將下拉菜單隱藏設(shè)置成不可見
ul { margin-top: 1px; position: absolute; /*設(shè)置絕對(duì)定位*/ left: -999em; /*設(shè)置隱藏*/ padding: 0; /*離它的父元素的邊界為0,所以可以位于父元素
(4)為下拉菜單項(xiàng)添加樣式
ul li a { display: inline-block; /*菜單項(xiàng)寬度未知,設(shè)置inline-block寬度為內(nèi)容寬度*/ border-top: 1px solid #ffffd; border-left: 1px solid #ffffd; /*這方法很笨,千萬別學(xué)我*/ border-right: 1px solid #ffffd; height: 30px; padding: 0 10px; line-height: 30px; }
(5)不能忘了最后一個(gè)
.last { border-bottom: 1px solid #ffffd; }
(6)設(shè)置鼠標(biāo)hover時(shí)出現(xiàn)下拉菜單
.btn:hover ul { left: auto; /*默認(rèn)ul的padding為0,位于按鈕正下方*/ }
(7)設(shè)置hover時(shí)改變背景顏色
ul li a:hover { background-color: #ffffd; }
(8)此時(shí)會(huì)有一個(gè)小bug,鼠標(biāo)hover到按鈕整一行時(shí)都會(huì)出現(xiàn)下拉菜單,因?yàn)榇藭r(shí)最外層的標(biāo)簽是塊級(jí)元素,塊級(jí)元素沒有設(shè)置寬度默認(rèn)的寬度是父元素寬度,而它的父元素是body,第(6)步寫的是hover整個(gè)外層標(biāo)簽,所以會(huì)出現(xiàn)這種情況。
解決辦法:可以在父元素設(shè)置inline-block,子元素設(shè)置block,當(dāng)子元素內(nèi)容超出時(shí),父元素寬度根據(jù)內(nèi)容變化,所以,可以將按鈕hover區(qū)域控制按鈕邊框之內(nèi)。
.btn{ display: inline-block; /*設(shè)置btn是inline-block, 默認(rèn)寬度為內(nèi)容寬度,則鼠標(biāo)只會(huì)在hover到按鈕區(qū)域時(shí)才會(huì)展開下拉菜單*/ }
以上是我的一些想法以及實(shí)現(xiàn),如有錯(cuò)誤之處,歡迎各位前端大神留言評(píng)論拍磚。如果你有更好的做法也可以和我交流,我的代碼寫的有很多不足之處,希望多和各位交流提高,謝謝!!!
以下是完整代碼:
純css實(shí)現(xiàn)下拉菜單
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/111297.html
摘要:需求當(dāng)鼠標(biāo)到按鈕上時(shí),出現(xiàn)下拉菜單導(dǎo)航條。設(shè)置是,默認(rèn)寬度為內(nèi)容寬度,則鼠標(biāo)只會(huì)在到按鈕區(qū)域時(shí)才會(huì)展開下拉菜單以上是我的一些想法以及實(shí)現(xiàn),如有錯(cuò)誤之處,歡迎各位前端大神留言評(píng)論拍磚。 前言:本題是網(wǎng)易云課堂的前端微專業(yè)《頁面制作》課程的作業(yè)題,當(dāng)時(shí)對(duì)題意理解錯(cuò)誤沒有實(shí)現(xiàn)題目要求,成了心中永遠(yuǎn)的痛,所謂念念不忘必有回響,在學(xué)校圖書館花了幾個(gè)小時(shí)做出來并對(duì)相關(guān)知識(shí)點(diǎn)進(jìn)行了總結(jié),寫了這篇博文...
摘要:店鋪裝修端基礎(chǔ)頁首頁裝修頁面編輯菜單模塊顯示設(shè)置,粘貼如下導(dǎo)航條背景色首頁店鋪動(dòng)態(tài)背景色微軟雅黑黑體首頁店鋪動(dòng)態(tài)右邊線首頁店鋪動(dòng)態(tài)文字顏色下拉菜單圖標(biāo)店鋪裝修-PC端-基礎(chǔ)頁-首頁-裝修頁面:編輯“菜單”模塊-顯示設(shè)置,粘貼如下CSS: /* 導(dǎo)航條背景色*/ .skin-box-bd .menu-list{background: none repeat scrol...
摘要:接著只要在中使用就能搞定自適應(yīng)。代碼如下標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題在上述點(diǎn)功能中,可以用變量解決,比如實(shí)現(xiàn)了寬度,高度圓點(diǎn)大小直徑的控件。 未完待續(xù) 背景 如今css3越來越發(fā)達(dá),focus-within等屬性也已經(jīng)開始在Chrome得到支持。如果有出色的css功底,一點(diǎn)點(diǎn)ps技能,你也能用css3配合原生html標(biāo)簽寫出優(yōu)秀的框架。通過對(duì)css3的實(shí)踐,我發(fā)現(xiàn)自定義原生控件并不是什么難事,...
摘要:接著只要在中使用就能搞定自適應(yīng)。代碼如下標(biāo)題標(biāo)題標(biāo)題標(biāo)題標(biāo)題在上述點(diǎn)功能中,可以用變量解決,比如實(shí)現(xiàn)了寬度,高度圓點(diǎn)大小直徑的控件。 未完待續(xù) 背景 如今css3越來越發(fā)達(dá),focus-within等屬性也已經(jīng)開始在Chrome得到支持。如果有出色的css功底,一點(diǎn)點(diǎn)ps技能,你也能用css3配合原生html標(biāo)簽寫出優(yōu)秀的框架。通過對(duì)css3的實(shí)踐,我發(fā)現(xiàn)自定義原生控件并不是什么難事,...
閱讀 1551·2021-11-25 09:43
閱讀 2332·2019-08-30 15:55
閱讀 1465·2019-08-30 13:08
閱讀 2666·2019-08-29 10:59
閱讀 810·2019-08-29 10:54
閱讀 1550·2019-08-26 18:26
閱讀 2545·2019-08-26 13:44
閱讀 2651·2019-08-23 18:36