Web前端開發規範手冊

来源:https://www.cnblogs.com/linchonghui/archive/2018/12/30/10199071.html
-Advertisement-
Play Games

Web前端開發規範手冊(適合新手入門)持續更新,歡迎閱讀,小白自學,一起共勉!!!加油!! ...


 

 

 

 

 

 

 

 

 

 

 

 

一、規範目的

1.1  概述 ..................................................................................................................................... 1

 

二、文件規範

2.1 文件命名規則.........................................................................................................................1

2.2 文件存放位置..........................................................................................................................2

2.3 css 書寫規範..........................................................................................................................3

2.4 html書寫規範.........................................................................................................................7

2.5 JavaScript書寫規範.............................................................................................................11

2.6 圖片規範...................................................................................................................................12

2.7 註釋規範...................................................................................................................................13
2.8 css 瀏覽器相容.......................................................................................................................13

 

 

 

一、規範目的

1.1 概述

 

為提高團隊協作效率, 便於後臺人員添加功能及前端後期優化維護, 輸出高質量的文檔, 特製訂此文檔. 本規範文檔一經確認, 前端開發人員必須按本文檔規範進行前臺頁面開發. 本文檔如有不對或者不合適的地方請及時提出, 經討論決定後可以更改此文檔.

 

 

 

二、文件規範

2.1  文件命名規則

 

    文件名稱統一用小寫的英文字母、數字和下劃線的組合,其中不得包含漢字、空格和特殊字元;命名原則的指導思想一是使得你自己和工作組的每一個成員能夠方便的理解每一個文件的意義,二是當我們在文件夾中使用“按名稱排例”的命令時,同一種大類的文件能夠排列在一起,以便我們查找、修改、替換、計算負載量等等操作。

 

a.  HTML的命名原則
引文件統一使用index.htm  index.html  index.asp文件名(小寫)
各子頁命名的原則首先應該以欄目名的英語翻譯取單一單詞為名稱。例如:
關於我們 \ aboutus
信息反饋 \ feedback
\ product

如果欄目名稱多而複雜並不好以英文單詞命名,則統一使用該欄目名稱拼音或拼音的首字母表示;
每一個目錄中應該包含一個預設html 文件,文件名統一用index.htm  index.html  index.asp

b.  圖片的命名原則

圖片的名稱分為頭尾兩部分,用下劃線隔開,頭部分表示此圖片的大類性質
例如:廣告、標誌、菜單、按鈕等等。
放置在頁面頂部的廣告、裝飾圖案等長方形的圖片取名: banner
標誌性的圖片取名為: logo
在頁面上位置不固定並且帶有鏈接的小圖片我們取名為 button
在頁面上某一個位置連續出現,性質相同的鏈接欄目的圖片我們取名: menu
裝飾用的照片我們取名: pic
不帶鏈接表示標題的圖片我們取名: title
範例:banner_sohu.gif  banner_sina.gif  menu_aboutus.gif  menu_job.gif  title_news.gif  logo_police.gif   logo_national.gif   pic_people.jpg
滑鼠感應效果圖片命名規範為"圖片名+_+on/off"。
例如:menu1_on.gif  menu1_off.gif

c.  javascript的命名原則
例如:廣告條的javascript文件名為 ad.js  彈出視窗的javascript文件名為 pop.js

d.  動態語言文件命名原則
以性質_描述,描述可以有多個單詞,用“_”隔開,性質一般是該頁面得概要。
範例:register_form.asp   register_post.asp   topic_lock.asp

 

 

2.2  文件存放位置規範

 

_Root

 

 

 

cn

存放中文HTML文件

 

en

存放英文HTML文件

 

flash

存放Flash文件

 

images

存放圖片文件

 

imagestudio

存放PSD源文件

 

flashstudio

存放flash源文件

 

inc

存放include文件

 

library

存放DW庫文件

 

media

存放多媒體文件

 

