1. 使用Reset但并非全局Reset
不同瀏覽器元素的默認(rèn)屬性有所不同,使用Reset可重置瀏覽器元素的一些默認(rèn)屬性,以達(dá)到瀏覽器的兼容。但需要注意的是,請不要使用全局Reset:
*{ margin:0; padding:0; }
這不僅僅因?yàn)樗蔷徛偷托实姆椒ǎ疫€會導(dǎo)致一些不必要的元素也重置了外邊距和內(nèi)邊距。
在此建議參考YUI Reset和Eric Meyer的做法。我跟Eric Meyer的觀點(diǎn)相同,Reset并不是一成不變的,具體還需要根據(jù)項(xiàng)目的不同需求做適當(dāng)?shù)男薷模赃_(dá)到瀏覽器的兼容和操作上的便利性。我使用的Reset如下:
/** 清除內(nèi)外邊距 **/
body, h1, h2, h3, h4, h5, h6, hr, p,
blockquote, /* structural elements 結(jié)構(gòu)元素 */
dl, dt, dd, ul, ol, li, /* list elements 列表元素 */
pre, /* text formatting elements 文本格式元素 */
form, fieldset, legend, button, input, textarea, /* form elements 表單元素 */
th, td, /* table elements 表格元素 */
img/* img elements 圖片元素 */{
border:medium none;
margin: 0;
padding: 0;
}
/** 設(shè)置默認(rèn)字體 **/
body,button, input, select, textarea {
font: 12px/1.5 ‘宋體’,tahoma, Srial, helvetica, sans-serif;
}
h1, h2, h3, h4, h5, h6 { font-size: 100%; }
em{font-style:normal;}
/** 重置列表元素 **/
ul, ol { list-style: none; }
/** 重置超鏈接元素 **/
a { text-decoration: none; color:#333;}
a:hover { text-decoration: underline; color:#F40; }
/** 重置圖片元素 **/
img{ border:0px;}
/** 重置表格元素 **/
table { border-collapse: collapse; border-spacing: 0; }
2. 良好的命名習(xí)慣
無疑亂七八糟或者無語義命名的代碼,誰看了都會抓狂。就像這樣的代碼:
.aaabb{margin:2px;color:red;}
我想即使是初學(xué)者,也不至于會在實(shí)際項(xiàng)目中如此命名一個class,但有沒有想過這樣的代碼同樣是很有問題的
<h1>My name is <span>Wiky</span></h1>
問題在于如果你需要把所有原本紅色的字體改成藍(lán)色,那修改后就樣式就會變成:
.red{color:bule;}
這樣的命名就會很讓人費(fèi)解,同樣的命名為.leftBar的側(cè)邊欄如果需要修改成右側(cè)邊欄也會很麻煩。所以,請不要使用元素的特性(顏色,位置,大 小等)來命名一個class或id,您可以選擇意義的命名如:
#navigation{…},.sidebar{…},.postwrap{…}
這樣,無論你如何修改定義這些class或id的樣式,都不影響它跟HTML元素間的聯(lián)系。
另外還有一種情況,一些固定的樣式,定義后就不會修改的了,那你命名時就不用擔(dān)憂剛剛說的那種情況,如
.alignleft{float:left;margin-right:20px;}
.alignright{float:right;text-align:right;margin-left:20px;}
.clear{clear:both;text-indent:-9999px;}
新聞熱點(diǎn)
疑難解答
圖片精選