十天學(xué)會(huì)web標(biāo)準(zhǔn)div+CSS HTML列表,包含以下內(nèi)容和知識(shí)點(diǎn):
一、ul無序和ol有序列表 二、改變項(xiàng)目符號(hào)樣式或用圖片定義項(xiàng)目符號(hào) 三、橫向圖文列表 四、浮動(dòng)后父容器高度自適應(yīng) 五、IE6的雙倍邊距bug
一、ul無序和ol有序列表
無序列表是web標(biāo)準(zhǔn)布局中最常用的樣式,代碼如下:
<div id="layout">
<ul>
<li><a title="第五天 超鏈接偽類" href="/div_css/906.shtml" target="_blank">第五天 超鏈接偽類</a></li>
<li><a title="第四天 縱向?qū)Ш讲藛? href="/div_css/905.shtml" target="_blank">第四天 縱向?qū)Ш讲藛?lt;/a></li>
<li><a title="第三天 二列和三列布局" href="/div_css/904.shtml" target="_blank">第三天 二列和三列布局</a></li>
<li><a title="第二天 一列布局" href="/div_css/903.shtml" target="_blank">第二天 一列布局</a></li>
<li><a title="第一天 XHTML CSS基礎(chǔ)知識(shí)" href="/div_css/902.shtml" target="_blank">第一天 XHTML CSS基礎(chǔ)知識(shí)</a></li>
</ul>
</div>
這就是有無序列表,是以u(píng)l包含li的形式,默認(rèn)每行前的符號(hào)是圓點(diǎn),可以通過樣式表改為無、方塊,空心圓等。有序列表是以ol包含li的形式,是以數(shù)字為項(xiàng)目符號(hào)的,無序列表也可以用css定義顯示成有序列表,代碼及顯示效果如下:
<div id="layout">
<ol>
<li><a title="第五天 超鏈接偽類" href="/div_css/906.shtml" target="_blank">第五天 超鏈接偽類</a></li>
<li><a title="第四天 縱向?qū)Ш讲藛? href="/div_css/905.shtml" target="_blank">第四天 縱向?qū)Ш讲藛?lt;/a></li>
<li><a title="第三天 二列和三列布局" href="/div_css/904.shtml" target="_blank">第三天 二列和三列布局</a></li>
<li><a title="第二天 一列布局" href="/div_css/903.shtml" target="_blank">第二天 一列布局</a></li>
<li><a title="第一天 XHTML CSS基礎(chǔ)知識(shí)" href="/div_css/902.shtml" target="_blank">第一天 XHTML CSS基礎(chǔ)知識(shí)</a></li>
</ol>
</div>
二、改變項(xiàng)目符號(hào)樣式或用圖片定義項(xiàng)目符號(hào)
剛才說了項(xiàng)目符號(hào)默認(rèn)是圓點(diǎn),可以通過樣式表改為其它形式,下面實(shí)際操作一下:
從樣式表編輯器中可以看到,有好多種形式,包括改為ol默認(rèn)那樣以數(shù)字有序列表顯示。另外項(xiàng)目符號(hào)還可以以圖像形式,如下圖:
這種形式對(duì)圖像控制不是很靈活,所以實(shí)際應(yīng)用當(dāng)中一般用背景圖片來實(shí)現(xiàn),在上例基礎(chǔ)上將項(xiàng)目符號(hào)設(shè)置為 list-style: none;,然后
代碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<style type="text/css">
#layout ul { list-style: none; }
#layout ul li { background: url(/upload/2010-08/17/icon.gif) no-repeat 0px 4px; padding-left: 20px; }
</style>
</head>
<body>
<div id="layout">
<ul>
<li><a title="第五天 超鏈接偽類" href="/div_css/906.shtml" target="_blank">第五天 超鏈接偽類</a></li>
<li><a title="第四天 縱向?qū)Ш讲藛? href="/div_css/905.shtml" target="_blank">第四天 縱向?qū)Ш讲藛?lt;/a></li>
<li><a title="第三天 二列和三列布局" href="/div_css/904.shtml" target="_blank">第三天 二列和三列布局</a></li>
<li><a title="第二天 一列布局" href="/div_css/903.shtml" target="_blank">第二天 一列布局</a></li>
<li><a title="第一天 XHTML CSS基礎(chǔ)知識(shí)" href="/div_css/902.shtml" target="_blank">第一天 XHTML CSS基礎(chǔ)知識(shí)</a></li>
</ul>
</div>
</body>
</html>
三、 橫向圖文列表
橫向圖文列表是在上一步的基礎(chǔ)上增加圖片并讓列表橫向排列,最終實(shí)現(xiàn)效果如下:
先插入如下的html代碼,插入過程就不再截圖了,如果不會(huì)的話請(qǐng)學(xué)習(xí)前邊章節(jié)
<div id="layout">
<ul>
<li><a href="#"><img src="images/pic.gif" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="images/pic.gif" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="images/pic.gif" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="images/pic.gif" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="images/pic.gif" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="images/pic.gif" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="images/pic.gif" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="images/pic.gif" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="images/pic.gif" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="images/pic.gif" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="images/pic.gif" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="images/pic.gif" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="images/pic.gif" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="images/pic.gif" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="images/pic.gif" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="images/pic.gif" width="68" height="54" />三亞</a></li>
</ul>
</div>
接下來添加css樣式,這里用到一個(gè)很重要的css屬性:float,這個(gè)屬性在第三天的教程當(dāng)中已詳細(xì)講解過,這里不太贅述。先添加如下全局樣式:
body { margin:0 auto; font-size:12px; font-family:Verdana; line-height:1.5;}
ul,dl,dt,dd,h1,h2,h3,h4,h5,h6,form { padding:0; margin:0;}
ul { list-style:none;}
img { border:0px;}
a { color:#05a; text-decoration:none;}
a:hover { color:#f00;}
然后讓每個(gè)li元素浮動(dòng)起來,這樣就實(shí)現(xiàn)了橫向排列
根據(jù)上節(jié)課的內(nèi)容,把a(bǔ)轉(zhuǎn)換為塊級(jí)元素后可以設(shè)置寬高并增大點(diǎn)擊區(qū)域
下面設(shè)置a下圖片的樣式
為了獲得更好的交互效果,這里增加鼠標(biāo)劃過時(shí)的樣式,注意這里選擇器寫法,如果前些章節(jié)你都弄懂了,這個(gè)應(yīng)該不難理解。
代碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<style type="text/css">
body { margin:0 auto; font-size:12px; font-family:Verdana; line-height:1.5;}
ul,dl,dt,dd,h1,h2,h3,h4,h5,h6,form { padding:0; margin:0;}
ul { list-style:none;}
img { border:0px;}
a { color:#05a; text-decoration:none;}
a:hover { color:#f00;}
#layout ul li { width:72px; float:left; margin:20px 0 0px 20px; display:inline; text-align:center;}
#layout ul li a { display:block;}
#layout ul li a img { padding:1px; border:1px solid #e1e1e1; margin-bottom:3px;}
#layout ul li a:hover img { padding:0px; border:2px solid #f98510;}
</style>
</head>
<body>
<div id="layout">
<ul>
<li><a href="#"><img src="/upload/2010-08/17/pic.jpg" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="/upload/2010-08/17/pic.jpg" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="/upload/2010-08/17/pic.jpg" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="/upload/2010-08/17/pic.jpg" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="/upload/2010-08/17/pic.jpg" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="/upload/2010-08/17/pic.jpg" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="/upload/2010-08/17/pic.jpg" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="/upload/2010-08/17/pic.jpg" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="/upload/2010-08/17/pic.jpg" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="/upload/2010-08/17/pic.jpg" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="/upload/2010-08/17/pic.jpg" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="/upload/2010-08/17/pic.jpg" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="/upload/2010-08/17/pic.jpg" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="/upload/2010-08/17/pic.jpg" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="/upload/2010-08/17/pic.jpg" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="/upload/2010-08/17/pic.jpg" width="68" height="54" />三亞</a></li>
</ul>
</div>
</body>
</html>
四、 浮動(dòng)后父容器高度自適應(yīng)
當(dāng)一個(gè)容器內(nèi)元素都浮動(dòng)后,它將高度將不會(huì)隨著內(nèi)部元素高度的增加而增加,所以造成內(nèi)容元素的顯示超出了容器。為了便于查看效果,把剛才實(shí)例中的#layout增加一個(gè)邊框和內(nèi)邊距:
#layout { width:400px; border:2px solid #ccc; padding:2px;}
看到?jīng)],它沒有被內(nèi)容元素給撐高,要解決這個(gè)問題,需要使用以下樣式
overflow:auto; zoom:1;
overflow:auto;是讓高度自適應(yīng), zoom:1;是為了兼容IE6而寫(此樣式不能通過W3C驗(yàn)證)。
這就是所謂的css hack,之前講解3px bug時(shí)忘記說css hack是個(gè)什么東東了,現(xiàn)在補(bǔ)充一下:
由于不同的瀏覽器,比如IE 6,IE 7,IE8,Mozilla Firefox等,對(duì)CSS的解析認(rèn)識(shí)不一樣,因此會(huì)導(dǎo)致生成的頁面效果不一樣,得不到我們所需要的頁面效果。這個(gè)時(shí)候我們就需要針對(duì)不同的瀏覽器去寫不同的CSS,讓它能夠同時(shí)兼容不同的瀏覽器,能在不同的瀏覽器中也能得到我們想要的頁面效果。 這個(gè)針對(duì)不同的瀏覽器寫不同的CSS code的過程,就叫CSS hack。這里的overflow:auto; zoom:1;就是所謂的css hack,這種形式是應(yīng)用我們常用的代碼來解決不兼容問題,也會(huì)用到添加一些特殊符號(hào)的形式,它本身沒有意義,只是針對(duì)不同瀏覽器是否對(duì)它識(shí)別來實(shí)現(xiàn)的,具體用到的進(jìn)修再講。
五、IE6的雙倍邊距bug
這又是IE6一個(gè)著名的bug,也是我們經(jīng)常遇到的。如上例,當(dāng)浮動(dòng)后設(shè)置左側(cè)外邊距時(shí)后,最左側(cè)將顯示為雙倍邊距,比如設(shè)置為20,而在IE6下卻顯示40px,解決這個(gè)問題只需應(yīng)用一個(gè)樣式,大家記住就可以了
display:inline;
增加以上樣式后,在IE6下和其它瀏覽器下顯示效果就一樣了。
代碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<style type="text/css">
body { margin:0 auto; font-size:12px; font-family:Verdana; line-height:1.5;}
ul,dl,dt,dd,h1,h2,h3,h4,h5,h6,form { padding:0; margin:0;}
ul { list-style:none;}
img { border:0px;}
a { color:#05a; text-decoration:none;}
a:hover { color:#f00;}
#layout { width:390px; border:2px solid #ccc; padding-bottom:20px; overflow:auto; zoom:1;}
#layout ul li { width:72px; float:left; margin:20px 0 0px 20px; display:inline; text-align:center;}
#layout ul li a { display:block;}
#layout ul li a img { padding:1px; border:1px solid #e1e1e1; margin-bottom:3px; display:block;}
#layout ul li a:hover img { padding:0px; border:2px solid #f98510;}
</style>
</head>
<body>
<div id="layout">
<ul>
<li><a href="#"><img src="/upload/2010-08/17/pic.jpg" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="/upload/2010-08/17/pic.jpg" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="/upload/2010-08/17/pic.jpg" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="/upload/2010-08/17/pic.jpg" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="/upload/2010-08/17/pic.jpg" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="/upload/2010-08/17/pic.jpg" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="/upload/2010-08/17/pic.jpg" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="/upload/2010-08/17/pic.jpg" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="/upload/2010-08/17/pic.jpg" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="/upload/2010-08/17/pic.jpg" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="/upload/2010-08/17/pic.jpg" width="68" height="54" />三亞</a></li>
<li><a href="#"><img src="/upload/2010-08/17/pic.jpg" width="68" height="54" />三亞</a></li>
</ul>
</div>
</body>
</html>
文章出處:標(biāo)準(zhǔn)之路 編輯:楊雨晨思
轉(zhuǎn)載請(qǐng)保留原文地址: http://www.saitell.cn/show-338.html