project

存放工程項目資料

 

temp

存放客戶原始資料

 

js

存放JavaScript腳本

 

css

存放CSS文件

 

 

2.3  CSS 書寫規範


基本原則:

 

CSS樣式可細分為3類:自定義樣式、重新定義HTML樣式、鏈接狀態樣式。

1. 樣式為設計師自定義的新 CSS 樣式,影響被使用本樣式的區域,用於完成網頁中局部的樣式設定。樣式名 “.”+“相應樣式效果描述的單詞或縮寫”例:“ .shadow ”
文字樣式樣式名.no”+“字型大小”+“行距”+“顏色縮寫”例:“ .no12 ” .no12-24 ”

2. 義HTML樣式為設計師重新定義已有的HTML標簽樣式,影響全部的被設定標簽樣式,用於統一網頁中某一標簽的樣式定義。樣式名“HTML標簽”例:hr { border: 1px dotted #333333 }

3. 態樣式為設計師對鏈接不同狀態設定特殊樣式,影響被使用本樣式區域中的鏈接。
該樣式寫法有2種: a.nav:link    nav.a:link  第一種只能修飾<a>標簽中;第二種可以修飾所有包含有<a>標簽的其他標簽。

頁面內的樣式載入必須用鏈接方式<link rel="stylesheet" type="text/css" href="style/style.css">

 

註意細則:

 

1. 協作開發及分工: i會根據各個模塊, 同時根據頁面相似程式, 事先寫好大體框架文件, 分配給前端人員實現內部結構&表現&行為; 共用css文件base.css由i書寫, 協作開發過程中, 每個頁面請務必都要引入, 此文件包含reset及頭部底部樣式, 此文件不可隨意修改;

2. class與id的使用: id是唯一的並是父級的, class是可以重覆的並是子級的, 所以id僅使用在大的模塊上, class可用在重覆使用率高及子級中; id原則上都是由我分發框架文件時命名的, 為JavaScript預留鉤子的除外;

3. JavaScript預留鉤子的命名, 請以 js_ 起始, 比如: js_hide, js_show;

4. class與id命名: 大的框架命名比如header/footer/wrapper/left/right之類的在2中由i統一命名.其他樣式名稱由 小寫英文 & 數字 & _ 來組合命名, 如i_comment, fontred, width200; 避免使用中文拼音, 儘量使用簡易的單片語合; 總之, 命名要語義化, 簡明化.

5. 規避class與id命名(此條重要, 若有不明白請及時與i溝通):  

a, 通過從屬寫法規避, 示例見d;

b, 取父級元素id/class命名部分命名, 示例見d;

c, 重覆使用率高的命名, 請以自己代號加下劃線起始, 比如i_clear;

d, a,b兩條, 適用於在2中已建好框架的頁面, 如, 要在2中已建好框架的頁面代碼<div id="mainnav"></div>中加入新的div元素,

a命名法則: <div id="mainnav"><div class="firstnav">...</div></div>,

樣式寫法:  #mainnav  .firstnav{.......}

b命名法則: <div id="mainnav"><div class="main_firstnav">...</div></div>,
樣式寫法:  .main_firstnav{.......}

6. css屬性書寫順序, 建議遵循 佈局定位屬性-->自身屬性-->文本屬性-->其他屬性. 此條可根據自身習慣書寫, 但儘量保證同類屬性寫在一起. 屬性列舉: 佈局定位屬性主要包括: margin、padding、float(包括clear)、position(相應的 top,right,bottom,left)、display、visibility、overflow等;自身屬性主要包括: width & height & background & border; 文本屬性主要包括:font、color、text-align、text-decoration、text-indent等;其他屬性包括: list-style(列表樣式)、vertical-vlign、cursor、z-index(層疊順序) 、zoom等.我所列出的這些屬性只是最常用到的, 並不代表全部;

7. 書寫代碼前, 考慮並提高樣式重覆使用率;

8. 充分利用html自身屬性及樣式繼承原理減少代碼量, 比如:

<ul class="list"><li>這兒是標題列表<span>2010-09-15</span></ul>

定義ul.list li{position:relative}  ul.list li span{position:absolute; right:0}

即可實現日期居右顯示

9. 樣式表中中文字體名, 請務必轉碼成unicode碼, 以避免編碼錯誤時亂碼;

10. 背景圖片請儘可能使用sprite技術, 減小http請求, 考慮到多人協作開發, sprite按模塊製作;

11. 使用table標簽時(儘量避免使用table標簽), 請不要用width/ height/cellspacing/cellpadding等table屬性直接定義表現, 應儘可能的利用table自身私有屬性分離結構與表現, 如thead,tr,th,td,tbody,tfoot,colgroup,scope; (cellspaing及cellpadding的css控制方法: table{border:0;margin:0;border-collapse:collapse;} table th, table td{padding:0;} , base.css文件中我會初始化表格樣式)

12. 杜絕使用<meta http-equiv="X-UA-Compatible" content="IE=7" /> 相容ie8;

13. png圖片做圖片時, 要求圖片格式為png-8格式,若png-8實在影響圖片質量或其中有半透明效果, 請為ie6單獨定義背景:

background:none;_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=crop, src=’img/bg.png’);

