整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          寫給初學者的HTML和CSS編碼規范

          TML配置

          • 文件應以“”首行頂格開始,推薦使用“”。
          • 必須申明文檔的編碼charset,并且使用UTF-8編碼。
          • 移動端必須使用 viewport 適配
          • 頁面title是極為重要的不可缺少的一項。

          以下是一個標準的html結構

          html復制代碼<!DOCTYPE html>
          <html>
            <head>
              <!-- 必須聲明 utf-8 編碼格式 -->
              <meta charset="utf-8">
              <!-- 頁面標題不能為空 -->
              <title>京東商城:商家后臺</title>
              <!-- 移動端必須使用 viewport 適配需要, PC 看場景需要使用 -->
              <meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no">
               
              <!-- 樣式文件 以外鏈形式在此處引入 -->
              <link href="//static.360buyimg.com/bus/test/shop1_3/UI2.0update.css" rel="stylesheet">
            </head>
            <body>
              <!-- 頁面主體 -->
              <div class="warp">
                <header>頂部內容區域,比如:菜單頭</header>
                <div class="content">主內容區域</div>
                <footer>頂部頁尾區域,比如:備案號</footer>
              </div>
               
              <!-- js文件 在此處引入 -->
              <script type="text/javascript" src="//wl.jd.com/joya.js"></script>
            </body>
          </html>
          

          主框架(jQuery,vue,react,angular等) 避免混合使用

          避免多個框架混合使用,在同一個工程里面要保持主框架的一致性,多框架同時使用會造成代碼混亂,后期會變得越來越難維護。

          Css開發規范

          1、全局樣式禁止使用!important

          2、避免使用導入式引入css樣式文件;

          css復制代碼<style type="text/css">
            @import url(./demo.css);
          </style>
          

          未使用的js/css禁止引用

          歷史頁面會有一些功能下線,在去除頁面初始化的js語句的同時,也要將依賴的js文件刪除,避免資源加載浪費

          文件必須使用gzip壓縮

          開啟Gzip壓縮功能, 可以使網站的css、js 、xml、html 文件在傳輸時進行壓縮,提高訪問速度

          api接口中,無用字段占傳輸比例30%以上時,刪除無用字段

          在開發過程中,發現無用字段占傳輸比例30%以上時,請進行返回數據的刪減,加快數據請求速度

          關于圖片壓縮

          上傳圖片之前一定要做圖片的無損壓縮,節省網絡流量,推薦網站tinypng

          HTML的標準結構

          html復制代碼<!DOCTYPE html>
          <html>
            <head>
              <!-- 必須聲明 utf-8 編碼格式 -->
              <meta charset="utf-8">
              <!-- keywords 關鍵詞 和 Description 頁面描述 便于搜索引擎檢索,不強制使用 -->
              <meta name="Keywords" Content=”關鍵詞1,關鍵詞2,關鍵詞3,關鍵詞4″>
              <meta name="Description" Content=”頁面描述″>
              <!-- 移動端必須使用 viewport 適配需要, PC 看場景需要使用 -->
              <meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no">
              <!-- 推薦手動引入指定路徑 favicon  -->
              <link rel="shortcut icon" href="path/to/favicon.ico">
              <!-- 樣式文件必須以外鏈形式在此處引入 -->
              <link href="//static.360buyimg.com/bus/test/shop1_3/UI2.0update.css" rel="stylesheet">
              <!-- 內聯樣式 -->
              <style type="text/css">
                .warp {
                  margin: 0;
                  padding: 0;
                }
              </style> -->
              <!-- 頁面標題不能為空 -->
              <title>頁面標題</title>
            </head>
            <body>
            <!-- 頁面主體 -->
              <div class="warp">
              <header>頂部內容區域,比如:菜單頭</header>
              <div class="content">主內容區域</div>
              <footer>頂部頁尾區域,比如:備案號</footer>
              </div>
           
              <!-- JavaScript 文件在此處引入 -->
              <script type="text/javascript" src="//wl.jd.com/joya.js"></script>
            </body>
          </html>
          
          • 不同模塊區域可使用簡要備注標識模塊內容
          • HTML 標簽語義化使結構清晰,比如:
          • CSS 外鏈引入必須放在 中
          • JS 外鏈引入必須放在中
          • 省略圖像、媒體文件、樣式表和腳本等嵌入式資源 URL 協議頭部聲明 ( http:// , https:// ),用//代替。
          • favicon 在未指定 favicon 時,大多數瀏覽器會請求 Web Server 根目錄下的 favicon.ico 。為了保證 favicon 可訪問,避免404,必須遵循以下兩種方法之一:1。在 Web Server 根目錄放置 favicon.ico 文件,2。使用 link 指定 favicon

          HTML標簽使用守則

          標簽小寫

          原生 HTML 標簽元素小寫使用,自定義組件使用小駝峰命名(自定義標簽避免和原生標簽同名)

          html復制代碼<!-- 錯誤 ? -->
          <DIV></DIV>
          <SPAN></SPAN>  
           
          <!-- 正確 ? -->
          <div></div>  
          <p></p> 
           
          <!-- 自定義組件 -->
          <shareDialog><shareDialog/>
          

          套用規則

          禁止在行內元素中嵌套塊級元素??

          html復制代碼<!-- 錯誤的嵌套 ? -->
          <span><div></div></span>  
          <i><p></p></i>     
           
          <!-- 正確的嵌套 ? -->
          <div><span></span></div>  
          <p><i></i></p>   
          

          更多標簽使用規則介紹請查看尾部附錄

          屬性定義

          定義屬性賦值時,使用雙引號,禁止單雙引號混用

          html復制代碼<!-- 錯誤的定義 ? -->
          <input id="formTitle" type='text' placeholder="請輸入標題">   
           
          <!-- 正確的定義 ? -->
          <input id="formTitle" type="text" placeholder="請輸入標題" data="formTitle">   
          

          正確閉合

          除自閉合標簽外,所有標簽都需正確的編寫閉合標簽

          常用自閉合標簽: <br />、<col />、<img />、<input />、<link />、<meta />、<keygen />

          ID、Class 命名使用規范

          ID 和 Class 取通用且有意義的名字;

          使用連字符 - 作為 ID、Class 名稱界定符 ,不要駝峰命名法和下劃線;

          避免選擇器嵌套層級過多,盡量少于 3 級;

          使用命名空間防止命名沖突,利于維護;

          css復制代碼/* 不推薦: 無意義 不易理解 */
          #yee-1901 {}
          #meunBtn {}
          .login_input {}
           
          /* 推薦: 明確詳細 */
          #gallery {}
          #login {}
          .login-input {}
          .meun-btn {}
          
          • 避免選擇器和 Class、ID 疊加使用
          • 聲明順序,相關屬性應為一組,建議遵循: 定位布局屬性 -> 盒模型屬性 -> 文本屬性 -> 視覺屬性 -> 其他屬性
          • 對于 JS 操作相關選擇器 前面需加上 特殊應用標識前綴
          css復制代碼/* 標準的聲明順序 */
          .declaration-order {
            /* 布局屬性 */
            position: absolute;
            top: 0;
            right: 0;
            bottom: 0;
            left: 0;
            z-index: 100;
           
            /* 盒模型屬性 */
            display: block;
            box-sizing: border-box;
            width: 100px;
            height: 100px;
            padding: 10px;
            border: 1px solid #e5e5e5;
            border-radius: 3px;
            margin: 10px;
            float: right;
            overflow: hidden;
           
            /* 文本屬性 */
            font: normal 13px "Helvetica Neue", sans-serif;
            line-height: 1.5;
            text-align: center;
           
            /* 視覺屬性 */
            background-color: #f5f5f5;
            color: #fff;
            opacity: .8;
           
            /* 其他屬性 */
            cursor: pointer;
          }
          

          圖片相關使用規范

          <img/>標簽守則

          • src 屬性不能為空,需添加默認值(托底圖片路徑)
          • 為重要圖片添加 alt 屬性,當無法顯示圖像時,瀏覽器將顯示替代文本,便于 SEO 及用戶閱讀
          • 為圖片標簽 增加 width 和 height 屬性,避免圖片加載從無到有,導致頁面抖動
          • 大量圖片流資源,使用懶加載技術按需加載
          html復制代碼<!-- 禁止 src 取值為空 -->
          <img src="" />
           
          <!-- 推薦 -->
          <img src="xxxx" alt="xxx" style="width:100px;height:100px;" />
          

          圖片資源守則

          大小

          尺寸 小于 50 ×?50 的請使用 字體圖標(iconfont)或者 將多個圖標合成一張大圖使用(雪碧圖) 尺寸大于 50 ×?50 的圖片,引入前先使用 在線壓縮 對其進行壓縮 ,圖片大小盡量控制在 300kb 以內

          倍率

          PC端、移動端 推薦使用 2倍圖 (@2x),避免設備分辨率過高,圖片顯示失真模糊 如有兼容 iPad 場景等特殊場景,可使用 3倍圖(@3x)

          html復制代碼<img src="//logo@200x200.jpg" alt="xx" style="width:100px;height:100px;"/>
          

          2倍圖: 圖片展示區域大小 : 圖片實際尺寸 = 1 :2

          無論使用幾倍圖,圖片大小都需遵守上條限制

          如遇圖片倍圖問題,可咨詢 @UI童鞋

          性能守則

          • 避免不必要的 DOM 操作瀏覽器遍歷 DOM 元素的代價是昂貴的。最簡單優化 DOM 樹查詢的方案是,當一個元素出現多次時,將它保存在一個變量中,來避免多次查詢 DOM 樹。
          js復制代碼/* 推薦用變量保存頻繁使用的 DOM 元素*/
          var ul = document.getElementsByTagName('ul')[0],
            lis = document.getElementsByTagName('ul')[0].getElementsByTagName('p')
             
          /* 推薦用變量保存頻繁使用的 DOM 元素*/
          var ul = document.getElementsByTagName('ul')[0],
            lis = ul.getElementsByTagName('li')
          
          • 異步加載第三方內容 當你無法保證嵌入第三方內容 比如 埋點、調研等資源正常工作的時候,你需要考慮用異步加載這些代碼,避免阻塞整個頁面加載。
          • 減少標簽的數量 編寫 HTML 代碼時,盡量避免多余的標簽嵌套,避免 DOM樹的冗余
          • 控制靜態資源數量

          1個頁面中建議CSS文件不要超過3個(1個組件庫樣式文件、1個項目公共樣式、1個頁面樣式); JS文件不要超過5個(1個框架文件、1個組件庫文件、1個項目公共庫文件、1個頁面腳本文件、1個埋點文件)。

          編碼建議

          縮進使用 2個空格 樣式建議引入 CSS reset 重置各瀏覽器自帶樣式差異 github.com/necolas/nor… JS 中字符串定義 使用 '' 單引號

          其他建議

          保持一定的代碼潔癖,尤其在大型項目中

          • 代碼邏輯應當直截了當,清晰易讀,保持與業務邏輯與代碼一一對應關系,減少邏輯錯誤的可能性,降低二次開發成本;
          • 刪除過期無用代碼,減少代碼過大,造成不必要的維護成本
          • 代碼盡量復用,擁有組件化思想
          • 代碼命名合理化,即使不寫注釋情況下,也可以讓其他開發人員一眼明白意思
          • 性能調至最優,降低耦合度,避免別人做不合理的優化時而造成的混亂
          • 整潔的模塊邊界,明確的劃分模塊之間的邏輯邊界,盡量保證職責單一,避免功能交叉混雜
          • 讓代碼沒有改進的余地,在開發時把各種情況都想到了,如果有人企圖改進它,總是會回到原點

          性能檢測工具 - Lighthouse簡介 Lighthouse是一個Google開源的自動化工具,主要用于改進網絡應用的質量。Lighthouse會對各個測試項的結果打分,并給出優化建議,這些打分標準和優化建議可以視為Google的網頁最佳實踐。

          Chrome拓展程序 谷歌商店安裝lighthouse后,在右上角或者菜單里點擊圖中圖標,Options可以配置測試項目,點擊Generate report即可測試。

          命令行

          js復制代碼<!-- 安裝 lighthouse 組件(Node.js V5.0 或以上版本) -->
          npm install -g lighthouse
          <!-- 啟動測試 (測試過程中會自動打開 Chrome 完成后會在當前目錄生成一個靜態HTML文件) -->
          lighthouse https://www.baidu.com/ --view
          <!-- 幫助-->
          lighthouse --help
          

          檢測結果

          【附錄】常用的標簽規范

          標簽

          語義

          嵌套常見錯誤

          常用屬性

          <a></a>

          超鏈接/錨

          a不可嵌套a

          href,name,title,rel,target

          <div></div>

          塊級容器



          <p></p>

          段落

          不能嵌套塊級元素


          <span></span>

          內聯容器(行內元素)

          不可嵌套塊級容器


          <form></form>

          表單


          action,target,method,name

          <input />

          輸入框

          不可嵌套元素

          type,name,value,checked,disabled,maxlength,readonly,accesskey

          <textarea></textarea>

          多行文本輸入控件


          name,accesskey,disabled,readonly,rows,cols

          <img />

          圖像

          不可嵌套元素

          alt,src,width,height

          <label></label>

          標簽(常用input元素定義標注)

          不可嵌套塊級容器

          for

          <table></table>

          表格

          只可嵌套表格子元素

          width,align,background,cellpadding,cellspacing,summary,border

          <tbody></tbody>

          表格主體

          只能嵌套在table內


          <thead></thead>

          表頭

          只能嵌套在table內


          <tr></tr>

          表格行

          嵌套于table或thead、tbody、tfoot


          <td></td>

          表格中的單元格

          只用于tr

          colspan,rowspan

          <th></th>

          表格中的標題單元格

          只用于tr

          colspan,rowspan

          <tfoot></tfoot>

          表格表尾

          只用于table


          <button></button>

          按鈕

          不可嵌套表單、表格等塊級元素

          type,disabled

          <select></select>

          列表框或下拉框

          只能嵌套option或optgroup

          name,disabled,multiple

          <option></option>

          select中的一個選項

          只能嵌套在select內

          value,selected,disabled

          <ol></ol>

          有序列表

          只能嵌套li


          <ul></ul>

          無序列表

          只能嵌套li


          <li></li>

          無序列表項

          只能嵌套在 ul 或 ol 內


          <iframe></iframe>

          內嵌一個網頁


          frameborder,width,height,src,scrolling,name

          <br />

          換行



          <link />

          引用樣式或icon

          不可嵌套任何元素

          type,rel,href

          <meta />

          文檔信息

          只用于head內

          content,http-equiv,name

          <script></script>

          引用腳本

          不可嵌套任何元素

          type,src

          <style></style>

          引用樣式

          不可嵌套任何元素

          type,media

          <title></title>

          文檔標題

          只用于head內


          點贊收藏支持、手留余香、與有榮焉,動動你發財的小手喲,感謝各位大佬能留下您的足跡。


          作者:StriveToY
          鏈接:https://juejin.cn/post/7262378982255394873

          人熟悉前端(html,css,js,vue等),后端(python),爬蟲,小程序等,老板有需求私信聯系我

          第01階段.前端基礎.盒子模型

          盒子模型(CSS重點)

          css學習三大重點: css 盒子模型 、 浮動 、 定位

          主題思路:

          目標:

          • 理解:能說出盒子模型有那四部分組成能說出內邊距的作用以及對盒子的影響能說出padding設置不同數值個數分別代表的意思能說出塊級盒子居中對齊需要的2個條件能說出外邊距合并的解決方法
          • 應用:能利用邊框復合寫法給元素添加邊框能計算盒子的實際大小能利用盒子模型布局模塊案例

          1.看透網頁布局的本質

          網頁布局中,我們是如何把里面的文字,圖片,按照美工給我們的效果圖排列的整齊有序呢?

          • 看透網頁布局的本質:首先利用CSS設置好盒子的大小,然后擺放盒子的位置。最后把網頁元素比如文字圖片等等,放入盒子里面。以上兩步 就是網頁布局的本質

          我們明白了,盒子是網頁布局的關鍵點,所以我們更應該弄明白 這個盒子有什么特點。

          2. 盒子模型(Box Model)

          • 所謂盒子模型:就是把HTML頁面中的布局元素看作是一個矩形的盒子,也就是一個盛裝內容的容器。總結:盒子模型有元素的內容、邊框(border)、內邊距(padding)、和外邊距(margin)組成。
          • 盒子里面的文字和圖片等元素是 內容區域盒子的厚度 我們成為 盒子的邊框
          • 盒子內容與邊框的距離是內邊距(類似單元格的 cellpadding)盒子與盒子之間的距離是外邊距(類似單元格的 cellspacing)

          標準盒子模型


          3. 盒子邊框(border)


          • 語法:
          border : border-width || border-style || border-color 

          屬性

          作用

          border-width

          定義邊框粗細,單位是px

          border-style

          邊框的樣式

          border-color

          邊框顏色

          • 邊框的樣式:none:沒有邊框即忽略所有邊框的寬度(默認值)solid:邊框為單實線(最為常用的)dashed:邊框為虛線 dotted:邊框為點線

          3.1 邊框綜合設置

          border : border-width || border-style || border-color 

          例如:

           border: 1px solid red;  沒有順序  

          3.2 盒子邊框寫法總結表

          很多情況下,我們不需要指定4個邊框,我們是可以單獨給4個邊框分別指定的。

          上邊框

          下邊框

          左邊框

          右邊框

          border-top-style:樣式;

          border-bottom-style:樣式;

          border-left-style:樣式;

          border-right-style:樣式;

          border-top-width:寬度;

          border- bottom-width:寬度;

          border-left-width:寬度;

          border-right-width:寬度;

          border-top-color:顏色;

          border- bottom-color:顏色;

          border-left-color:顏色;

          border-right-color:顏色;

          border-top:寬度 樣式 顏色;

          border-bottom:寬度 樣式 顏色;

          border-left:寬度 樣式 顏色;

          border-right:寬度 樣式 顏色;

          3.3 表格的細線邊框


          • 通過表格的cellspacing="0",將單元格與單元格之間的距離設置為0,
          • 但是兩個單元格之間的邊框會出現重疊,從而使邊框變粗
          • 通過css屬性:table{ border-collapse:collapse; } collapse 單詞是合并的意思border-collapse:collapse; 表示相鄰邊框合并在一起。
          <style>
              table {
                  width: 500px;
                  height: 300px;
                  border: 1px solid red;
              }
              td {
                  border: 1px solid red;
                  text-align: center;
              }
              table, td {
                  border-collapse: collapse;  /*合并相鄰邊框*/
              }
          </style>


          4. 內邊距(padding)


          4.1 內邊距:

          padding屬性用于設置內邊距。 是指 邊框與內容之間的距離。

          4.2 設置

          屬性

          作用

          padding-left

          左內邊距

          padding-right

          右內邊距

          padding-top

          上內邊距

          padding-bottom

          下內邊距

          當我們給盒子指定padding值之后, 發生了2件事情:

          1. 內容和邊框 有了距離,添加了內邊距。
          2. 盒子會變大了。


          注意: 后面跟幾個數值表示的意思是不一樣的。

          我們分開寫有點麻煩,我們可以不可以簡寫呢?

          值的個數

          表達意思

          1個值

          padding:上下左右內邊距;

          2個值

          padding: 上下內邊距 左右內邊距 ;

          3個值

          padding:上內邊距 左右內邊距 下內邊距;

          4個值

          padding: 上內邊距 右內邊距 下內邊距 左內邊距 ;

          4.3 課堂案例: 新浪導航

          新浪導航欄的核心就是因為里面的字數不一樣多,所以我們不方便給寬度,還是給padding ,撐開盒子的。


          <!DOCTYPE html>
          <html lang="en">
          <head>
              <meta charset="UTF-8">
              <title>新浪導航欄案例</title>
              <style>
              /*清除元素默認的內外邊距*/
                  * {
                      margin: 0;
                      padding: 0;
                  }
                  .nav {
                      height: 41px;
                      background-color: #FCFCFC;
                      /*上邊框*/
                      border-top: 3px solid #FF8500;
                      /*下邊框*/
                      border-bottom: 1px solid #EDEEF0;
                  }
                  .nav a {
                      /*轉換為行內塊*/
                      display: inline-block;
                      height: 41px;
                      line-height: 41px;
                      color: #4C4C4C;
                      /*代表 上下是 0  左右是 20 內邊距*/
                      padding: 0 20px;
                      /*background-color: pink;*/
                      text-decoration: none;
                      font-size: 12px;
                  }
                  .nav a:hover {
                      background-color: #eee;
                  }
              </style>
          </head>
          <body>
              <div class="nav">
                  <a href="#">設為首頁</a>
                  <a href="#">手機新浪網</a>
                  <a href="#">移動客戶端</a>
                  <a href="#">博客</a>
                  <a href="#">微博</a>
                  <a href="#">關注我</a>
              </div>
          </body>
          </html>

          4.4 內盒尺寸計算(元素實際大小)

          • 寬度Element Height = content height + padding + border (Height為內容高度)
          • 高度Element Width = content width + padding + border (Width為內容寬度)
          • 盒子的實際的大小 = 內容的寬度和高度 + 內邊距 + 邊框
              <style>
                  div {
                      width: 180px;
                      height: 200px;
                      background-color: pink;
                      /*添加10px 內邊距 左右 上下*/
                      padding: 10px;
                      /*盒子的實際大小 =  內容寬度 高度 +  內邊距 +  邊框*/
                            /*           =   200  +  20  +  0
                                       =   220  */
                       /*解決的方法:
                          內邊距一定要給的, 我們只能改變 內容寬度 width 讓他減去 多出來的內邊距就可以了*/
                          /*200 - 20  =  180 */
                  }
              </style>

          4.5 內邊距產生的問題

          • 問題會撐大原來的盒子
          • 解決:通過給設置了寬高的盒子,減去相應的內邊距的值,維持盒子原有的大小

          4.6 padding不影響盒子大小情況

          如果沒有給一個盒子指定寬度, 此時,如果給這個盒子指定padding, 則不會撐開盒子。

          5. 外邊距(margin)

          5.1 外邊距

          margin屬性用于設置外邊距。 margin就是控制盒子和盒子之間的距離

          5.2 設置:

          屬性

          作用

          margin-left

          左外邊距

          margin-right

          右外邊距

          margin-top

          上外邊距

          margin-bottom

          下外邊距

          margin值的簡寫 (復合寫法)代表意思 跟 padding 完全相同。

          5.3 塊級盒子水平居中

          • 可以讓一個塊級盒子實現水平居中必須:盒子必須指定了寬度(width)然后就給左右的外邊距都設置為auto

          實際工作中常用這種方式進行網頁布局,示例代碼如下:

          .header{ width:960px; margin:0 auto;}

          常見的寫法,以下下三種都可以。

          • margin-left: auto; margin-right: auto;
          • margin: auto;
          • margin: 0 auto;

          5.4 文字居中和盒子居中區別

          1. 盒子內的文字水平居中是 text-align: center, 而且還可以讓 行內元素和行內塊居中對齊
          2. 塊級盒子水平居中 左右margin 改為 auto
          text-align: center; /*  文字 行內元素 行內塊元素水平居中 */
          margin: 10px auto;  /* 塊級盒子水平居中  左右margin 改為 auto 就闊以了 上下margin都可以 */

          5.5 插入圖片和背景圖片區別

          1. 插入圖片 我們用的最多 比如產品展示類 移動位置只能靠盒模型 padding margin
          2. 背景圖片我們一般用于小圖標背景 或者 超大背景圖片 背景圖片 只能通過 background-position
           img {  
                  width: 200px;/* 插入圖片更改大小 width 和 height */
                  height: 210px;
                  margin-top: 30px;  /* 插入圖片更改位置 可以用margin 或padding  盒模型 */
                  margin-left: 50px; /* 插入當圖片也是一個盒子 */
              }
          
           div {
                  width: 400px;
                  height: 400px;
                  border: 1px solid purple;
                  background: #fff url(images/sun.jpg) no-repeat;
                  background-position: 30px 50px; /* 背景圖片更改位置 我用 background-position */
              }

          5.6 清除元素的默認內外邊距(重要)

          為了更靈活方便地控制網頁中的元素,制作網頁時,我們需要將元素的默認內外邊距清除

          代碼:

          * {
             padding:0;         /* 清除內邊距 */
             margin:0;          /* 清除外邊距 */
          }

          注意:

          • 行內元素為了照顧兼容性, 盡量只設置左右內外邊距, 不要設置上下內外邊距。

          5.7 外邊距合并

          使用margin定義塊元素的垂直外邊距時,可能會出現外邊距的合并。

          (1). 相鄰塊元素垂直外邊距的合并

          • 當上下相鄰的兩個塊元素相遇時,如果上面的元素有下外邊距margin-bottom
          • 下面的元素有上外邊距margin-top,則他們之間的垂直間距不是margin-bottom與margin-top之和
          • 取兩個值中的較大者這種現象被稱為相鄰塊元素垂直外邊距的合并(也稱外邊距塌陷)。


          解決方案:盡量給只給一個盒子添加margin值

          (2). 嵌套塊元素垂直外邊距的合并(塌陷)

          • 對于兩個嵌套關系的塊元素,如果父元素沒有上內邊距及邊框
          • 父元素的上外邊距會與子元素的上外邊距發生合并
          • 合并后的外邊距為兩者中的較大者


          解決方案:

          1. 可以為父元素定義上邊框。
          2. 可以為父元素定義上內邊距
          3. 可以為父元素添加overflow:hidden。

          還有其他方法,比如浮動、固定、絕對定位的盒子不會有問題,后面咱們再總結。。。

          <!DOCTYPE html>
          <html lang="en">
          <head>
              <meta charset="UTF-8">
              <title>Document</title>
              <style>
                  .father {
                      width: 500px;
                      height: 500px;
                      background-color: pink;
                      /*嵌套關系 垂直外邊距合并  解決方案 */
                      /*1. 可以為父元素定義上邊框  transparent 透明*/
                      /*border-top: 1px solid transparent;*/
                      /*2. 可以給父級指定一個 上 padding值*/
                      /*padding-top: 1px; */
                      /*3. 可以為父元素添加overflow:hidden。*/
                      overflow: hidden;
                  }
                  .son {
                      width: 200px;
                      height: 200px;
                      background-color: purple;
                      margin-top: 100px;
                  }
              </style>
          </head>
          <body>
              <div class="father">
                  <div class="son"></div>
              </div>
          </body>
          </html>

          6. 盒子模型布局穩定性

          • 學習完盒子模型,內邊距和外邊距,什么情況下用內邊距,什么情況下用外邊距?大部分情況下是可以混用的。 就是說,你用內邊距也可以,用外邊距也可以。 你覺得哪個方便,就用哪個。

          我們根據穩定性來分,建議如下:

          按照 優先使用 寬度 (width) 其次 使用內邊距(padding) 再次 外邊距(margin)。

            width >  padding  >   margin   
          • 原因:margin 會有外邊距合并 還有 ie6下面margin 加倍的bug(討厭)所以最后使用。padding 會影響盒子大小, 需要進行加減計算(麻煩) 其次使用。width 沒有問題我們經常使用寬度剩余法 高度剩余法來做。

          7. ps基本操作以及常用快捷鍵:

          因為網頁美工大部分效果圖都是利用ps 來做的,所以,以后我們大部分切圖工作都是在ps里面完成。

          • 文件--打開 -- 可以打開 我們要測量的圖片
          • ctrl+r 可以打開標尺 或者 視圖 -- 標尺
          • 右擊標尺, 把里面的單位改為 像素
          • ctrl+ 加號 鍵 可以 放大 視圖 ctrl+ 減號 縮小視圖
          • 按住空格鍵, 鼠標可以 變成小手 ,拖動 ps 視圖
          • 用選區 拖動 可以 測量 大小
          • ctrl+ d 可以取消選區 或者旁邊空白處點擊一下也可以取消選區

          去掉列表默認的樣式

          無序和有序列表前面默認的列表樣式,在不同瀏覽器顯示效果不一樣,而且也比較難看,所以,我們一般上來就直接去掉這些列表樣式就行了。 代碼如下

          li { list-style: none; }

          9. 今日總結

          拓展@

          以下我們講的CSS3部分新屬性, 但是我們遵循的原則是,以下內容,不會影響我們頁面布局, 只是樣式更好看了而已。

          1.圓角邊框(CSS3)

          • 語法:
          border-radius:length;  
          • 其中每一個值可以為 數值或百分比的形式。
          • 技巧: 讓一個正方形 變成圓圈 border-radius: 50%;



          • 以上效果圖矩形的圓角, 就不要用 百分比了,因為百分比會是表示高度和寬度的一半。
          • 而我們這里矩形就只用 用 高度的一半就好了。精確單位。
          <!DOCTYPE html>
          <html lang="en">
          <head>
              <meta charset="UTF-8">
              <title>Document</title>
              <style>
                  div {
                      width: 200px;
                      height: 200px;
                      background-color: pink;
          
                      /*border-radius: 100px;*/
                      border-radius: 50%;
                  }
                  p {
                      width: 100px;
                      height: 20px;
                      background-color: red;
                      font-size: 12px;
                      color: #fff;
                      text-align: center;
                      line-height: 20px;
                      border-radius: 10px;
                  }
              </style>
          </head>
          <body>
              <div> </div>
              <p> 特價 免費送 </p>
          </body>
          </html>

          2. 盒子陰影(CSS3)

          • 語法:
          box-shadow:水平陰影 垂直陰影 模糊距離(虛實)  陰影尺寸(影子大小)  陰影顏色  內/外陰影;

          • 前兩個屬性是必須寫的。其余的可以省略。
          • 外陰影 (outset) 是默認的 但是不能寫 想要內陰影可以寫 inset
          div {
                      width: 200px;
                      height: 200px;
                      border: 10px solid red;
                      /* box-shadow: 5px 5px 3px 4px rgba(0, 0, 0, .4);  */
                      /* box-shadow:水平位置 垂直位置 模糊距離 陰影尺寸(影子大小) 陰影顏色  內/外陰影; */
                      box-shadow: 0 15px 30px  rgba(0, 0, 0, .4);
                      
          }

          CSS書寫規范

          開始就形成良好的書寫規范,是你專業的開始。

          空格規范

          【強制】 選擇器 與 { 之間必須包含空格。

          示例:

          樂對于電影的意義

          人類分成兩種,其中一種聽過梁靜茹的《小手拉大手》。再其中,有的知道了旅游勝地關島,有的知道了電影《貓的報恩》。

          在我看來,這是一部關于高處告白的電影。

          高處不勝寒,先來一份“茹隔三秋”的勇氣拼盤。

          “茹隔三秋”

          2002年7月,勇氣在高處。

          https://v.qq.com/x/page/i0023rqw0wt.html

          風になる

          2002年11月,勇氣在單車。

          https://v.qq.com/x/page/v0333p8ar98.html

          專注

          2006年10月,勇氣在白馬。

          https://v.qq.com/x/page/p0510t3ml91.html

          小手拉大手

          曲棍網球

          有人從歌曲中知道了關島,我從這部電影中知道了曲棍網球。

          它的英文是lacrosse,,源自加拿大法語“la crosse”,字面義為曲棍。“網”呢?也許會被不屑的回答:還用問?就像空氣、陽光和水一樣,不用說也有網。

          如詞源所示,這項運動由在加拿大說法語的人命名。想象一下,公元前10世紀,在紐約這個地方,成百上千的原住民嗨上三天兩夜玩這個。

          [1]

          現代曲棍網球一般每隊12人,用時60分鐘。在日本,這是一項相對年輕的運動。2004年,《貓的報恩》上映兩年后,日韓港澳——這里是澳洲,不是澳門——才成立了亞太曲棍網球聯盟。

          男爵家族

          和曲棍網球一樣歷史悠久的,是貓男爵的姓。ジッキンゲン,英文為Gikkingen,可以追溯到Sickingen,18世紀德國西南一個貴族家族。

          [2]

          這個家族在20世紀已然消失,而電影中,有情貓將成眷屬。

          只是兩位天臺告白時,有沒有人記得畫中的Louise?

          [1] https://en.wikipedia.org/wiki/Lacrosse ?[2] https://en.wikipedia.org/wiki/House_of_Sickingen ?


          主站蜘蛛池模板: 亚洲AV日韩综合一区| 成人在线观看一区| 丰满人妻一区二区三区免费视频| 亚州国产AV一区二区三区伊在| 激情内射亚洲一区二区三区| 色视频综合无码一区二区三区| 韩国福利一区二区美女视频| 久久久无码精品国产一区| 一区二区视频在线免费观看| 日本精品夜色视频一区二区| 国产一区二区好的精华液| 在线观看亚洲一区二区| 亚洲综合一区二区| 狠狠综合久久AV一区二区三区| 亚洲午夜一区二区三区| 亚洲一区二区在线视频| 无码乱人伦一区二区亚洲一| 久久伊人精品一区二区三区 | 亚洲一本一道一区二区三区| 久久99精品一区二区三区| 丰满人妻一区二区三区免费视频| 中文字幕在线观看一区二区三区| 无码人妻精品一区二区蜜桃AV| 精品人妻AV一区二区三区| 亚洲国产一区明星换脸| 国产成人高清视频一区二区| 亚洲AⅤ视频一区二区三区| 亚洲片国产一区一级在线观看| 国产一区二区三区樱花动漫| 精品一区二区三区免费视频| 精品成人av一区二区三区| 中文字幕无线码一区| 色久综合网精品一区二区| 人妻AV一区二区三区精品| 国产成人精品第一区二区| 国产一区二区草草影院| 日本一区二区三区不卡在线视频| 国产伦一区二区三区高清| 日本亚洲国产一区二区三区| 日本一区二区三区精品中文字幕| 亚洲一区二区影院|