整合營銷服務商

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

          免費咨詢熱線:

          一篇文章帶你了解HTML的網頁布局結構

          家好,我是IT共享者,人稱皮皮。這篇我們來講講CSS網頁布局。

          一、網頁布局

          網頁布局有很多種方式,一般分為以下幾個部分:頭部區域、菜單導航區域、內容區域、底部區域


          1. 頭部區域

          頭部區域位于整個網頁的頂部,一般用于設置網頁的標題或者網頁的 logo:

          <!DOCTYPE html>
          <html>
          <head>
          <meta charset="utf-8">
          <title>CSS 項目(runoob.com)</title>
          <meta name="viewport" content="width=device-width, initial-scale=1">
          <style>
          body {
            margin: 0;
          }
          
          
          /* 頭部樣式 */
          .header {
            background-color: #f1f1f1;
            padding: 20px;
            text-align: center;
          }
          </style>
          </head>
          <body>
          
          
          <div class="header">
            <h1>頭部區域</h1>
          </div>
          
          
          </body>
          </html>


          2. 菜單導航區域

          菜單導航條包含了一些鏈接,可以引導用戶瀏覽其他頁面:

          /* 導航條 */
          .topnav {
            overflow: hidden;
            background-color: #333;
          }
           
          /* 導航鏈接 */
          .topnav a {
            float: left;
            display: block;
            color: #f2f2f2;
            text-align: center;
            padding: 14px 16px;
            text-decoration: none;
          }
           
          /* 鏈接 - 修改顏色 */
          .topnav a:hover {
            background-color: #ddd;
            color: black;
          }

          3. 內容區域

          內容區域一般有三種形式:

          • 1 列:一般用于移動端。
          • 2 列:一般用于平板設備。
          • 3 列:一般用于 PC 桌面設備。

          不相等的列

          不相等的列一般是在中間部分設置內容區域,這塊也是最大最主要的,左右兩次側可以作為一些導航等相關內容,這三列加起來的寬度是 100%。

          例:

          .column {
            float: left;
          }
           
          /* 左右側欄的寬度 */
          .column.side {
            width: 25%;
          }
           
          /* 中間列寬度 */
          .column.middle {
            width: 50%;
          }
           
          /* 響應式布局 - 寬度小于600px時設置上下布局 */
          @media screen and (max-width: 600px) {
            .column.side, .column.middle {
              width: 100%;
            }
          }
          
          

          4. 底部區域

          底部區域在網頁的最下方,一般包含版權信息和聯系方式等。

          .footer {
            background-color: #F1F1F1;
            text-align: center;
            padding: 10px;
          }


          二、響應式網頁布局

          通過以上等學習我們來創建一個響應式等頁面,頁面的布局會根據屏幕的大小來調整:

          案例

          <!DOCTYPE html>
          <html>
          <head>
          <meta charset="utf-8">
          <title>項目</title>
          <style>
          * {
            box-sizing: border-box;
          }
           
          body {
            font-family: Arial;
            padding: 10px;
            background: #f1f1f1;
          }
           
          /* 頭部標題 */
          .header {
            padding: 30px;
            text-align: center;
            background: white;
          }
           
          .header h1 {
            font-size: 50px;
          }
           
          /* 導航條 */
          .topnav {
            overflow: hidden;
            background-color: #333;
          }
           
          /* 導航條鏈接 */
          .topnav a {
            float: left;
            display: block;
            color: #f2f2f2;
            text-align: center;
            padding: 14px 16px;
            text-decoration: none;
          }
           
          /* 鏈接顏色修改 */
          .topnav a:hover {
            background-color: #ddd;
            color: black;
          }
           
          /* 創建兩列 */
          /* Left column */
          .leftcolumn {   
            float: left;
            width: 75%;
          }
           
          /* 右側欄 */
          .rightcolumn {
            float: left;
            width: 25%;
            background-color: #f1f1f1;
            padding-left: 20px;
          }
           
          /* 圖像部分 */
          .fakeimg {
            background-color: #aaa;
            width: 100%;
            padding: 20px;
          }
           
          /* 文章卡片效果 */
          .card {
            background-color: white;
            padding: 20px;
            margin-top: 20px;
          }
           
          /* 列后面清除浮動 */
          .row:after {
            content: "";
            display: table;
            clear: both;
          }
           
          /* 底部 */
          .footer {
            padding: 20px;
            text-align: center;
            background: #ddd;
            margin-top: 20px;
          }
           
          /* 響應式布局 - 屏幕尺寸小于 800px 時,兩列布局改為上下布局 */
          @media screen and (max-width: 800px) {
            .leftcolumn, .rightcolumn {   
              width: 100%;
              padding: 0;
            }
          }
           
          /* 響應式布局 -屏幕尺寸小于 400px 時,導航等布局改為上下布局 */
          @media screen and (max-width: 400px) {
            .topnav a {
              float: none;
              width: 100%;
            }
          }
          </style>
          </head>
          <body>
          
          
          <div class="header">
            <h1>我的網頁</h1>
            <p>重置瀏覽器大小查看效果。</p>
          </div>
          
          
          <div class="topnav">
            <a href="#">鏈接</a>
            <a href="#">鏈接</a>
            <a href="#">鏈接</a>
            <a href="#" style="float:right">鏈接</a>
          </div>
          
          
          <div class="row">
            <div class="leftcolumn">
              <div class="card">
                <h2>文章標題</h2>
                <h5>xx 年xx月 xx日</h5>
                <div class="fakeimg" style="height:200px;"><img src="img/bird.png"></div>
                <p>文本...</p>
                <p>當熱誠變成習慣,恐懼和憂慮即無處容身。缺乏熱誠的人也沒有明確的目標。熱誠使想象的輪子轉動。一個人缺乏熱誠就象汽車沒有汽油。
                善于安排玩樂和工作,兩者保持熱誠,就是最快樂的人。熱誠使平凡的話題變得生動。!</p>
              </div>
              <div class="card">
                <h2>文章標題</h2>
                <h5>xx 年 xx 月xx日</h5>
                <div class="fakeimg" style="height:200px;"><img src="img/border.png"></div>
                <p>文本...</p>
                <p>一切事無法追求完美,唯有追求盡力而為。這樣心無壓力,出來的結果反而會更好!</p>
              </div>
            </div>
            <div class="rightcolumn">
              <div class="card">
                <h2>關于我</h2>
                <div class="fakeimg" style="height:100px;"></div>
                <p>6666</p>
              </div>
              <div class="card">
                <h3>熱門文章</h3>
                <div class="fakeimg"><img src="img/fy2_wp.png">\</div>
              
              </div>
              <div class="card">
                <h3>關注我</h3>
                <p>本站發布的系統與軟件僅為個人學習測試使用,請在下載后24小時內刪除,
                不得用于任何商業用途,否則后果自負,請支持購買正版軟件!如侵犯到您的權益,請及時通知我們,我們會及時處理。
          
          
          聲明:為非贏利性網站 不接受任何贊助和廣告。</p>
              </div>
            </div>
          </div>
          
          
          <div class="footer">
            <h2>底部區域</h2>
          </div>
          
          
          </body>
          </html>


          三、總結

          本文主要介紹了Html的網頁布局結構,如何去了解網絡的布局,介紹了常見的移動設備的三種網頁模式,最后通過一個小項目,總結之前講解的內容。

          代碼很簡單,希望可以幫助你學習。

          著攜帶設備的越來越普及,移動端項目會越來越多的接觸。所以想給大家介紹一下移動端適配那點事。#前端#


          像素(Pel, pixel, pictureelement)


          手機物理像素點


          每個像素都是由三原色組成的單元。

          1080*1920就是橫向1080 縱向1920個物理像素點

          隨著手機發展 從 720p 1080p 到現在的 2k 4k,邏輯上如果手機分辨率翻倍,豈不是之前的網頁都縮小成一半了,不能迭代一次開發一次吧。 為了解決這個問題,就引申出 邏輯分辨率 的概念了

          邏輯分辨率(設備獨立像素)

          設備獨立像素(Density-independent Pixel, DIP) 又稱密度無關像素。這個點代表一個可以由程序使用的虛擬像素。就比如 以前 360p 屏幕(寬360個物理像素 高640個物理像素) 的時候,你的 1px(一個邏輯分辨率) 定位一個 物理像素點。等到了 720p(寬720個物理像素 高1280個物理像素) 的時候 1px 定位 2*2個物理像素點


          程序虛擬像素與物理像素的對應關系


          PPI超過326的屏幕就是 視網膜屏幕(Retina)#iPhone#

          PPI計算方法

          設備像素比(Device Pixel Ratio, DPR)


          設備像素圖


          上面設備列表圖中的 Dpr算法:

          設備像素比(DPR) = 物理像素(DP) / 設備獨立像素(DIP)

          這樣關系就清楚了很多,通俗的說 1個css程序像素占用多少設備像素

          這個數值一般都用在多倍圖中,就是UI切圖,經常會有一倍圖,二倍圖(@2x),三倍圖(@3x)。

          因為圖片也是由像素點組成的,如果Dpr為3100*100px 的img 元素,就應該放入一張實際寬高 300*300 的圖片,這樣才能清楚的展示。如果放入100*100 的圖片,沒有占滿的像素點,會通過算法去取附近點的顏色,圖就會模糊。放600*600 的圖,多出的像素點會通過算法取平均色,圖就會鈍化。

          Viewport(視口)

          一般認為 移動設備上有 三個 viewport

          1. layout viewport

          移動端瀏覽器的默認布局視口, 可以通過 document.documentElement.clientWidth 來獲取。

          移動設備流行之前,pc網頁大行其道,一開始為了讓所有網站正常顯示,移動端瀏覽器就決定默認情況下把viewport 設為一個較寬的值(980px)。這樣pc端的網站也可以在手機上正常顯示。

          1. visual viewport

          代表 瀏覽器可視區域的大小,可以通過 window.visualViewport 來獲取

          1. ideal viewport

          最理想的 viewport ,寬高等于設備屏幕的物理寬高,剔除了分辨率的干擾,針對同一 ideal viewport 設備開發的網站,都將完美呈現。

          理想視口可以 用過 meta標簽去實現

          <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no,viewport-fit=cover">

          寬度等于設備寬度,初始頁面縮放1倍(就是不縮放),最小最大縮放1倍,禁止用戶縮放

          最后這個 viewport-fit=cover 是針對iphone劉海屏的,劉海跟ios底部操作欄會使網頁不能全屏

          淘寶移動端meta設置

          <meta name="App-Config" content="fullscreen=yes,useHistoryState=yes,transition=yes">
          <meta content="yes" name="apple-mobile-web-app-capable">
          <meta content="yes" name="apple-touch-fullscreen">
          <meta content="telephone=no,email=no" name="format-detection">
          <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no,viewport-fit=cover">

          移動端適配歷史

          原始不適配 -- viewport控制縮放 -- 媒體查詢 -- 響應式布局 -- 移動端分流 -- Rem

          移動端分流

          移動端分流原理,主要是通過 UA(User Agent用戶代理)去判斷上網設備, 比如移動端輸入 pc網址 https://www.toutiao.com/,就會跳轉到 https://m.toutiao.com/ (移動端適配地址)。

          附上判斷的js代碼

          function IsPC() {
              var userAgentInfo = navigator.userAgent;
              var Agents = ["Android", "iPhone",
                          "SymbianOS", "Windows Phone",
                          "iPad", "iPod"];
              var flag = true;
              for (var v = 0; v < Agents.length; v++) {
                  if (userAgentInfo.indexOf(Agents[v]) > 0) {
                      flag = false;
                      break;
                  }
              }
              return flag;
          }

          Rem

          現在項目適配使用的是 vw + rem

          rem(font size of the root element)是指相對于根元素(html)字體大小的單位。
          vw是可視窗口的寬度單位,不受設備分辨率影響, width: 1vw 等于 width: 1%。倘若 瀏覽器寬1000px,1vw = 10px

          移動設備的原型圖一般都是二倍圖(寬750px)

          者:RickyLong

          出處:https://segmentfault.com/a/1190000019241607


          主站蜘蛛池模板: 亚洲一区二区三区在线| 久久一区二区三区99| 高清在线一区二区| 无码一区二区三区亚洲人妻| 久久精品无码一区二区WWW| 亚洲av不卡一区二区三区| 国产吧一区在线视频| 日韩一区二区视频| 精品乱人伦一区二区| 肉色超薄丝袜脚交一区二区| 国产精品成人免费一区二区| 在线观看一区二区三区av| 一区二区亚洲精品精华液| 亚洲国产精品一区二区第一页免| 激情综合一区二区三区| 国产成人亚洲综合一区| 日韩人妻无码一区二区三区综合部| 91福利国产在线观一区二区| 国产AV一区二区精品凹凸| 91精品一区二区| 国产在线aaa片一区二区99| 国产精品无码一区二区在线观| 香蕉视频一区二区| 精品一区二区AV天堂| 亚洲国产系列一区二区三区| 日韩精品人妻一区二区中文八零| 无码中文人妻在线一区二区三区| 日韩电影一区二区| 大屁股熟女一区二区三区| 在线一区二区三区| 毛片一区二区三区无码| 激情一区二区三区| 中文字幕精品亚洲无线码一区| 国产一区二区精品久久91| 中文字幕乱码一区久久麻豆樱花| 无码精品视频一区二区三区| 精品一区二区在线观看| 中文人妻av高清一区二区| 中文字幕久久亚洲一区| 韩国福利一区二区三区高清视频 | 中文字幕一区二区三区精彩视频|