14. 避免相容性屬性的使用, 比如text-shadow || css3的相關屬性;

15. 減少使用影響性能的屬性, 比如position:absolute || float ;

16. 必須為大區塊樣式添加註釋, 小區塊適量註釋;

17. 代碼縮進與格式: 建議單行書寫, 可根據自身習慣, 後期優化i會統一處理;

 

 

命名規則:

頭:header

  內容:content/container

  尾:footer

  導航:nav

  側欄:sidebar

  欄目:column

  頁面外圍控制整體佈局寬度:wrapper

  左右中:left right center

  登錄條:loginbar

  標誌:logo

  廣告:banner

  頁面主體:main

  熱點:hot

  新聞:news

  下載:download

  子導航:subnav

  菜單:menu

  子菜單:submenu

  搜索:search

  友情鏈接:friendlink

  頁腳:footer

  版權:copyright

  滾動:scroll

  內容:content

  標簽頁:tab

  文章列表:list

  提示信息:msg

  小技巧:tips

  欄目標題:title

  加入:joinus

  指南:guild

  服務:service

  註冊:regsiter

  狀態:status

  投票:vote

  合作伙伴:partner

(二)註釋的寫法:

  /* Footer */

  內容區

  /* End Footer */

(三)id的命名:

  (1)頁面結構

  容器: container

  頁頭:header

  內容:content/container

  頁面主體:main

  頁尾:footer

  導航:nav

  側欄:sidebar

  欄目:column

  頁面外圍控制整體佈局寬度:wrapper

  左右中:left right center

 

  (2)導航

  導航:nav

  主導航:mainbav

  子導航:subnav

  頂導航:topnav

  邊導航:sidebar

  左導航:leftsidebar

  右導航:rightsidebar

  菜單:menu

  子菜單:submenu

  標題: title

  摘要: summary

 

  (3)功能

  標誌:logo

  廣告:banner

  登陸:login

  登錄條:loginbar

  註冊:regsiter

  搜索:search

  功能區:shop

  標題:title

  加入:joinus

  狀態:status

  按鈕:btn

  滾動:scroll

  標簽頁:tab

  文章列表:list

  提示信息:msg

  當前的: current

  小技巧:tips

  圖標: icon

  註釋:note

  指南:guild

  服務:service

  熱點:hot

  新聞:news

  下載:download

  投票:vote

  合作伙伴:partner

  友情鏈接:link

  版權:copyright\

 

基本樣式:

 

/* CSS Document */

