html預設的樣式

xiaoyuyyun發表於2013-11-02
各種HTML標籤:h1-h6,p,ul,ol,dl…即使沒有給他們定義樣式屬性值,他們在瀏覽器中顯示時,也會具有各種樣式屬性(主要是字型大小和各種間距)。這是因為瀏覽器和CSS給這些標籤設定了預設的樣式屬性值,各種版本的瀏覽器和CSS可能略有差別,下面列舉的是Firefox 1.5 和CSS 2.1(IE)設定的一些常見標籤的預設樣式屬性值。


HTML樣式
html, address,blockquote,body, dd, div,dl, dt, fieldset, form,frame, frameset,h1, h2, h3, h4,h5, h6, noframes,ol, p, ul, center,dir, hr, menu, pre { display: block }/*以上列表元素預設狀態下一塊狀顯示,未顯示的將以內聯元素顯示,該列表針對HTML4版本,部分元素在XHTML1中將廢棄*/
li { display: list-item }/*預設以列表顯示*/
head { display: none }/*預設不顯示*/
table { display: table }/*預設為表格顯示*/
tr { display: table-row }/*預設為表格行顯示*/
thead { display: table-header-group }/*預設為表格頭部分組顯示*/
tbody { display: table-row-group }/*預設為表格行分組顯示*/
tfoot { display: table-footer-group }/*預設為表格底部分組顯示*/
col { display: table-column }/*預設為表格列顯示*/
colgroup { display: table-column-group }/*預設為表格列分組顯示*/
td, th { display: table-cell; }/*預設為單元格顯示*/
caption { display: table-caption }/*預設為表格標題顯示*/
th { font-weight: bolder; text-align: center }/*預設為表格標題顯示,呈現加粗居中狀態*/
caption { text-align: center }/*預設為表格標題顯示,呈現居中狀態*/
body { margin: 8px; line-height: 1.12 }


h1 { font-size: 2em; margin: .67em 0 }
h2 { font-size: 1.5em; margin: .75em 0 }
h3 { font-size: 1.17em; margin: .83em 0 }
h4, p, blockquote, ul, fieldset, form, ol, dl, dir, menu { margin: 1.12em 0 }
h5 { font-size: .83em; margin: 1.5em 0 }
h6 { font-size: .75em; margin: 1.67em 0 }
h1, h2, h3, h4, h5, h6, b,strong { font-weight: bolder }


blockquote { margin-left: 40px; margin-right: 40px }
i, cite, em,var, address { font-style: italic }
pre, tt, code, kbd, samp { font-family: monospace }
pre { white-space: pre }
button, textarea, input, object, select { display:inline-block; }
big { font-size: 1.17em }
small, sub, sup { font-size: .83em }
sub { vertical-align: sub }/*定義sub元素預設為下標顯示*/
sup { vertical-align: super }/*定義sub元素預設為上標顯示*/
table { border-spacing: 2px; }
thead, tbody, tfoot { vertical-align: middle }/*定義表頭、主體表、表腳元素預設為垂直對齊*/
td, th { vertical-align: inherit }/*定義單元格、列標題預設為垂直對齊預設為繼承*/
s, strike, del { text-decoration: line-through }/*定義這些元素預設為刪除線顯示*/
hr { border: 1px inset }/*定義分割線預設為1px寬的3D凹邊效果*/
ol, ul, dir, menu, dd { margin-left: 40px }
ol { list-style-type: decimal }
ol ul, ul ol, ul ul, ol ol { margin-top: 0; margin-bottom: 0 }
u, ins { text-decoration: underline }
br:before { content: "A" }/*定義換行元素的偽物件內容樣式*/
:before, :after { white-space: pre-line }/*定義偽物件空格字元的預設樣式*/
center { text-align: center }
abbr, acronym { font-variant: small-caps; letter-spacing: 0.1em }
:link, :visited { text-decoration: underline }
:focus { outline: thin dotted invert }
 /* Begin bidirectionality settings (do not change) */
BDO[DIR="ltr"] { direction: ltr; unicode-bidi: bidi-override }/*定義BDO元素當其屬性為DIR="ltr"時的預設文字讀寫顯示順序*/
BDO[DIR="rtl"] { direction: rtl; unicode-bidi: bidi-override }/*定義BDO元素當其屬性為DIR="rtl"時的預設文字讀寫顯示順序*/
*[DIR="ltr"] { direction: ltr; unicode-bidi: embed }/*定義任何元素當其屬性為DIR="ltr"時的預設文字讀寫顯示順序*/
*[DIR="rtl"] { direction: rtl; unicode-bidi: embed }/*定義任何元素當其屬性為DIR="rtl"時的預設文字讀寫顯示順序*/
@media print { /*定義標題和列表預設的列印樣式*/
    h1 { page-break-before: always }
    h1, h2, h3,    h4, h5, h6 { page-break-after: avoid }
    ul, ol, dl { page-break-before: avoid }
}




