table表格,這個(gè)東西大家肯定都不陌生,代碼中我們時(shí)常都能碰到,那么給table加一個(gè)斜線的表頭有時(shí)是很有必要的,但是到底該怎么實(shí)現(xiàn)這種效果呢?
我總結(jié)了以下幾種方法:
1、最最最簡(jiǎn)單的做法
直接去找公司的UI,讓她做一張圖片,作為背景圖片放到這里,然后撐滿就可以了。是不是很簡(jiǎn)單!??!
2、相當(dāng)簡(jiǎn)單的做法
其實(shí)了解css3的朋友,一看到這個(gè)效果,腦子中瞬間出現(xiàn)的就是transform這個(gè)屬性,是的,這個(gè)確實(shí)可以,也很簡(jiǎn)單,就是有一個(gè)問題要注意瀏覽器的兼容性問題,大家心里要要時(shí)刻保持著危機(jī)意識(shí)(IE還存在呢),如果你們公司的要求是只兼容chrome,那么,這個(gè)方法很適合你。
3、十分簡(jiǎn)單的做法
.biaoTou {
border-top: 200px #199fff solid; /*上邊框?qū)挾鹊扔诒砀竦谝恍行懈?/
border-left: 200px #ff8838 solid; /*左邊框?qū)挾鹊扔诒砀竦谝恍械谝桓駥挾?/
}
<td width="200">
<div class="biaoTou">
</div>
</td>
這種方法也很簡(jiǎn)單,按照上面的格式寫下來就好了。但是這種寫法有個(gè)明顯的問題:這種其實(shí)就是利用兩種顏色的不同的border劃分表頭的斜線的,斜線兩邊的顏色不能相同,如果是做一些促銷活動(dòng)之類的表格時(shí)可以用這種方法。但是如果我們需要斜線兩邊的顏色一樣時(shí),這種做法是不適用的。慎用。
4、很簡(jiǎn)單的做法
這種效果其實(shí)還可以用css3的另一個(gè)新的標(biāo)簽canvas。將其作為畫布畫一條斜線是一種十分簡(jiǎn)單的做法,就不詳細(xì)解釋了,但是也有一個(gè)問題,就是老生常談的兼容性問題了,如果只是兼容chrome,你想怎么辦都行(為什么我們公司一直要考慮可惡的IE,我也想只做兼容谷歌的項(xiàng)目?。?/p>
5、不簡(jiǎn)單的做法
那就是js做法了
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<TITLE>斜線表頭</TITLE>
<meta http-equiv="content-type" content="charset=gbk">
</HEAD>
<body leftmargin=0 topmargin=0>
<br>
<div height="300">header</div>
<hr>
<TABLE border=0 bgcolor="000000" cellspacing="1" width=400
style="margin-left: 100px;">
<TR bgcolor="FFFFFF">
<TD width="111" height="52"><table width="100%" height="100%"
border="0" cellpadding="0" cellspacing="0">
<tr>
<td id="td1"></td>
<td>成績(jī)</td>
</tr>
<tr>
<td>姓名</td>
<td id="td2"></td>
</tr>
</table></TD>
<TD width="81">數(shù)學(xué)</TD>
<TD width="96">英語(yǔ)</TD>
<TD width="99">C語(yǔ)言</TD>
</TR>
<TR bgcolor="FFFFFF">
<TD>張三</TD>
<TD>55</TD>
<TD>66</TD>
<TD>77</TD>
</TR>
<TR bgcolor="FFFFFF">
<TD>李四</TD>
<TD>99</TD>
<TD>68</TD>
<TD>71</TD>
</TR>
<TR bgcolor="FFFFFF">
<TD>王五</TD>
<TD>33</TD>
<TD>44</TD>
<TD>55</TD>
</TR>
</TABLE>
<script type="text/javascript">
function a(x, y, color) {
document
.write("<img border='0' style='position: absolute; left: "
+ (x)
+ "; top: "
+ (y)
+ ";background-color: "
+ color
+ "' src='px.gif' width=1 height=1>")
}
function getTop(tdobj) {
vParent = tdobj.offsetParent;
t = tdobj.offsetTop;
while (vParent.tagName.toUpperCase() != "BODY") {
t += vParent.offsetTop;
vParentvParent = vParent.offsetParent;
}
return t;
}
function getLeft(tdobj) {
vParent = tdobj.offsetParent;
t = tdobj.offsetLeft;
while (vParent.tagName.toUpperCase() != "BODY") {
t += vParent.offsetLeft;
vParentvParent = vParent.offsetParent;
}
return t;
}
function line(x1, y1, x2, y2, color) {
var tmp
if (x1 >= x2) {
tmp = x1;
x1 = x2;
x2 = tmp;
tmp = y1;
y1 = y2;
y2 = tmp;
}
for ( var i = x1; i <= x2; i++) {
x = i;
y = (y2 - y1) / (x2 - x1) * (x - x1) + y1;
a(x, y, color);
}
}
//line(1,1,100,100,"000000");
line(getLeft(td1), getTop(td1), getLeft(td1) + td1.offsetWidth,
getTop(td1) + td1.offsetHeight, '#000000');
line(getLeft(td2), getTop(td2), getLeft(td2) + td2.offsetWidth,
getTop(td2) + td2.offsetHeight, '#000000');
</script>
</BODY>
</HTML>
好了,五種方法都說完了,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。