body {margin:0; padding:0; font:12px "\5B8B\4F53",san-serif;background:#fff;}

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

table,td,tr,th{font-size:12px;}

li{list-style-type:none;}

img{vertical-align:top;border:0;}

ol,ul {list-style:none;}

h1,h2,h3,h4,h5,h6 {font-size:12px; font-weight:normal;}

address,cite,code,em,th {font-weight:normal; font-style:normal;}

.fB{font-weight:bold;}

.f12px{font-size:12px;}

.f14px{font-size:14px;}

.left{float:left;}

.right{float:right;}

 

a {color:#2b2b2b; text-decoration:none;}

a:visited {text-decoration:none;}

a:hover {color:#ba2636;text-decoration:underline;}

a:active {color:#ba2636;}

 

重定義的最先,偽類其次,自定義最後,便於自己和他人閱讀!

 

    不同瀏覽器上字型大小保持一致,字型大小建議用點數pt和像素px來定義,pt一般使用中文宋體的9pt 和11pt,px一般使用中文宋體12px 和14.7px 這是經過優化的字型大小,黑體字或者宋體字加粗時,一般選用11pt 和14.7px 的字型大小比較合適。中英文混排時,我們儘可能的將英文和數字定義為verdana 和arial 兩種字體。

 

 

2.4  html 書寫規範

  1. 網頁製作細節 ---- head區代碼規範

head區是指HTML代碼的<head>和</head>之間的內容。

必須加入的標簽

a) 公司版權註釋  <!--- The site is designed by EHM,Inc 07/2005 --->

b) 網頁顯示字元集

簡體中文:<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">

繁體中文:<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">

語:<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">

c) 網頁製作者信息  <META name="author" content="[email protected]"> 

d) 網站簡介  <META NAME="DESCRIPTION" CONTENT="xxxxxxxxxxxxxxxxxxxxxxxxxx">

e) 搜索關鍵字  <META NAME="keywords" CONTENT="xxxx,xxxx,xxx,xxxxx,xxxx,">

f) 網頁的css規範  <LINK href="../css/style.css" rel="stylesheet" type="text/css">

g) 網頁標題  <title>xxxxxxxxxxxxxxxxxx</title>

可以選擇加入的標簽

a) 設定網頁的到期時間。一旦網頁過期,必須到伺服器上重新調閱。

<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT"> 

b) 禁止瀏覽器從本地機的緩存中調閱頁面內容。

<META HTTP-EQUIV="Pragma" CONTENT="no-cache">

c) 用來防止別人在框架里調用你的頁面。

<META HTTP-EQUIV="Window-target" CONTENT="_top">

d) 自動跳轉。

<META HTTP-EQUIV="Refresh" CONTENT="5;URL=http://www.yahoo.com">  5指時間停留5秒

e) 網頁搜索機器人嚮導。用來告訴搜索機器人哪些頁面需要索引,哪些頁面不需要索引。

<META NAME="robots" CONTENT="none">

CONTENT的參數有all,none,index,noindex,follow,nofollow。預設是all。

f) 收藏夾圖標  <link rel = "Shortcut Icon" href="favicon.ico">

g) 所有的javascript的調用儘量採取外部調用.

<SCRIPT LANGUAGE="JavaScript" SRC="script/xxxxx.js"></SCRIPT> 

h) 附<body>標簽:

