日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

web开发文档

發布時間:2023/12/20 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 web开发文档 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前端開發規范

-資料整理 宜信web- 楊亞坤

1,html 規范

  • 表現、內容和行為的分離
  • 標記應該是結構良好、語義正確?以及?普遍合法?。
  • 4,在HTML5規范里并沒有嚴格要求屬性值兩邊加引號。但考慮到一些屬性可以接受空白值,為了保持一致性,我們要求所有屬性值必須加上引號。對于屬性的定義,確保全部使用雙引號,絕不要使用單引號。

    5,盡最大能力標簽語意化

    • 要給?h1-h6?標題 -- 包括作為鏈接的標題 -- 定義缺省樣式。在你的CSS文檔頂部定義它們,在必要時修改它們以保持整個站點的一致性。
    • 標題必須有層次,能表明從大到小不同級別的重要性,h1具有最大的字體大小。
    • SEO:要大致地了解頁面的層次組織和閱讀效果,在開發者工具里關閉CSS效果,你會看到一個基于文字的視圖,包括所有的?h1-h6?,?strong,?em?等標簽。

    6,適當使用實體

    以實體代替與HTML語法相同的字符,避免瀏覽解析錯誤。

    常用HTML字符實體(建議使用實體):

    字符

    名稱

    實體名

    實體數

    "

    雙引號

    "

    "

    &

    &符

    &

    &

    <

    左尖括號(小于號)

    &lt;

    &#60;

    >

    右尖括號(大于號)

    &gt;

    &#62;

    ?

    空格

    &nbsp;

    &#160;

    ?

    中文全角空格

    ?

    &#12288;

    常用特殊字符實體(不建議使用實體):

    字符

    名稱

    實體名

    實體數

    &yen;

    &#165;

    |

    斷豎線

    &brvbar;

    &#166;

    ?

    版權

    &copy;

    &#169;

    ?

    注冊商標R

    &reg;

    &#174;

    ?

    商標TM

    &trade;

    &#8482;

    ·

    間隔符

    &middot;

    &#183;

    ?

    左雙尖括號

    &laquo;

    &#171;

    ?

    右雙尖括號

    &raquo;

    &#187;

    °

    &deg;

    &#176;

    ×

    &times;

    &#215;

    ÷

    &divide;

    &#247;

    千分比

    &permil;

    &#8240;

    ?

    7.標記的總體原則

    下面是編寫HTML標記的總體原則。提醒大家一點,在創建的HTML文檔里總是要使用能夠代表內容語義的標記。

    • 段落分隔符要使用實際對應的<p>元素,而不是用多個<br>標簽。
    • 在合適的條件下,充分利用<dl>?(定義列表)和<blockquote>?標簽。
    • 列表中的條目必須總是放置于<ul>、<ol>或<dl>?中,永遠不要用一組?<div>或<p>?來表示。
    • 給每個表單里的字段加上?<label>?標簽,其中的?for?屬性必須和對應的輸入字段對應,這樣用戶就可以點擊標簽。同理,給標簽加上?cursor:pointer;?樣式也是明智的做法。
    • 不用使用輸入字段中的?size?屬性。該屬性是和輸入字段里文本的?font-size?相關的。應該使用CSS寬度。
    • 在某些閉合的?</div>?標簽旁邊加上一段html注釋,說明這里閉合的是什么元素。這在有大量嵌套和縮進的情況下會很有用。
    • 不要把表格用于頁面布局。
    • 在合適的條件下,利用?<thead>、<tbody>和<th>標簽 (以及Scope屬性)。

    ?

    6,元素嵌套合法化

    禁止 出現?

    <ul>

    <div></div>

    <li></li>

    <li></li>

    </ul>

    Ul子元素只能是 li 不可是其他

    9.屬性順序

    HTML 屬性應當按照以下給出的順序依次排列,確保代碼的易讀性。

    • class
    • id,?name
    • data-*
    • src,?for,?type,?href,?value
    • title,?alt
    • role,?aria-*

    class 用于標識高度可復用組件,因此應該排在首位。id 用于標識具體組件,應當謹慎使用(例如,頁面內的書簽),因此排在第二位

    10,

    ?

    ?

    ?

    ?

    ?

    2css 書寫規范

    1.盡量使用英文命名原則,嚴格禁止拼音、數字

    2.盡量不加縮寫,除非已約定的縮寫方式,如:nav

    3.id和class全部小寫,采用該版塊的英文單詞或組合命名,以中杠“-”分割,如:nav-tabs(導航標簽/nav+tabs)

    必須使用Tab進行代碼縮進,建議設置Tab為4個空格的寬度,而不是4個空格;
    屬性與“{}”之間,屬性名和值之間必須有空格,屬性必須換行,“{}”必須換行顯示(即使只有一個屬性),如:

    .nav-tabs {

    ? ? border-bottom: 1px solid #ddd;

    }

    屬性值后面必須加分號“;”,即使只有一個;
    RGB顏色值有字母的必須采用小寫,可縮寫的盡量使用縮寫,如:#ffcccc縮寫為#fcc;
    針對特殊瀏覽器的屬性,應寫在標準屬性之前,左側對齊,如:

    -webkit-border-radius: 3px;

    -moz-border-radius: 3px;

    border-radius: 3px;

    ?

    ?按照元素模型由外及內,由整體到細節的書寫順序,屬性值大致分為五組:

    • 位置:position,top,right,bottom,left,float
    • 盒模型屬性:display,margin,padding,width,height
    • 邊框與背景:border,background
    • 段落與文本:line-height,text-indent,font,color,text-decoration,text-align…
    • 其他屬性:overflow,cursor,visibility,…

    媒體查詢(Media query)的位置

    將媒體查詢放在盡可能相關規則的附近。不要將他們打包放在一個單一樣式文件中或者放在文檔底部。如果你把他們分開了,將來只會被大家遺忘。下面給出一個典型的實例

    ?

    5.多選擇器規則之間(必須)換行

    ?/* 推薦的寫法 */

    ?a.btn,

    ?input.btn,

    ?input[type="button"] {

    ?? ? ......

    ?}

    6.?(禁止)將樣式寫為單行, 如

    .hotel-content {margin: 10px; background-color: #efefef;}

    7.?(禁止)向?0?后添加單位, 如:

    .obj {

    ? ? left: 0px;

    }

    8.?(禁止)使用css原生import

    使用css原生import有很多弊端,比如會增加請求數等…

    10. 小圖片(必須)sprite?合并

    11.?(推薦)當編寫針對特定html結構的樣式時,使用元素名?+?類名

    /* 所有的nav都是針對ul編寫的 */

    ?ul.nav {

    ?? ? ......

    ?}

    12.?(禁止)使用行內(inline)樣式

    13. 鏈接的樣式,(務必)按照這個順序來書寫

    a:link -> a:visited -> a:hover -> a:active

    14.CSS 必須放在文檔的?<head>?部分, Javascript 必須正好放在?</body>?標簽的前面。

    14,對于通用元素使用 class ,這樣利于渲染性能的優化。

    • 對于經常出現的組件,避免使用屬性選擇器(例如,[class^="..."])。瀏覽器的性能會受到這些因素的影響。
    • 選擇器要盡可能短,并且盡量限制組成選擇器的元素個數,建議不要超過 3 。
    • 只有在必要的時候才將 class 限制在最近的父元素內(也就是后代選擇器)(例如,不使用帶前綴的 class 時 -- 前綴類似于命名空間)。

    15.代碼組織

    • 以組件為單位組織代碼段。
    • 制定一致的注釋規范。
    • 使用一致的空白符將代碼分隔成塊,這樣利于掃描較大的文檔。
    • 如果使用了多個 CSS 文件,將其按照組件而非頁面的形式分拆,因為頁面會被重組,而組件只會被移動。

    參考:

    https://codeguide.bootcss.com/#css-single-declarations

    參考 :

    https://www.25xt.com/html5css3/15586.html

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    注釋規范

    文件頭部注釋主要用來闡述此文件的名稱,版本,作者。按照以下形式書寫:

    其中版本號的格式為:yyyyMMDDHH

    行內注釋

    行內注釋主要說明本段代碼所在的模塊;

    簡寫形式的屬性聲明

    在需要顯示地設置所有值的情況下,應當盡量限制使用簡寫形式的屬性聲明。常見的濫用簡寫屬性聲明的情況如下:

    • padding
    • margin
    • font
    • background
    • border
    • border-radius

    大部分情況下,我們不需要為簡寫形式的屬性聲明指定所有值。例如,HTML 的 heading 元素只需要設置上、下邊距(margin)的值,因此,在必要的時候,只需覆蓋這兩個值就可以。過度使用簡寫形式的屬性聲明會導致代碼混亂,并且會對屬性值帶來不必要的覆蓋從而引起意外的副作用。

    ?

    ?

    Js 規范

    1.?句尾分號;和留空;

    總的來說,使用留空應該遵循源遠流長的英語閱讀慣例。 例如,每個逗號和冒號(以及適用的分號)后面要空一格,但在括號內部的左側和右側都不要加空格。另外,大括號應該總是和他們前面的參數出現在同一行。

    來看看下面的 JavaScript for循環的例子...

    正確

    for?(var?i = 0, j = arr.length; i < j; i++) {

    // Do something.

    }

    不正確

    for?(?var?i = 0, j = arr.length; i < j; i++ )

    {

    // Do something.

    }

    也不正確

    for(var?i=0,j=arr.length;i<j;i++){

    ?

    // Do something.

    }

    2.?變量命名合規格(參考見javascript高級程序設計指南);

    一般情況下

    1)?變量:必須采用駱駝峰的命名且首字母小寫

    ?// 正確的命名

    ? var isHotel,

    ? ? ? isHotelBeijing,

    ? ? ? isHotelBeijingHandian;

    2)?常量:必須采用全大寫的命名,且單詞以_分割,常量通常用于ajax請求url,和一些不會改變的數據

    // 正確的命名

    ? var HOTEL_GET_URL = 'http://map.baidu.com/detail',

    ? ? ? PLACE_TYPE = ‘hotel’;

    ?(3)類:必須采用駱駝峰的命名且首字母大寫,如:

    ? var FooAndToo = function(name) {

    ? ? ? this.name = name;

    ? }

    ?

    ?

    ?

    ?

    ?

    3,禁止?if?縮寫,禁止使用?eval;

    5.?變量未定義;盡量減少全局變量和空的 變量中轉

    6,禁止超長函數,做到業務分化,函數精短

    7,使用函數式編程,對象式編程;倡導聲明式編程,避免命令式編程;

    // 命令式

    var makes = [];

    for (var i = 0; i < cars.length; i++) {

    ? makes.push(cars[i].make);

    }

    ?

    // 聲明式

    var makes = cars.map(function(car){ return car.make; });

    ?

    8,善于使用高階函數,閉包,函數柯里化,遞歸,等進行編程;提高代碼的可讀性,可維護性,減少內存開銷;

    9.?塊內函數必須用局部變量聲明

    // 錯誤的寫法

    ?var call = function(name) {

    ?? ? if (name == "hotel") {

    ?? ? ? ? function foo() {

    ?? ? ? ? ? ? console.log("hotel foo");

    ?? ? ? ? }

    ?? ? }

    ?

    ?? ? foo && foo();

    ?}

    ?

    ?// 推薦的寫法

    ?var call = function(name) {

    ?? ? var foo;

    ?

    ?? ? if (name == "hotel") {

    ?? ? ? ? foo = function() {

    ?? ? ? ? ? ? console.log("hotel foo");

    ?? ? ? ? }

    ?? ? }

    ?

    ?? ? foo && foo();

    ?}

    引起的bug:第一種寫法foo的聲明被提前了; 調用call時:第一種寫法會調用foo函數,第二種寫法不會調用foo函數

    10,?(禁止)使用eval,采取$.parseJSON

    ?三個原因:

    • 有注入風險,尤其是ajax返回數據
    • 不方便debug
    • 效率低,eval是一個執行效率很低的函數

    建議:

      使用new Function來代替eval的使用,最好就別用。

    11,iframe;

    Iframe 是能添加到指定頁面的各種元素中上開銷最大的一個。它們會阻塞頁面讓它無法觸發onload事件,直到它們加載完成。有時候它們被其他機構用來處理追蹤腳本。例如 Doubleclick floodlight 標簽就是一個 iframe,管理員可以從他們的管理面板向里面增加追蹤像素。在加入iFrame的任何情況下,它應該在window的onload事件被觸發之后再動態加入到DOM中

    13,不要在HTML中寫內聯腳本?<script>?塊。 它們會阻塞頁面渲染操作,對頁面加載時間帶來破壞性的影響。

    14,條件表達式例如?if?語句通過抽象方法?ToBoolean?強制計算它們的表達式并且總是遵守下面的規則:

    • 對象?被計算為?true
    • Undefined?被計算為?false
    • Null?被計算為?false
    • 布爾值?被計算為?布爾的值
    • 數字?如果是?+0、-0、或 NaN?被計算為?false, 否則為?true
    • 字符串?如果是空字符串?''?被計算為?false,否則為?true

    if ([0]) {

    ? // true

    ? // An array is an object, objects evaluate to true

    }

    條件表達式例如?if?語句通過抽象方法?ToBoolean?強制計算它們的表達式并且總是遵守下面的規則:

    • 對象?被計算為?true
    • Undefined?被計算為?false
    • Null?被計算為?false
    • 布爾值?被計算為?布爾的值
    • 數字?如果是?+0、-0、或 NaN?被計算為?false, 否則為?true
    • 字符串?如果是空字符串?''?被計算為?false,否則為?true

    if ([0]) {

    ? // true

    ? // An array is an object, objects evaluate to true

    }

    15.使用?$?作為存儲 jQuery 對象的變量名前綴。

    // bad

    const sidebar = $('.sidebar');

    ?

    // good

    const $sidebar = $('.sidebar');

    ?

    ?

    ?

    ?

    ?

    *********其他一些 優化

    優化 JavaScript 的特征?

    • 編寫可維護的代碼
    • 單變量模式
    • Hoisting:把所有變量聲明統一放到函數的起始位置 (在后部聲明的變量也會被JS視為在頭部定義,由此會產生問題)
    • 不要擴充內置原型(雖然給Object(), Function()之類的內置原型增加屬性和方法很巧妙,但是會破壞可維護性)
    • 不要用隱含的類型轉換
    • 不要用 eval()
    • 用 parseInt() 進行數字轉換
    • (規范)左大括號的位置
    • 構造器首字母大寫
    • 寫注釋
    • 不要用 void
    • 不要用 with 語句
    • 不要用 continue 語句
    • 盡量不要用位運算

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    附件: 常用css命令名

    常用的css命名規則:

    • 頭: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
    • 指南:guide
    • 服務:service
    • 注冊:register
    • 狀態:status
    • 投票:vote
    • 合作伙伴:partner

    ?

    注釋的寫法:

    /* Footer */

    內容區

    /* End Footer */

    id的命名:

    (1)頁面結構

    • 容器: container
    • 頁頭:header
    • 內容:content/container
    • 頁面主體:main
    • 頁尾:footer
    • 導航:nav
    • 側欄:sidebar
    • 欄目:column
    • 頁面外圍控制整體布局寬度:wrapper
    • 左右中:left right center

    (2)導航

    • 導航:nav
    • 主導航:mainnav
    • 子導航: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
    • 指南:guide
    • 服務:service
    • 熱點:hot
    • 新聞:news
    • 下載:download
    • 投票:vote
    • 合作伙伴:partner
    • 友情鏈接:link
    • 版權:copyright

    class的命名:

    (1)顏色:使用顏色的名稱或者16進制代碼,如

    • .red { color: red; }
    • .f60 { color: #f60; }
    • .ff8600 { color: #ff8600; }

    (2)字體大小,直接使用”font+字體大小”作為名稱,如

    • .font12px { font-size: 12px; }
    • .font9pt {font-size: 9pt; }

    (3)對齊樣式,使用對齊目標的英文名稱,如

    • .left { float:left; }
    • .bottom { float:bottom; }

    (4)標題欄樣式,使用”類別+功能”的方式命名,如

    • .barnews { }
    • .barproduct { }

    注意事項::

  • 一律小寫;
  • 盡量用英文;
  • 不加中杠和下劃線;
  • 盡量不縮寫,除非一看就明白的單詞.
    • 主要的 master.css
    • 模塊 module.css
    • 基本共用 base.css
    • 布局,版面 layout.css
    • 主題 themes.css
    • 專欄 columns.css
    • 文字 font.css
    • 表單 forms.css
    • 補丁 mend.css
    • 打印 print.css

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    總結

    以上是生活随笔為你收集整理的web开发文档的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。