瀏覽器預設樣式


1.頁邊距
IE預設為10px,通過body的margin屬性設定
FF預設為8px,通過body的padding屬性設定
要清除頁邊距一定要清除這兩個屬性值
body {
    margin:0;
    padding:0;
}


2.段間距
IE預設為19px,通過p的margin-top屬性設定
FF預設為1.12em,通過p的margin-bottom屬性設
p預設為塊狀顯示,要清除段間距,一般可以設定
p {
    margin-top:0;
    margin-bottom:0;
}


3.標題樣式
h1~h6預設加粗顯示:font-weight:bold;。
預設大小請參上表
還有是這樣的寫的
h1 {font-size:xx-large;}
h2 {font-size:x-large;}
h3 {font-size:large;}
h4 {font-size:medium;}
h5 {font-size:small;}
h6 {font-size:x-small;}
個大瀏覽器預設字型大小為16px,即等於medium,h1~h6元素預設以塊狀顯示字型顯示為粗體,
要清除標題樣式,一般可以設定
hx {
    font-weight:normal;
    font-size:value;
}


4.列表樣式
IE預設為40px,通過ul、ol的margin屬性設定
FF預設為40px,通過ul、ol的padding屬性設定
dl無縮排,但起內部的說明元素dd預設縮排40px,而名稱元素dt沒有縮排。
要清除列表樣式,一般可以設定
ul, ol, dd {
    list-style-type:none;/*清楚列表樣式符*/
    margin-left:0;/*清楚IE左縮排*/
    padding-left:0;/*清楚非IE左縮排*/
}


5.元素居中
IE預設為text-align:center;
FF預設為margin-left:auto;margin-right:auto;


6.超連結樣式
a 樣式預設帶有下劃線,顯示顏色為藍色,被訪問過的超連結變紫色,要清除連結樣式,一般可以設定
a {
    text-decoration:none;
    color:#colorname;
}


7 滑鼠樣式
IE預設為cursor:hand;
FF預設為cursor:pointer;。該宣告在IE中也有效


8 圖片連結樣式
IE預設為紫色2px的邊框線
FF預設為藍色2px的邊框線
要清除圖片連結樣式,一般可以設定
img {
    border:0;
}


em
相對長度單位。相對於當前物件內文字的字型尺寸。
如當前對行內文字的字型尺寸未被人為設定,則相對於瀏覽器的預設字型尺寸。


ex
相對長度單位。相對於字元“x”的高度。此高度通常為字型尺寸的一半。
如當前對行內文字的字型尺寸未被人為設定,則相對於瀏覽器的預設字型尺寸。


px
畫素(Pixel)。相對長度單位。
畫素是相對於顯示器螢幕解析度而言的。譬如,WONDOWS的使用者所使用的解析度一般是96畫素/英寸。而MAC的使用者所使用的解析度一般是72畫素/英寸。


pt
點(Point)。絕對長度單位。


em vs px


em指字型高,任意瀏覽器的預設字型高都是16px。所以未經調整的瀏覽器都符合: 1em=16px。那麼12px=0.75em, 10px=0.625em。為了簡化font-size的換算,需要在css中的body選擇器中宣告Font-size=62.5%,這就使em值變為16px*62.5%=10px, 這樣12px=1.2em, 10px=1em, 也就是說只需要將你的原來的px數值除以10,然後換上em作為單位就行了。


em有如下特點:
1. em的值並不是固定的;
2. em會繼承父級元素的字型大小。 


長度單位優化方法:


1. body選擇器中宣告Font-size=62.5%;


2. 將你的原來的px數值除以10,然後換上em作為單位;


簡單吧,如果只需要以上兩步就能解決問題的話,可能就沒人用px了。經過以上兩步,你會發現你的網站字型大得出乎想象。因為em的值不固定,又會繼承父級元素的大小,你可能會在content這個div裡把字型大小設為1.2em, 也就是12px。然後你又把選擇器p的字型大小也設為1.2em,但如果p屬於content的子級的話,p的字型大小就不是12px,而是1.2em=1.2 * 12px=14.4px。這是因為content的字型大小被設為1.2em,這個em值繼承其父級元素body的大小,也就是16px * 62.5% * 1.2=12px, 而p作為其子級,em則繼承content的字型高,也就是12px。所以p的1.2em就不再是12px,而是14.4px。


3. 重新計算那些被放大的字型的em數值。避免字型大小的重複宣告,也就是避免以上提到的1.2 * 1.2= 1.44的現象。比如說你在#content中宣告瞭字型大小為1.2em,那麼在宣告p的字型大小時就只能是1em,而不是1.2em, 因為此em非彼em,它因繼承#content的字型高而變為了1em=12px。


4.以上方法得到的12px(1.2em)大小的漢字在IE中並不等於直接用12px定義的字型大小,而是稍大一點。解決方法:只需在body選擇器中把62.5%換成63%就能正常顯示了。

相關文章