<body>標簽不屬於head區,這裡強調一下,為了保證瀏覽器的相容性,必須設置頁面背景<body bgcolor="#FFFFFF">

 

  1. 網頁製作細節 ---- 字體
    1. 在設定字體樣式時對於文字字型大小樣式行間距應必須使用CSS樣式表。禁止在頁面中出現 <font size=?> 標記。

    2.在網頁中中文應首選使用宋體。英文和數字首選使用verdana 和arial 兩種字體。一般使用中文宋體的9pt 和11pt 或12px 和14.7px 這是經過優化的字型大小,黑體字或者宋體字加粗時,一般選用11pt 和14.7px 的字型大小比較合適。

    3. 為了最大程度的發揮瀏覽器自動排版的功能,在一段完整的文字中請儘量不要使用<br> 來人工干預分段。

    4.不同語種的文字之間應該有一個半形空格,但避頭的符號之前和避尾的符號之後除外,漢字之間的標點要用全形標點,英文字母和數字周圍的括弧應該使用半形括弧。

    5. 請不要在網頁中連續出現多於一個的   也儘量少使用全形空格(英文字元集下,全形空格會變成亂碼),空白應該儘量使用 text-indent, padding, margin, hspace, vspace 以及透明的gif 圖片來實現。

    6. 行距建議用百分比來定義,常用的兩個行距的值是line-height:120%/150%.

    7. 排版中我們經常會遇到需要進行首行縮進的處理,不要使用   或者全形空格來達到效果,規範的做法是在樣式表中定義 p { text-indent: 2em; } 然後給每一段加上 <p> 標記,註意,一般情況下,請不要省略 </p> 結束標記 。

 

  1. 網頁製作細節 ---- 鏈接
    1. 網站中的鏈接路徑全部採用相對路徑,一般鏈接到某一目錄下的預設文件的鏈接路徑不必寫全名,如我們不必這樣:<a href=”aboutus/index.htm”> 而應該這樣:<a href=”aboutus/”>,所有內頁指向首頁的鏈接寫成<a href=”/”>

    2. 在瀏覽器里,當我們點擊空鏈接時,它會自動將當前頁面重置到首端,從而影響用戶正常的閱讀內容,我們用代碼“javascript:void(null)”代替原來的“#”標記

 

  1. 網頁製作細節 ---- 表格
    1px表格 style="border-collapse: collapse"
    實例如下:
    <table border="1" cellspacing="0" width="32" height="32" style="border-collapse: collapse"
    bordercolor="#000000" cellpadding="0">
    <tr>
    <td></td>
    </tr>
    </table>
    設置亮、暗邊框顏色
    表格有亮邊框(bordercolorlight)和暗邊框(bordercolordark)兩個屬性可以對錶格樣式設置。
    <table border="1" width="500" bordercolorlight="#000000" bordercolordark="#FFFFFF">

    在寫 <table> 互相嵌套時,嚴格按照的規範,對於單獨的一個<table>來說,<table><tr>對齊,<td> 縮進兩個半形空格,<td> 中如果還有嵌套的表格,<table>也縮進兩個半形空格,如果<td>中沒有任何嵌套的表格,</td> 結束標記應該與 <td> 處於同一行,不要換行,
    如我們註意在源代碼中不應有這樣的代碼:
    <td><img src=”../images/sample.gif”>
    </td>
    而應該是這樣的:
    <td><img src=”../images/sample.gif”></td>
    這是因為瀏覽器認為換行相當於一個半形空格,以上不規範的寫法相當於無意中增加一個半形空格,如果確實有必要增加一個半形空格,也應該這樣寫:
    <td><img src=”../images/sample.gif”> </td>

    一個網頁要儘量避免用整個一張大表格,所有的內容都嵌套在這個大表格之內,因為瀏覽器在解釋頁面的元素時,是以表格為單位逐一顯示,如果一張網頁是嵌套在一個大表格之內,那麼很可能造成的後果就是,當瀏覽者敲入網址,他要先面對一片空白很長時間,然後所有的網頁內容同時出現。如果必須這樣做,請使用 <tbody>標記,以便能夠使這個大表格分塊顯示

 

  1. 網頁製作細節 ---- 下載速度
    首頁Flash 網頁大小應限定在 200K 以下,儘可能的使用矢量圖形和Action來減小動畫大小。非首頁靜態頁面含圖片大小應限定在 70K 左右,儘可能的使用背景顏色替換大塊同色圖片。

 

  1. 網頁製作細節 ---- include
    asp標準寫法 <!--#include file="inc/index_top.asp" -->
    jsp 標準寫法 <%@ include file="../inc/index_top..jsp" %>

 

  1. 網頁製作細節 ---- AltTitle 
    都是提示性語言標簽請註意它們之間的區別。 

