首先聲明:
這只是探討一種CSS模擬表格對(duì)角線的用法,實(shí)際在工作中可能覺(jué)得這樣做有點(diǎn)小題大作,這不是本主題討論的重點(diǎn)。如果對(duì)此深以為然的朋友,請(qǐng)一笑過(guò)之。。。
有時(shí)在插入文檔時(shí),要用到表格對(duì)角線,常見(jiàn)的作法是用圖片的方式來(lái)處理,還有就是用vml來(lái)畫對(duì)角線,能不能用html+css方式來(lái)實(shí)現(xiàn)呢?答案是肯定的,下面我們來(lái)摸擬一個(gè)表格對(duì)角線。
原理:
用邊框線來(lái)摸擬斜線,我們知道,如果將一個(gè)DIV的邊框線設(shè)置得足夠?qū)挷⒍x了不同的顏色時(shí),其相鄰的兩條邊框線交界處就是斜線。知道了這個(gè)原理,我們就可以用border-left和border-top來(lái)模擬出斜線的效果。
我們先創(chuàng)建一個(gè)結(jié)構(gòu):
<div class="out"> <b>類別</b> <em>姓名</em> </div>
我們用<div class="out">作為對(duì)角線的容器,我們來(lái)設(shè)置斜線樣式,關(guān)鍵代碼如下:
.out{ border-top:40px #D6D3D6 solid;/*上邊框?qū)挾鹊扔诒砀竦谝恍行懈?/ width:0px;/*讓容器寬度為0*/ height:0px;/*讓容器高度為0*/ border-left:80px #BDBABD solid;/*左邊框?qū)挾鹊扔诒砀竦谝恍械谝桓駥挾?/ position:relative;/*讓里面的兩個(gè)子容器絕對(duì)定位*/ }
<b>和<em>兩個(gè)標(biāo)簽來(lái)設(shè)置兩個(gè)分類,分別將它們?cè)O(shè)置為塊狀結(jié)構(gòu)display:block;清除其默認(rèn)的字體樣式font-style:normal;因其父容器設(shè)置了相對(duì)定位,所以設(shè)置其為絕對(duì)定位,這樣可以將它偏移到你想指定的位置了。
b{font-style:normal;display:block;position:absolute;top:-40px;left:-40px;width:35px;} em{font-style:normal;display:block;position:absolute;top:-25px;left:-70px;width:55x;}
這樣一個(gè)斜線對(duì)角線就模擬出來(lái)了。知道了原理,你可以變成很多有趣的東西出來(lái),祝你好運(yùn)!
這種對(duì)角線模擬法也有缺點(diǎn):
- 寬高度必須是已知的
- 寬高的長(zhǎng)度不能差得太大,你可以試試將寬度拉得比高度長(zhǎng)好幾倍,看看效果。(給你們留點(diǎn)作業(yè)練習(xí)練習(xí))
- 還有就是斜線條不能設(shè)置顏色。
另:以上代碼只測(cè)試了ie6和ff3,其它瀏覽器未做測(cè)試,請(qǐng)朋友們測(cè)試一下。
下面是完整的代碼:
運(yùn)行代碼框
[Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運(yùn)行]
經(jīng)典論壇交流: http://bbs.blueidea.com/thread-2908643-1-1.html
本文鏈接:http://www.95time.cn/tech/web/2009/6381.asp
出處:藍(lán)色理想
責(zé)任編輯:bluehearts
◎進(jìn)入論壇網(wǎng)頁(yè)制作、WEB標(biāo)準(zhǔn)化版塊參加討論,我還想發(fā)表評(píng)論。
|