亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > CSS > 正文

寫出牛逼的CSS代碼13條建議你會哪幾條

2024-07-11 09:07:54
字體:
來源:轉載
供稿:網友

1. 使用Reset但并非全局Reset

不同瀏覽器元素的默認屬性有所不同,使用Reset可重置瀏覽器元素的一些默認屬性,以達到瀏覽器的兼容。但需要注意的是,請不要使用全局Reset:

*{ margin:0; padding:0; }*{ margin:0; padding:0; }

這不僅僅因為它是緩慢和低效率的方法,而且還會導致一些不必要的元素也重置了外邊距和內邊距。在此建議參考YUI Reset和Eric Meyer的做法。我跟Eric Meyer的觀點相同,Reset并不是一成不變的,具體還需要根據項目的不同需求做適當的修改,以達到瀏覽器的兼容和操作上的便利性。我使用的Reset如下:

/** 清除內外邊距 **/ body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, /* structural elements 結構元素 */ 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; } /** 設置默認字體 **/ 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; }/** 清除內外邊距 **/ body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, /* structural elements 結構元素 */ 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; } /** 設置默認字體 **/ 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. 良好的命名習慣

無疑亂七八糟或者無語義命名的代碼,誰看了都會抓狂。就像這樣的代碼:

.aaabb{margin:2px;color:red;}.aaabb{margin:2px;color:red;}

我想即使是初學者,也不至于會在實際項目中如此命名一個class,但有沒有想過這樣的代碼同樣是很有問題的:

<h1>My name is <span>Wiky</span></h1><h1>My name is <span>Wiky</span></h1>

問題在于如果你需要把所有原本紅色的字體改成藍色,那修改后就樣式就會變成:

.red{color:bule;}.red{color:bule;}

這樣的命名就會很讓人費解,同樣的命名為.leftBar的側邊欄如果需要修改成右側邊欄也會很麻煩。所以,請不要使用元素的特性(顏色,位置,大小等)來命名一個class或id,您可以選擇意義的命名如:#navigation{…},.sidebar{…},.postwrap{…}

這樣,無論你如何修改定義這些class或id的樣式,都不影響它跟HTML元素間的聯系。

另外還有一種情況,一些固定的樣式,定義后就不會修改的了,那你命名時就不用擔憂剛剛說的那種情況,如

.alignleft{float:left;margin-right:20px;} .alignright{float:right;text-align:right;margin-left:20px;} .clear{clear:both;text-indent:-9999px;}.alignleft{float:left;margin-right:20px;} .alignright{float:right;text-align:right;margin-left:20px;} .clear{clear:both;text-indent:-9999px;}

那么對于這樣一個段落

<p class="alignleft">我是一個段落!</p><p class="alignleft">我是一個段落!</p>

如果需要把這個段落由原先的左對齊修改為右對齊,那么只需要修改它的className就為alignright就可以了。

3. 代碼縮寫

CSS代碼縮寫可以提高你寫代碼的速度,精簡你的代碼量。在CSS里面有不少可以縮寫的屬性,包括margin,padding,border,font,background和顏色值等,如果您學會了代碼縮寫,原本這樣的代碼:

li{ font-family:Arial, Helvetica, sans-serif; font-size: 1.2em; line-height: 1.4em; padding-top:5px; padding-bottom:10px; padding-left:5px; }li{ font-family:Arial, Helvetica, sans-serif; font-size: 1.2em; line-height: 1.4em; padding-top:5px; padding-bottom:10px; padding-left:5px; }

就可以縮寫為:

li{ font: 1.2em/1.4em Arial, Helvetica, sans-serif; padding:5px 0 10px 5px; }li{ font: 1.2em/1.4em Arial, Helvetica, sans-serif; padding:5px 0 10px 5px; }

如果您想更了解這些屬性要怎么縮寫,可以參考《常用CSS縮寫語法總結》或者下載CSS-Shorthand-Cheat-Sheet.pdf 。

4. 利用CSS繼承

如果頁面中父元素的多個子元素使用相同的樣式,那最好把他們相同的樣式定義在其父元素上,讓它們繼承這些CSS樣式。這樣你可以很好的維護你的代碼,并且還可以減少代碼量。那么本來這樣的代碼:
 

#container li{ font-family:Georgia, serif; } #container p{ font-family:Georgia, serif; } #container h1{font-family:Georgia, serif; }#container li{ font-family:Georgia, serif; } #container p{ font-family:Georgia, serif; } #container h1{font-family:Georgia, serif; }

就可以簡寫成:

