在創建table表格時,當心「神秘人」改了你的代碼,而你卻不知道!

在創建table表格時,當心「神秘人」改了你的代碼,而你卻不知道!

來自專欄 GeekKnow

有些細節問題你不是親自碰到可能真的一頭霧水。下面就講一個「眼見不為實」的例子,應該對你的開發有些小的啟示。

為了便於大家可以直接複製粘貼進行測試,上代碼:

在HBuilder里創建一個表格table,並簡單設置樣式:

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>表格</title>

<style>

table{

border:1px solid;/*邊框*/

border-spacing:0;/*去掉單元格的間隙*/

border-collapse: collapse;/*合併單元格的邊框*/

}

td{

border:1px solid;

}

table>tr{

background-color: red;

}

</style>

</head>

<body>

<table>

<tr>

<td>1</td>

<td>2</td>

<td>3</td>

</tr>

</table>

</body>

</html>

在瀏覽器的效果是這樣的:

為什麼為tr設置的red背景顏色沒有效果呢?明明已經設置了啊?

難道table與tr不是父子關係嗎?明明就是父子啊!

告訴你,其實你被騙了! 「你的代碼被神秘人改動了,但你還被蒙在鼓裡」打開firebug:

是不是很驚訝?!怎麼多了一個<tbody></tbody>?這樣一來,table肯定就不是tr的父親,而是tr的祖先,自然用table>tr{}來為td設置背景顏色肯定是失敗的啊!

換個正確的方式試一下呢:

看一下瀏覽器效果:

看來已經搞定了!!!

總結:在創建table表格時,如果在編輯器里你的代碼沒有手動編寫<tbody>,那麼,瀏覽器在渲染頁面的時候會自動添加一個<tbody>然後將tr放入tbody中,所以下次遇到這種類似的情況一定要注意,其實最好的方式就是把tbody手動寫上,以防後續它搗蛋!

推薦閱讀:

BFC到底是神馬?
有哪些好的 HTML 和 CSS 入門教程可以推薦給新手?
[譯] 50 行 CSS 代碼擼一個陰陽八卦的 Loading 動效
css學習記錄
CSS選擇器、層疊、繼承的那些事

TAG:前端開發 | CSS | HTMLCSS |