在我們瀏覽網頁時,當滑鼠停留在圖片對象或文字鏈接上時,在滑鼠的右下角有時會出現一個提示信息框。對目標進行一定的註釋說明。在一些場合,它的作用是很重要的。

alt 用來給圖片來提示的。Title用來給鏈接文字或普通文字提示的。

用法如下:

<p Title="給鏈接文字提示">文字</p>

<a href="#" Title="給鏈接文字提示">文字</a>

<img src="圖片.gif" alt="給圖片提示">

  1. 網頁製作細節 ---- 緩存 

網頁不會被緩存

HTM網頁

<META HTTP-EQUIV="pragma" CONTENT="no-cache">

<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">

<META HTTP-EQUIV="expires" CONTENT="0">

ASP網頁

Response.Expires = -1

Response.ExpiresAbsolute = Now() - 1

Response.cachecontrol = "no-cache"

  1. 網頁製作細節 ---- 瀏覽器相容性
    創建站點時,應該明白訪問者可能使用各種 Web 瀏覽器。在已知的其他設計限制下,儘可能將站點設計為具有最大的瀏覽器相容性。
    目前使用的 Web 瀏覽器有二十多種,大多數已發行了多個版本。即使您只針對使用 Netscape Navigator 和 Microsoft Internet Explorer 的大多數 Web 用戶,但您應明確並不是每個人都在使用這兩種瀏覽器的最新版本。
    您的站點越複雜(在佈局、動畫、多媒體內容和交互方面),跨瀏覽器相容的可能性就越小。例如,並非所有的瀏覽器都可以運行JavaScript。不使用特殊字元的純文本頁面或許能夠在任何瀏覽器中正確顯示,但比起有效地使用圖形、佈局和交互的頁面,這樣的頁面在美感上可能要差得多。所以,應儘量在最佳效果設計和最大瀏覽器相容性設計之間取得平衡。
    所有的HTML 標簽的屬性都要用單引號或者雙引號括起,即我們應該寫 <a href=”url”> 而不 是 <a href=url>.

 

  1. 圖片處理細節 ---- banner
    全尺寸banner為468X60px,半尺寸banner為234X60px,小banner為88X31px。
    另外120X90,120X60也是小圖標的標準尺寸。全尺寸banner不超過14K。
    普遍的banner尺寸760X100,750X120,468X60,468X95,728X90,585X140
    次級頁的pip尺寸360X300,336X280
    游標:100X100或120X120

 

  1. 圖片處理細節 ---- LOGO的國際標準規範
    為了便於INTERNET上信息的傳播,一個統一的國際標準是需要的。實際上已經有了這樣的一整套標準。其中關於網站的LOGO,目前有三種規格:
    88*31 這是互聯網上最普遍的LOGO規格。
    120*60 這種規格用於一般大小的LOGO。
    120*90 這種規格用於大型LOGO。

 

  1. 圖片處理細節 ---- 頁面修飾圖片處理
    圖片經過優化以加快下載的速度,有較佳的視覺空間效果,用圖要與頁面風格、頁面內容相符;製作精美,細節處理得當。

 

 

2.5  JavaScript書寫規範

1. 書寫過程中, 每行代碼結束必須有分號; 原則上所有功能均根據XXX項目需求原生開發, 以避免網上down下來的代碼造成的代碼污染(沉冗代碼 || 與現有代碼衝突 || ...);

2. 庫引入: 原則上僅引入jQuery庫, 若需引入第三方庫, 須與團隊其他人員討論決定;