#container{ font-family:Georgia, serif; }#container{ font-family:Georgia, serif; }

5. 使用多重選擇器

你可以合并多個CSS選擇器為一個,如果他們有共同的樣式的話。這樣做不但代碼簡潔且可為你節省時間和空間。如:

h1{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; } h2{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; } h3{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; }h1{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; } h2{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; } h3{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; }

可以合并為

h1, h2, h3{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; }h1, h2, h3{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; }

6. 適當的代碼注釋

代碼注釋可以讓別人更容易讀懂你的代碼,且合理的組織代碼注釋,可使得結構更加清晰。你可以選擇做的樣式表的開始添加目錄:
 

/*------------------------------------  Reset  Header  Content  SideBar  Footer ----------------------------------- *//*------------------------------------  Reset  Header  Content  SideBar  Footer ----------------------------------- */

如此你代碼的結構就一目了然,你可以容易的查找和修改代碼。

而對于代碼的主內容,也應適當的加以劃分,甚至在有必要的地方在對代碼加以注釋說明,這樣也有利于團隊開發:
 

/*** Header ***/ #header{ height:145px; position:relative; } #header h1{ width:324px; margin:45px 0 0 20px; float:left; height:72px;}/*** Content ***/ #content{ background:#fff; width:650px; float:left; min-height:600px; overflow:hidden;} #content h1{color:#F00}/* 設置字體顏色 */ #content .posts{ overflow:hidden; } #content .recent{ margin-bottom:20px; border-bottom:1px solid #f3f3f3; position:relative; overflow:hidden; }/*** Footer ***/ #footer{ clear:both; padding:50px 5px 0; overflow:hidden;} #footer h4{ color:#b99d7f; font-family:Arial, Helvetica, sans-serif; font-size:1.1em; }/*** Header ***/ #header{ height:145px; position:relative; } #header h1{ width:324px; margin:45px 0 0 20px; float:left; height:72px;}/*** Content ***/ #content{ background:#fff; width:650px; float:left; min-height:600px; overflow:hidden;} #content h1{color:#F00}/* 設置字體顏色 */ #content .posts{ overflow:hidden; } #content .recent{ margin-bottom:20px; border-bottom:1px solid #f3f3f3; position:relative; overflow:hidden; }/*** Footer ***/ #footer{ clear:both; padding:50px 5px 0; overflow:hidden;} #footer h4{ color:#b99d7f; font-family:Arial, Helvetica, sans-serif; font-size:1.1em; }

7. 給你的CSS代碼排序

如果代碼中的屬性都能按照字母排序,那查找修改的時候就能更加快速:

