網頁制作Webjx文章簡介:談到標準HTML結構,有人可能會說,嗯,用div標簽,里面再多套些li,最后用css來個float也就能排成這樣的結構了。其實真正標準的結構并不是說一定要用div來布局,而是要盡量使用語義化的HTML標簽。在HTML標簽的定義中div與span其實是兩個沒有語義的標簽,table則有數據表
直入正題,現在有這么一個表格:
請實現鼠標移到交易內容區域時,高亮當前行背景的效果。
1、建立一分標準的HTML文檔結構談到標準HTML結構,有人可能會說,嗯,用div標簽,里面再多套些li,最后用css來個float也就能排成這樣的結構了。其實真正標準的結構并不是說一定要用div來布局,而是要盡量使用語義化的HTML標簽。在HTML標簽的定義中div與span其實是兩個沒有語義的標簽,table則有數據表的語義。
所以這里我們來建一張符合XHTML 1.0 Strict標準的文檔結構試試。以下為該表結構的HTML代碼:
交易類型交易號收款方金額管理
上一頁 2 3 4 下一頁
即時到賬20081009001
其中需要注意的是:
再給它們加上樣式:
.tableList {
border:2px #666 solid;
}
.tableList td, .tableList th {
border:1px #666 solid;
padding:5px 25px;
}
.tableList tfoot td {
text-align:right;
}
.fastpayIcon {
background:transparent url() no-repeat scroll 5px 5px;
}
現在我們要實現表格行滑過高亮效果,怎么辦?是的,用JS來幾個onmouseover和onmouseout就搞定了。不過,如果要符合WEB標準的話,其實我們更應該使用CSS的hover偽類來實現。我們在<style />部分再加上這條CSS規則試試:
.tableList tbody tr {
background:#fff;
}
.tableList tbody tr:hover {
background:#eee;
}
這樣大部分標準瀏覽器都能夠實現這種效果了,接下來再考慮兼容性問題,為IE6寫上一段JS來實現這個效果吧
<!--[endif]-->
這里要注意的是:
使用IE條件注釋<!–[if lt IE 7]>來確保這段JS只會在IE7以下版本的IE瀏覽器中運行,因為對于大部分瀏覽器來說這段JS代碼是畫蛇添足的。
3、代碼兼容性測試接下來我們來在各個瀏覽器中測試下這段代碼的兼容性。測試各個版本IE兼容性建議使用IETester,然后是FF2/FF3。
測試發現,在IE6和IE7中第一個有背景圖片的單元格無法實現該效果,IE8和FF則沒有此問題。經過分析原因在于
.fastpayIcon {
background:transparent url() no-repeat scroll 5px 5px;
}
該段CSS定義等價于:
.fastpayIcon{
background-attachment: scroll;
background-color: transparent;
background-image: url();
background-repeat: no-repeat;
background-position: 5px 5px;
}
因為其中定義了background-color: transparent;雖然定義了透明,但是調試中發現IE對于td的background-color支持有BUG,當設置為transparent時,其實實現的是#fff的效果。解決方法就是刪掉對td的background-color定義,或者將屬性值設置為 inherit,這樣td就會從它的父元素tr中繼承這一屬性,從而實現效果。
新聞熱點
疑難解答