3. 變數命名: 駝峰式命名. 原生JavaScript變數要求是純英文字母, 首字母須小寫, 如iTaoLun; jQuery變數要求首字元為'_', 其他與原生JavaScript 規則相同, 如: _iTaoLun; 另, 要求變數集中聲明, 避免全局變數.

4. 類命名: 首字母大寫, 駝峰式命名. 如 ITaoLun;

5. 函數命名: 首字母小寫駝峰式命名. 如iTaoLun();

6. 命名語義化, 儘可能利用英文單詞或其縮寫;

7. 儘量避免使用存在相容性及消耗資源的方法或屬性, 比如eval() & innerText;

8. 後期優化中, JavaScript非註釋類中文字元須轉換成unicode編碼使用, 以避免編碼錯誤時亂碼顯示;

9. 代碼結構明瞭, 加適量註釋. 提高函數重用率;

10. 註重與html分離, 減小reflow, 註重性能.

 

2.6   圖片規範

1. 所有頁面元素類圖片均放入img文件夾, 測試用圖片放於img/demoimg文件夾;

2. 圖片格式僅限於gif || png || jpg;

3. 命名全部用小寫英文字母 || 數字 || _ 的組合,其中不得包含漢字 || 空格 || 特殊字元;儘量用易懂的辭彙, 便於團隊其他成員理解; 另, 命名分頭尾兩部分, 用下劃線隔開, 比如ad_left01.gif || btn_submit.gif;

4. 在保證視覺效果的情況下選擇最小的圖片格式與圖片質量, 以減少載入時間;

5. 儘量避免使用半透明的png圖片(若使用, 請參考css規範相關說明);

6. 運用css sprite技術集中小的背景圖或圖標, 減小頁面http請求, 但註意, 請務必在對應的sprite psd源圖中劃參考線, 並保存至img目錄下.

 

 

2.7  註釋規範

1. html註釋: 註釋格式 <!--這兒是註釋-->, '--'只能在註釋的始末位置,不可置入註釋文字區域;

2. css註釋: 註釋格式 /*這兒是註釋*/;

3. JavaScript註釋, 單行註釋使用'//這兒是單行註釋' ,多行註釋使用 /* 這兒有多行註釋 */;

 

 

2.8  瀏覽器相容性 CSS hack

 

一、標識區別:
區別IE6,IE7,IE8,FF。
1. IE都能識別* ; 標準瀏覽器(如FF)不能識別*;

2. IE6能識別*,但不能識別 !important; IE6在樣式前面加_

3. IE7能識別*,也能識別!important;

4. IE8能識別\ 9 例如:background:red \9;

5. firefox不能識別*,但能識別!important;

 

1.IE6和firefox的區別:
background:orange;*background:blue;
意思就是火狐瀏覽器的背景顏色是橙色,而IE瀏覽器的背景色是藍色.

2. IE6和IE7的區別:
background:green !important;background:blue;
意思指的是:IE7的背景顏色是綠色,IE6的背景顏色是藍色

3. IE7和FF的區別:
background:orange; *background:green;
意思指的是:火狐瀏覽器的背景顏色是橙色,而IE7的背景顏色是綠色

4. FF,IE7,IE6的區別:
background:orange;
*background:green !important;
*background:blue;
意思是火狐瀏覽器的的背景橙色,IE7瀏覽器的背景顏色是綠色,而IE6瀏覽器的顏色是藍色.

二、實踐建議

(1).  開發平臺的選擇

Firefox 上編寫CSS, 同時相容其他瀏覽器的. 這樣做肯定會比在 IE 做好再到別的瀏覽器相容來得容易, 因為 IE 對老標準支持還是很不錯的, 而 IE 的一些特有功能人家卻不支持. 所以推薦以 Firefox 結合 Firebug 擴展作為平臺。

(2).  CSS Hack 的順序

使用 Firefox 作為平臺, 只要代碼寫得夠標準, 其實要 Hack 的地方不會很多的, IE 以外的瀏覽器幾乎都不會有問題, 所以可以暫時忽略,

