DIV+CSS:不用表格的菜單_html/css_WEB-ITnose
Jun 24, 2016 pm 12:29 PM 布局初步搭建起來,我開始填充里面的內(nèi)容。首先是定義logo圖片:
樣式表:#logo {MARGIN: 0px;padding:0px;WIDTH: 200px;HEIGHT:80px;}
頁面代碼:
以上代碼現(xiàn)在應(yīng)該容易理解。先在CSS定義了一個logo的層,然后在頁面中調(diào)用它。需要說明的是,為了使網(wǎng)頁有更好的易用性,web標(biāo)準(zhǔn)要求大家給所有的、屬于正式內(nèi)容的圖片,加一個alt屬性。這個alt屬性是用來說明圖片的作用(當(dāng)圖片不能顯示的時候就顯示替換文字),所以不要只寫成無意義的圖片名稱。
接下來是定義菜單。
1.不用表格的菜單(縱向)
我們先來看菜單的最終效果:
什么是網(wǎng)站標(biāo)準(zhǔn)
使用標(biāo)準(zhǔn)的好處
怎樣過渡
相關(guān)教程
工具
資源及鏈接
通常方法我們至少嵌套2層表格來實現(xiàn)這樣的菜單,間隔線采用在td中設(shè)置背景色并插入1px高的透明GIF圖片實現(xiàn);背景色的交替效果采用td的onmouseover事件實現(xiàn)。但查看本菜單的頁面代碼,你會看到只有如下幾句:
沒有用任何table,而用的是無序列
(1)首先定義了menu層的主要樣式:
#menu {
MARGIN: 15px 20px 0px 15px; /*定義層的外邊框距離*/
PADDING:15px; /*定義層的內(nèi)邊框為15px*/
BACKGROUND: #dfdfdf; /*定義背景顏色*/
COLOR: #666; /*定義字體顏色*/
BORDER:#fff 2px solid; /*定義邊框為2px白色線條*/
WIDTH:160px; /*定義內(nèi)容的寬度為160px*/
}
(2)其次定義無序列表的樣式:
#menu ul {
MARGIN: 0px;
PADDING: 0px;
BORDER: medium none; /*不顯示邊框*/
LINE-HEIGHT: normal;
LIST-STYLE-TYPE: none;
}
#menu li {BORDER-TOP: #FFF 1px solid; MARGIN: 0px;}
說明:這里用的是id選擇器的派生方法定義(參考第7天:CSS入門的介紹)了在menu層中的子元素
- 和
- 的樣式。LIST-STYLE-TYPE: none一句表示不采用無序列表的默認(rèn)樣式,即:不顯示小圓點(diǎn)(我們后面用自己的圖標(biāo)來代替小圓點(diǎn))。BORDER-TOP: #FFF 1px solid;則定義了菜單之間的1px間隔線。
(3)定義onmouseover效果
#menu li a {
PADDING:5px 0px 5px 15px;
DISPLAY: block;
FONT-WEIGHT: bold;
BACKGROUND: url(/bok/images/icon_dot_lmenu.gif) transparent no-repeat 2px 8px;
WIDTH: 100%;
COLOR: #444;
TEXT-DECORATION: none;
}
#menu li a:hover { BACKGROUND: url(/bok/images/icon_dot_lmenu2.gif) #C61C18 no-repeat 2px 8px;
COLOR: #fff; }
解釋如下:
"display:block;"表示將標(biāo)簽a當(dāng)作塊級元素來顯示,使得鏈接變成一個按鈕;
"BACKGROUND: url(/bok/images/icon_dot_lmenu.gif) transparent no-repeat 2px 8px;"這一句定義了替代li的小圓點(diǎn)的圖標(biāo)。"transparent"指背景為透明,"2px 8px"指定圖標(biāo)的位置是距左邊2px,距上邊8px。這一句也可以拆分寫成四句:"BACKGROUND-IMAGE: url(/bok/images/icon_dot_lmenu.gif); BACKGROUND-POSITION: 2px 8px; BACKGROUND-REPEAT: no-repeat; BACKGROUND-COLOR: transparent;"
"#menu li a:hover"定義了當(dāng)鼠標(biāo)移動到鏈接上以后的顏色變化和小圖標(biāo)變化。
ok,不用表格的菜單就這樣實現(xiàn)了。大家可以明顯感覺到,原來寫在HTML里的表現(xiàn)樣式全部剝離放到CSS文件里去了。頁面代碼節(jié)約了大半。通過CSS要修改菜單樣式就很簡單了。
2.不用表格的菜單(橫向)
上面是縱向的菜單,如果要顯示橫向菜單,用li也可以嗎?當(dāng)然是可以的,下面給出代碼,效果就在本頁頂部:
頁面代碼
樣式表代碼
#submenu {
MARGIN: 0px 8px 0px 8px;
PADDING: 4px 0px 0px 0px;
BORDER: #fff 1px solid;
BACKGROUND: #dfdfdf;
COLOR: #666;
HEIGHT:25px; }
#submenu ul {
CLEAR: left;
MARGIN: 0px;
PADDING:0px;
BORDER: 0px;
LIST-STYLE-TYPE: none;
TEXT-ALIGN: center;
DISPLAY:inline;
}
#submenu li {
FLOAT: left;
DISPLAY: block;
MARGIN: 0px;
PADDING: 0px;
TEXT-ALIGN: center}
#submenu li a {
DISPLAY: block;
PADDING:2px 3px 2px 3px;
BACKGROUND: url(/bok/images/icon_dot_lmenu.gif) transparent no-repeat 2px 8px;
FONT-WEIGHT: bold;
WIDTH: 100%;
COLOR: #444;
TEXT-DECORATION: none;
}
#submenu li a:hover {
BACKGROUND: url(/bok/images/icon_dot_lmenu2.gif) #C61C18 no-repeat 2px 8px;
COLOR: #fff; }
#submenu ul li#one A { WIDTH: 60px}
#submenu ul li#two A { WIDTH: 80px}
#submenu ul li#three A { WIDTH: 80px}
#submenu ul li#four A { WIDTH: 90px}
#submenu ul li#five A { WIDTH: 80px}
#submenu ul li#six A { WIDTH: 80px}
#submenu ul li#seven A { WIDTH: 60px}
#submenu ul li#eight A { WIDTH: 90px}
#submenu ul li#nine A { WIDTH: 80px}
以上代碼不逐一分析了。橫向菜單的關(guān)鍵在于:定義 - 樣式時的"FLOAT: left;"語句。另外注意UL定義中的DISPLAY:inline;一句表示將li強(qiáng)制作為內(nèi)聯(lián)對象呈遞,從對象中刪除行,通俗講就是li不換行。實現(xiàn)橫向排列。你也可以象例子中定義每個子菜單的寬度,控制菜單的間隔。好了,你也可以動手試試,用li實現(xiàn)各種各樣的菜單樣式。
Tips:如果你子菜單的寬度總和大于層的寬度,菜單會自動折行,利用這個原理可以實現(xiàn)單個無序列表的2列或者3列排版,這是原來HTML很難實現(xiàn)的。

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