/*** 樣式屬性按字母排序 ***/ div{ background-color:#3399cc; color:#666; font:1.2em/1.4em Arial, Helvetica, sans-serif; height:300px; margin:10px 5px; padding:5px 0 10px 5px; width:30%; z-index:10; }/*** 樣式屬性按字母排序 ***/ div{ background-color:#3399cc; color:#666; font:1.2em/1.4em Arial, Helvetica, sans-serif; height:300px; margin:10px 5px; padding:5px 0 10px 5px; width:30%; z-index:10; }

8. 保持CSS的可讀性

書寫可讀的CSS將會使得更容易查找和修改樣式。對于以下兩種情況,哪種可讀性更高,我想不言而明。

/*** 每個樣式屬性寫一行 ***/ div{ background-color:#3399cc; color:#666; font: 1.2em/1.4em Arial, Helvetica, sans-serif; height:300px; margin:10px 5px; padding:5px 0 10px 5px; width:30%; z-index:10; }/*** 所有的樣式屬性寫在同一行 ***/ div{ background-color:#3399cc; color:#666; font: 1.2em/1.4em Arial, Helvetica, sans-serif; height:300px; margin:10px 5px; padding:5px 0 10px 5px; width:30%; z-index:10; }/*** 每個樣式屬性寫一行 ***/ div{ background-color:#3399cc; color:#666; font: 1.2em/1.4em Arial, Helvetica, sans-serif; height:300px; margin:10px 5px; padding:5px 0 10px 5px; width:30%; z-index:10; }/*** 所有的樣式屬性寫在同一行 ***/ div{ background-color:#3399cc; color:#666; font: 1.2em/1.4em Arial, Helvetica, sans-serif; height:300px; margin:10px 5px; padding:5px 0 10px 5px; width:30%; z-index:10; }

當對于一些樣式屬性較少的選擇器,我會寫到一行:

/*** 選擇器屬性少的寫在同一行 ***/ div{ background-color:#3399cc; color:#666;}/*** 選擇器屬性少的寫在同一行 ***/ div{ background-color:#3399cc; color:#666;}

對于這個規則并非硬性規定,但無論您采用哪種寫法,我的建議是始終保持代碼一致。屬性多的分行寫,屬性少于3個可以寫一行。

9. 選擇更優的樣式屬性值

CSS中有些屬性采用不同的屬性值,雖然達到的效果差不多,當性能上卻存在著差異,如

區別在于border:0把border設為0px,雖然在頁面上看不見,但按border默認值理解,瀏覽器依然對border-width/border-color進行了渲染,即已經占用了內存值。

而border:none把border設為“none”即沒有,瀏覽器解析“none”時將不作出渲染動作,即不會消耗內存值。所以建議使用border:none;

同樣的,display:none隱藏對象瀏覽器不作渲染,不占用內存。而visibility:hidden則會。

10. 使用代替@import

首先,@import不屬于XHTML標簽,也不是Web標準的一部分,它對于較早期的瀏覽器兼容也不高,并且對于網站的性能有某些負面的影響。具體可以參考《高性能網站設計:不要使用@import》。所以,請避免使用@import

11. 使用外部樣式表

這個原則始終是一個很好的設計實踐。不單可以更易于維護修改,更重要的是使用外部文件可以提高頁面速度,因為CSS文件都能在瀏覽器中產生緩存。內置在HTML文檔中的CSS則會在每次請求中隨HTML文檔重新下載。所以,在實際應用中,沒有必要把CSS代碼內置在HTML文檔中:

<style type="text/css" >    #container{ .. }    #sidebar{ .. }</style><style type="text/css" >    #container{ .. }    #sidebar{ .. }</style>

<li style="font-family:Arial, helvetica, sans-serif; color:#666; " ><li style="font-family:Arial, helvetica, sans-serif; color:#666; " >

而是使用<link>導入外部樣式表:

<link rel="stylesheet" type="text/css" href="css/styles.css" /><link rel="stylesheet" type="text/css" href="css/styles.css" />

12. 避免使用CSS表達式(Expression)

CSS表達式是動態設置CSS屬性的強大(但危險)方法。Internet Explorer從第5個版本開始支持CSS表達式。下面的例子中,使用CSS表達式可以實現隔一個小時切換一次背景顏色:

background-color: expression( (new Date()).getHours()%2 ? "#B8D4FF" : "#F08A00" );background-color: expression( (new Date()).getHours()%2 ? "#B8D4FF" : "#F08A00" );

如上所示,expression中使用了JavaScript表達式。CSS屬性根據JavaScript表達式的計算結果來設置。

表達式的問題就在于它的計算頻率要比我們想象的多。不僅僅是在頁面顯示和縮放時,就是在頁面滾動、乃至移動鼠標時都會要重新計算一次。給CSS表達式增加一個計數器可以跟蹤表達式的計算頻率。在頁面中隨便移動鼠標都可以輕松達到10000次以上的計算量。

如果必須使用CSS表達式,一定要記住它們要計算成千上萬次并且可能會對你頁面的性能產生影響。所以,在非不得已,請避免使用CSS表達式。

13. 代碼壓縮

當你決定把網站項目部署到網絡上,那你就要考慮對CSS進行壓縮,出去注釋和空格,以使得網頁加載得更快。壓縮您的代碼,可以采用一些工具,如YUI Compressor

利用它可精簡CSS代碼,減少文件大小,以獲得更高的加載速度。


注:相關教程知識閱讀請移步到CSS教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲2020天天堂在线观看| 亚洲精品中文字幕av| 国产成人一区二区三区小说| 国产精品成人在线| 欧美日本黄视频| 一本一本久久a久久精品牛牛影视| 日韩精品视频免费专区在线播放| 日韩美女视频中文字幕| 亚洲电影免费观看高清完整版在线观看| 日韩av在线网址| 66m—66摸成人免费视频| 亚洲国产精品热久久| 91精品国产自产在线观看永久| 欧美大全免费观看电视剧大泉洋| 日本中文字幕不卡免费| 日本道色综合久久影院| 亚洲毛片一区二区| 欧美日韩激情美女| 久久久久久久久久久亚洲| 精品国产户外野外| 国产一区二区三区三区在线观看| 国产精品专区h在线观看| 91精品国产乱码久久久久久久久| 日韩欧美一区二区三区久久| 日韩av不卡在线| 欧美激情视频一区| 成人黄色免费在线观看| 欧美一级bbbbb性bbbb喷潮片| 欧美电影免费播放| 国产成人精品久久二区二区| 欧美在线免费观看| 国产精品扒开腿爽爽爽视频| 精品久久久久久久久久ntr影视| 国产精品久久久久7777婷婷| 狠狠久久亚洲欧美专区| 性欧美办公室18xxxxhd| 国产在线播放不卡| 国产精品激情av电影在线观看| 亚洲人成在线播放| 欧美激情日韩图片| 成人黄在线观看| 国产精品99一区| 亚洲护士老师的毛茸茸最新章节| 九九九久久国产免费| 日韩精品极品视频| 97在线视频精品| 午夜剧场成人观在线视频免费观看| 中文字幕日韩在线视频| 亚洲综合小说区| 亚洲国产欧美精品| 国产一区二区精品丝袜| 亚洲精品黄网在线观看| 国产精品中文字幕在线| 成人中文字幕+乱码+中文字幕| 中文字幕欧美日韩| 欧美日韩免费一区| 欧美在线视频一区二区| 国内久久久精品| 日韩精品中文字幕在线播放| 亚洲精品美女久久久久| 国产精品海角社区在线观看| 91av在线国产| 欧美亚洲另类制服自拍| 在线精品国产欧美| 国产精品视频资源| 欧美日韩亚洲激情| 成人免费网站在线| 久久精品国产精品亚洲| 国产精品入口尤物| 日韩激情av在线播放| 一区二区国产精品视频| 国产一区二区三区在线视频| 日韩精品在线观看视频| 亚洲激情成人网| 亚洲肉体裸体xxxx137| 欧美午夜宅男影院在线观看| 91精品国产乱码久久久久久蜜臀| 亚洲精品国产欧美| 欧美一区二区三区四区在线| 69视频在线免费观看| 久久艹在线视频| 最近2019中文免费高清视频观看www99| 亚洲成人av片在线观看| 中文国产成人精品| 亚洲精品成人久久久| 欧美激情第99页| 久久成人综合视频| 亚洲伦理中文字幕| 久久天天躁狠狠躁夜夜躁2014| 日韩精品视频在线| 国产视频在线一区二区| 亚洲欧美国产精品| 亚洲人av在线影院| 一区二区三区国产在线观看| 久久精品国产一区二区电影| 精品福利在线看| 97热精品视频官网| 亚洲偷熟乱区亚洲香蕉av| 亚洲三级黄色在线观看| 伊人久久久久久久久久久久久| 中文字幕亚洲天堂| 欧美精品成人91久久久久久久| 91精品久久久久久久久| 欧美激情欧美狂野欧美精品| 亚洲精品久久久一区二区三区| 国产精品久久久久久久久粉嫩av| 亚洲 日韩 国产第一| 久久久之久亚州精品露出| 精品福利在线看| 91精品久久久久久久久中文字幕| 久久久久日韩精品久久久男男| 国产精品久久久久福利| 日本精品视频网站| 一区二区三区久久精品| 久久久亚洲欧洲日产国码aⅴ| 91中文字幕一区| 最近的2019中文字幕免费一页| 国产精品嫩草视频| 精品久久久久久久大神国产| 久久视频在线免费观看| 色多多国产成人永久免费网站| 一本色道久久88综合日韩精品| 亚洲欧美另类国产| 亚洲欧美日韩另类| 日韩视频免费中文字幕| 视频在线一区二区| 91精品国产综合久久久久久蜜臀| 欧美精品电影免费在线观看| 国产精品综合不卡av| 黄色一区二区三区| 日韩在线国产精品| 国产日韩在线看片| 欧美日韩国产区| 91久久精品国产91久久| 日韩国产精品亚洲а∨天堂免| 欧美在线视频一区| 日韩欧美国产激情| 美女久久久久久久| 欧美人与性动交| 久久久99免费视频| 国产欧美日韩精品在线观看| 久热国产精品视频| 久久久噜噜噜久久| 国产精品99久久久久久久久| 国产不卡视频在线| 日本精品在线视频| 欧美激情精品久久久久久黑人| 日韩美女视频免费看| 精品中文字幕视频| 久久久精品一区二区| 97视频国产在线| 亚洲欧美日韩区| 福利一区福利二区微拍刺激| 日韩在线视频网站| 国产欧美日韩精品在线观看| 国产精品美女主播在线观看纯欲| 精品露脸国产偷人在视频| 欧美成人精品在线视频| 欧美孕妇毛茸茸xxxx| 91夜夜揉人人捏人人添红杏| 国产一区视频在线播放| 久久天天躁夜夜躁狠狠躁2022| 中文字幕亚洲综合| 色哟哟亚洲精品一区二区|