順序如下:Firefox -> IE6 -> IE7 -> 其他

(3).   Hack 的方法

說到方法有兩種, 一種是在不同文件中處理, 另一種則是在同一個文件中處理. 其實作用是相同的, 只是出發點不一樣而已.

1. 同一文件中處理.
: id="bgcolor"的控制項要在 IE6中顯示藍色, IE7中顯示綠色, Firefox等其他瀏覽器中顯示紅色。

 

IE6不認 !important,也不認 *+html.所以 IE6只能是 blue.
IE7認 !important,也認 *+html,優先度: (*+html + !important) > !important > +html. IE7可以是 red, blue和 green,但 green的優先度最高.
Firefox和其他瀏覽器都認 !important. !important優先, Firefox可以是 red和 blue,但 red優先度高.上述的優先符號均是 CSS3標準允許的,其他瀏覽器也還有其他的 Hack方法,但我迄今還沒遇到過 Firefox正常, IE以外的其他瀏覽器不正常的情況,所以無可分享.只要代碼規範,相信這種情況的發生應該是很罕見 (JavaScript除外).

2. 不同文件中處理.
為什麼同一文件中可以處理還要寫在多個文件裡面針對不同的瀏覽器?這是為了欺騙 W3C的驗證工具,其實只需要兩個文件,一個是針對所有瀏覽器的,一個只為 IE服務.將所有符合 W3C的代碼寫到一個裡面去,而一些 IE中必須的,又不能通過 W3C驗證的代碼 (如: cursor:hand;)放到另一個文件中,再用下麵的方法導入.

 


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

-Advertisement-
Play Games
更多相關文章
  • H5新標簽(適合新手入門)持續更新,歡迎閱讀,小白自學,一起共勉!!!加油!! ...
  • CSS超全筆記(適合新手入門)持續更新,歡迎閱讀,小白自學,一起共勉!!!加油!! ...
  • 1、jQuery常用選擇器 篩選: $('div').has('p'); // 選擇包含p元素的div元素 $('div').not('.myClass'); //選擇class不等於myClass的div元素 $('div').eq(5); //選擇第6個div元素 選擇器的轉移: $('#box... ...
  • JavaScript 系列博客(八) 前言 本篇博客介紹頁面節點概念、文檔結構以及如何使用 js 操作文檔節點還有事件 target 以及 BOM 操作。 節點 dom與dom屬性 節點分類 節點常規操作 文檔結構(element元素範圍) 文檔元素節點操作 事件對象target屬性 BOM操作 ...
  • JavaScript 系列博客(六) 前言 本篇博客介紹 js 操作高級,通過 js 獲取標簽的全局屬性、設置標簽的全局屬性,以及事件的綁定與取消、js 盒模型與 js 動畫。 對象使用的高級 對象的key為字元串類型, value為任意類型 對象的屬性可以任意添加與刪除 頁面標簽全局屬性操作 事件 ...
  • 元素寬高 + ,`min width max width`等元素寬度設置百分比,以 包含塊的寬度 為標準進行計算; + ,`min height max height`等元素寬度設置百分比,以 包含塊的高度 為標準進行計算; 內外邊距 ,`padding`設置百分比時,在預設(水平)書寫模式下,以 ...
  • 最近測試老是提bug說是有50%的概率列印出空白頁,之前我也一直發現偶爾會出現這個問題,只是一直沒有發現原因。 今天終於下定決心找到問題所在。開始吧! 查看源碼一行行debug,發現問題只可能出現在這一段。 這裡應該是等待為了等待渲染完成,所以延遲了1秒載入列印。但是很多情況下會發現渲染時間超過1秒 ...
  • 1、對象構造函數 設置節點與人名 2、生成隨機對象 3、開始事件 4、結束事件 代碼下載地址:https://pan.baidu.com/s/1DgOWML9OoOoA2fiddeYCTQ ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...