HTML ?? ??? ???? ?? ??? ??? ???? ?? ?? ?? ? ???? ?? ??? ????????. 1. ????? ??? ??? ????? ?? ? ?? ?? (? : ??, ??, ???)? ?? ??? ?????. 2. JavaScript? ?? ?? ? ??? ???? ID? ?? ??? ?? ??? ??? ???? ?? ? ????. 3. CSS? ???? ???, ???, ?? ??? ? ??/?? ?? ??? ???? ???? ??? ???? ??? ??? ??????. 4. ???? ????????? : ???? ? ??? ????? ??? ???? JS ???? ???? ????? ???? ??? ???? ??? ??? ??? ???? ??? ?????. ??? ???????

HTMLHEAD? ?? ???? SEO, ?? ?? ? ???? ??? ?????. 1. ??? ??? ??? ????, ???? ???? ???? ??????. 2. OpenGraph ? Twitter ?? ??? ???? ?? ?? ??? ????? ??? ?????? ???? ??? ??? ???? ???????. 3. ?? ?? ? ??? ??? ???? ??? ??? ??? ???? ????????. 4. ?? ???, ?? ?? ? ?? ?? ?? ???? ?? ??? ??? ????? ???????.

Tolearnhtmlin2025, chooSeatUtoriorialThatthatthath and-practicewithmoderndardAndardsandegratescssandjavaScriptBasics.1.

