13條Css 書寫規範

来源:http://www.cnblogs.com/shouce/archive/2016/01/04/5097744.html
-Advertisement-
Play Games

1. 不同瀏覽器元素的預設屬性有所不同,使用Reset可重置瀏覽器元素的一些預設屬性,以達到瀏覽器的相容。/** 清除內外邊距 **/body, h1, h2, h3, h4, h5, h6, hr, p, blockquote,/* structural elements 結構元素 */dl, d...


1. 不同瀏覽器元素的預設屬性有所不同,使用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; }

2. 良好的命名習慣

3. 代碼縮寫 
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; 
}

4. 利用CSS繼承 
如果頁面中父元素的多個子元素使用相同的樣式,那最好把他們相同的樣式定義在其父元素上, 
讓它們繼承這些CSS樣式。 
這樣你可以很好的維護你的代碼,並且還可以減少代碼量。那麼本來這樣的代碼: 
#container li{ font-family:Georgia, serif; } 
#container p{ font-family:Georgia, serif; } 
#container h1{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, h2, h3{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; }

6. 適當的代碼註釋

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

/*** 樣式屬性按字母排序 ***/ 
div{     
   
  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; 

9. 選擇更優的樣式屬性值 
  
CSS中有些屬性採用不同的屬性值,雖然達到的效果差不多,當性能上卻存在著差異,如 
  
區別在於border:0把border設為0px,雖然在頁面上看不見,但按border預設值理解,瀏覽器依然對border-width/border-color進行了渲染,即已經占用了記憶體值。 
  
而border:none把border設為“none”即沒有,瀏覽器解析“none”時將不作出渲染動作,即不會消耗記憶體值。所以建議使用border:none; 
  
同樣的,display:none隱藏對象瀏覽器不作渲染,不占用記憶體。而visibility:hidden則會。

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


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

12. 避免使用CSS表達式(Expression) 
  
CSS表達式是動態設置CSS屬性的強大(但危險)方法。

13. 代碼壓縮 
  
當你決定把網站項目部署到網路上,那你就要考慮對CSS進行壓縮,出去註釋和空格,以使得網頁載入得更快。壓縮您的代碼,可以採用一些工具,如YUI Compressor 
  
利用它可精簡CSS代碼,減少文件大小,以獲得更高的載入速度


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在AngularJS中module是一個核心的存在,包括了很多方面,比如controller, config, service, factory, directive, constant, 等等。在Javascript中如何實現類似module的功能呢?或者說,我們定義一個函數,如何把函數內的函數向...
  • 獲取URL帶參數的JAVASCRIPT客戶端解決方案一、正則分析法。(我較喜歡使用正則)function GetQueryString(name) {var reg = new RegExp(“(^|&)” + name + “=([^&]*)(&|$)”,”i”);var r = window.l...
  • CSS3的出現讓響應式Web設計變得簡單,CSS3提供了強大的media queries,允許你針對不同的條件設置不同的樣式,可以在不修改頁面內容的情況下,為不同設備提供不同的樣式效果。 以下是一些CSS media queries代碼片段,你可以添加在自己的項目中,讓頁面根據屏幕自適應:iPhon...
  • 1.jQuery萬年曆插件 帶農曆老皇曆功能這是一款基於jQuery的日曆插件,這款日曆插件和之前分享的日曆控制項有很大差異,它是一本萬年曆,包含了農曆已經老皇曆的功能,是一個挑好日子的工具。同時日曆還可以查看本年度的放假安排,功能非常強大。有興趣的朋友可以下載學習。線上演示源碼下載2.CSS3發光進...
  • 文章提綱 JS相關常識 JS基本概念 實踐 總結 JS相關常識 js是一種可以與HTML標記語言混合使用的腳本語言,其編寫的程式可以直接在瀏覽器中解釋執行。 一、組成 js是一種專門為網頁交互設計的腳本語言。由三部分組成:1.ECMAScript (ECMA-262定義), 提供核心語言功能2.文....
  • 預覽截圖:製作步驟:一, 標簽結構下麵代碼中使用了CSS3無首碼腳本prefixfree.js,可以省去CSS3中首碼“-moz”、“-webkit”、“-o”、“-ms”button 二, 標簽結構 三,C...
  • 由於我在項目中用jquery比較多,而且覺得jquery真的很不錯,尤其是其靈活高效的選擇器更是令人無法忘懷。那麼,今天就來寫一篇非常基礎的關於jquery選擇器的文章,路過的朋友可以收藏以作參考。1、$("*") -- 選取所有元素* 選擇器選取文檔中的每個單獨的元素,包括 html、head 和...
  • 在這篇文章里,我將分享一些JavaScript的技巧、秘訣和最佳實踐,除了少數幾個外,不管是瀏覽器的JavaScript引擎,還是伺服器端JavaScript解釋器,均適用。1、首次為變數賦值時務必使用var關鍵字變數沒有聲明而直接賦值得話,預設會作為一個新的全局變數,要儘量避免使用全局變數。2、使...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...