即使不寫任何 CSS 語法,只寫基本的 HTML tag,瀏覽器還是會針對一些 HTML tag 產生樣式效果。有些預設效果方便好用,我能接受,也都直接使用,例如:

<b>:粗體字
<i>:斜體字
<u>:底線字

但有些預設效果我不喜歡,例如:

<h1> ~ <h6>:預設各種字體大小,但不是我喜歡的大小。
<table> <tr> <td>:表格的 td 和 td 之間預設就有間距,我不喜歡。
<th>:預設粗體字,我能接受,但預設置中對齊我就不喜歡。

在學習 CSS 之初,我就對一些預設樣式很反感,尤其是在設定各種間距或尺寸時,表格預設間距、頁面邊界預設間距、預設行距行高、預設段落間距... 等等都會造成混淆,因為自己的設定還要加上預設的設定才是最後呈現的樣貌,真是亂七八糟。

在網路上查閱 CSS 相關資訊時,發現有些人跟我一樣不喜歡這些預設的樣式。有個歐美人還整理好一堆摧毀這些預設設定的語法,我就把它拿來用,真是謝謝他,雖然這些都不難,但自己寫也要花時間,撿現成的最方便。

所以,爾後我在寫 CSS 時,開頭一定是以下這一大段設定,反正就是先把一堆預設設定都拿掉就對了。如果後續想用這些 tag,再一個一個自己寫設定,完全自己掌控。


/******************************************************************************/
/* collapse default configuration from browser                                */
/******************************************************************************/

body, p, div, span, th, td, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, blockquote {
    margin: 0px;
    padding: 0px;
    }

th, h1, h2, h3, h4, h5, h6, code, cite, dfn, var {
    font-size: 100%;
    font-style: normal;
    font-weight: normal;
    }

ol, ul {
    list-style: none;
    }

table {
    border-collapse: collapse;
    border-spacing: 0px;
    }

td, th {
    vertical-align: top;
    }

fieldset, img {
    border: 0px;
    }

caption, th {
    text-align: left;
    }