???? ??? HTML ?? ???? ??? ??? ?????? ?? Div Flex ?? ??? ????? ???? ??? ?????? ??? ???????. ??, ?? ???? ?????? ?? CSS? ?? ? ?? ????. ?? ?? ??? ALT ??? ?? ???? ?? URL? ?????? ??? ???? ??? ?? TD? ??????????. ????? ?? ?????? ?? ??? ????? ???????.

HTML ??? ???? ????? ?? ?? ???? ??? ?? ???? ?? ???? ?? ? ? ????. 1. ??, ??? ?? ?? ??? ?? ??? ? ??? ???? ???? ? ?????. 2. ?? ???? ???? ??? ? ?? ??? ?? ? ? ????. 3. ??? ??? ??? ???? ?????? ??? ??? ? SEO ??? ??????. 4. ??? ??? ?, ??? ??? ??? ????? ??????, ???? ?? ????? ???? ??? ?? ???? ???? ???????. 5. ??? ??? ALT ??? ??? ????. 6. ??? ???? ??? ?? ??? ?? ?? ??? ?? ? ? ????. ? ? ?? ??? ???? ???? ?? ???? ???? ?? ? ???? ???? ? ??????.

??? ??? ??? HTML ?? ??? ??? ????? ?? ?? ?? ?? ???? ?? ?? ? ? ????. ?? ???? ??? ?????. 1. JavaScript? ???? ?? ?? ? ??? ???? ???? ?? ?? ??? ?? ?? ? ???? ???? ????. 2. Formspree? ?? ?? ???? ? ???? ???? ???? ???? ??? ?? ? ???? ??? ?????. 3. LocalStorage? ???? ??? ?? ??? ????? ?? ??? ?? ???? ??? ???? ? ????? ??? ??? ?? ???? ???? ????.

???, ID, ???, ??? ? ??? HTML?? ?? ????? ???? ??? ?????. ???? ??? ?? ? JavaScript ??? ?????? ?? ?? ??? ??? ??? ???? ? ?????. ID? ?? ?? ? JavaScript ???? ??? ??? ?? ?? ???? ?????. ???? ???? ??? ???? ?? ? ? ??? ?? ???? ????? ??? ???? ???? ????. ??? ??? ??? ?? ???? ???? ? ????, ?? ??? ?? ? ??? ?? ??? ?????. ??? ??? ?? ????? ???? ? ????? ???? ??? ????? ?? ?????. ??? ??? ????? ???? ?? ???? ??? ??? ???? ? ????.

Native Lazy Loading? ?? ???? ????,?? = "???"??? ??? ???? ??? ????? ? ? ????. 1. JavaScript ?? ?? ?????? ???? ??? HTML?? ?? ?????. 2. ??? ??? ? ?? ??? ???? ?? ??, ?? ??? ??? ??? ? ? ?? ???? ?????. 3. ? ?? ?? ?? ???????? ???? ???? ????. 4. ??? ??? ?, ??? ?? ???? ???? ??? ??? ?? ???????. 5. SRCSET ? ?? ??? ?? ?? ? ??? ??? ????????. 6. ??? ??? ???????. ?? ??? ??????? ???? ????. ?? ??? ?? ??? ? ??? JavaScript ???? ?? ? ? ????.
