整合營銷服務商

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

          免費咨詢熱線:

          20、rem 適配方法如何計算 HTML 跟字號及適配方案?(必會)

          用方案

          1、設置根 font-size:625%(或其它自定的值,但換算規則 1rem 不能小于 12px)

          2、通過媒體查詢分別設置每個屏幕的根 font-size

          3、CSS 直接除以 2 再除以 100 即可換算為 rem

          優:有一定適用性,換算也較為簡單。

          劣:有兼容性的坑,對不同手機適配不是非常精準;需要設置多個媒體查詢來適應不同手機,單某款手機尺寸不在設置范圍之內,會導致無法適配。

          網易方案

          1、拿到設計稿除以 100,得到寬度 rem 值

          2、通過給 html 的 style 設置 font-size,把 1 里面得到的寬度 rem 值代入x document.documentElement.style.fontSize =document.documentElement.clientWidth / x + ‘px‘;

          3、設計稿 px/100 即可換算為 rem

          優:通過動態根 font-size 來做適配,基本無兼容性問題,適配較為精準,換算簡便。

          劣:無 viewport 縮放,且針對 iPhone 的 Retina 屏沒有做適配,導致對一些手機的適配不是很到位。

          手淘方案

          1、拿到設計稿除以 10,得到 font-size 基準值

          2、引入 flexible

          3、不要設置 meta 的 viewport 縮放值

          4、設計稿 px/ font-size 基準值,即可換算為 rem

          優:通過動態根 font-size、viewpor、dpr 來做適配,無兼容性問題,適配精準。

          劣:需要根據設計稿進行基準值換算,在不使用 sublime text 編輯器插件開發時,單位計算復雜。

          em 適配方法是一種常用的響應式布局方法,它通過使用 rem 單位來設計頁面布局,使得當屏幕大小變化時,頁面布局能夠自適應調整。

          要計算 HTML 根字號及適配方案,可以按照以下步驟進行:

          1.確定根字號:根字號是指頁面上第一個非標題元素的寬度,通常是一個固定的數字,例如 100 或 200??梢酝ㄟ^調試和觀察頁面布局來確定根字號。

          2.計算布局寬度:通過使用 width: 100%; 來設置根元素的寬度,使其占據整個頁面的寬度。

          3.確定適配方案:根據根字號和屏幕大小,可以選擇不同的適配方案。例如,當屏幕寬度小于等于 750px 時,可以使用 100% 寬度的根元素;當屏幕寬度大于 750px 時,可以使用 750px 寬度的根元素。

          4.編寫 CSS 樣式:根據適配方案,編寫相應的 CSS 樣式,控制根元素的寬度和布局。

          以下是一個示例代碼:

          <!DOCTYPE html>  
          <html>  
          <head>  
            <meta name="viewport" content="width=device-width, initial-scale=1.0">  
            <style>  
              /* 確定根字號 */  
              body {  
                font-size: 16px;  
              }  
                
              /* 計算布局寬度 */  
              @media screen and (max-width: 750px) {  
                body {  
                  font-size: 100px;  
                  width: 100%;  
                }  
              }  
                
              /* 適配方案:當屏幕寬度大于 750px 時,使用 750px 寬度的根元素 */  
              @media screen and (min-width: 751px) {  
                body {  
                  font-size: 75px;  
                  width: 750px;  
                }  
              }  
            </style>  
          </head>  
          <body>  
            <h1>Hello World!</h1>  
          </body>  
          </html>  
          

          在上面的代碼中,@media 查詢被用來根據屏幕大小來選擇不同的適配方案。當屏幕寬度小于等于 750px 時,使用 100% 寬度的根元素;當屏幕寬度大于 750px 時,使用 750px 寬度的根元素。同時,body 元素的 font-size 被定義為 16px,作為根元素的參考大小。

          需要注意的是,rem 適配方法只適用于文本內容為主的頁面,對于圖片、圖標等非文本元素,應該根據實際情況選擇不同的適配方案。

          總結通用方法:

          1、設置根 font-size:625%(或其它自定的值,但換算規則 1rem 不能小于 12px)

          2、通過媒體查詢分別設置每個屏幕的根 font-size

          3、CSS 直接除以 2 再除以 100 即可換算為 rem

          優:有一定適用性,換算也較為簡單

          劣:有兼容性的坑,對不同手機適配不是非常精準;需要設置多個媒體查詢來適應不同手機,單某款手機尺寸不在設置范圍之內,會導致無法適配

          #挑戰30天在頭條寫日記#

          以往的頁面布局中,可能我們使用像素(px)這個長度單位是最多的。但是隨著Web技術的發展,出現了移動端頁面,因此需要找尋既適應PC端又需要在移動端完美展示的解決方案,這樣對于網頁的設計就有了更高的要求,于是響應式布局也出現了,它的出現使得我們設計的網頁可以適配多種設備,例如:電腦、手機、平板等等。如果沒有合理的使用長度單位,那么不同設備之間的展示效果會完全不一樣,甚至可能會造成頁面錯亂,所以,也深入的了解了一下相關的長度單位在頁面中的作用,在這里做了一下總結。

          首先,我從這次的學習中了解到CSS單位中的長度單位分為:

          • 相對長度
          • 絕對長度

          具體情況如下:

          CSS長度單位

          下面,我根據我學到的內容,我梳理了一下重點的幾個知識點(px,em,rem,vw,vh),現在給大家分享一下。

          常用的一些CSS長度單位:

          1. px:頁面或元素的實際尺寸,這個我們用的應該是最多的,屬于絕對單位;
          2. em:在 font-size 中使用是相對于父元素的字體大小,在其他屬性中使用是相對于自身的字體大??;
          3. rem:以根節點的字號大小為基準的,其中r可以理解為root(根),加上em,可以理解為以根節點HTML的字體大小來計算;
          4. vw:視口寬度,1vw = 1%視窗寬度;
          5. vh:視口高度,1vh = 1%視窗高度;
          6. vmin:vw和vh中較小的值;
          7. vmax:vw和vh中較大的值;

          了解上述的基本單位,下面是我學習中的寫的一些demo,我把效果分享給大家看看。

          • px

          html結構如下:

          <div>
            Hello World!
            <br>
            <span>你好,世界!</span>
          </div>

          css如下:

          div {
            font-size: 16px;
          }
          div span {
             font-size: 24px;
          }
          • 效果圖:

          div內的元素設置了字體大小為16px,span里的字體設置了24px,span標簽的樣式把父級的div字號大小給覆蓋了。從這個案例我們也可以得出一個結論:字號是可以從父級繼承的

          • em

          通常在瀏覽器中,瀏覽器的默認字體大小為16px,即:1em = 16px,那么,根據該值,可以推算出0.75em = 12px,0.625em = 10px。

          html結構如下:

          <h2>Hello World!
            <br>
            <span>PHP是世界上最好的語言!</span>
          </h2>

          css如下:

          <style>
            html {
              font-size: 1.25em;
            }
            h2 {
              font-size: 1.5rem;
            }
            h2 span {
              font-size: 1rem;
            }
          </style>
          • 效果圖:


          html根元素字號

          上面的案例設置了html根元素的字號大小為1.25em,此時可以換算出當前情況下1em的實際大小為:1.25em * 16 = 20px,因此,1em = 20px,從上面的圖例中的控制臺里也可以看到,確實是20px,那么h2字號的大小應該是:1.5 * 20 = 30px,效果如圖:

          1.25em

          h2下的span標簽的字號大小應該是1em * 20 = 20px

          1em

          當前在html根元素設置了字號(font-size),可以看做是一個固定值,它后面的所有子元素如果想用html的字號,就沒有辦法再使用em了,因為em它是可以被繼承的,從MDN上我們也可以了解到,它的子元素的字體大小是相對于父級元素而言的,此時我們可以使用一個新的屬性來來使用html根元素的字號值,這個屬性即:rem。

          • rem

          同樣,我們還是先設置一個根元素的字號,現有如下的html結構:

          <div>
            Hello World!
            <br>
            <span>你好,世界!</span>
          </div>

          css如下:

          <style>
            html {
              font-size: 0.75em;
            }
            div {
              font-size: 2rem;
            }
            div span {
              font-size: 3rem;
            }
          </style>

          在前面,我們已經知道了,瀏覽器的默認字體大小是16px,此時聲明了根元素的font-size為0.75em,那么0.75 * 16 = 12px,此時1em = 12px = 1rem,設置完根元素的字號之后,后面的字體就可以直接使用rem即可。

          根據上面的div字號大小,我們可以知道“Hello World”的字號大小為:2rem * 12 = 24px,效果圖如下:

          “Hello World”的字號大小

          那么,span內部的字號大小為:3rem * 12 = 36px,效果圖如下:

          span內部的字號大小

          由這個案例就可以知道,rem的字號大小都是相對于根元素(html)的。

          同時,還有一點需要注意的是,在使用邊框(border)屬性時,不要用rem/em,一定要用px,否則邊框的大小也會隨著根元素字號的改變而變粗或變細。

          以上就是我學習em/rem/vh/vw這些知識當中的案例,搞清楚這些屬性的區別,對于以后學習響應式布局,會方便很多。


          主站蜘蛛池模板: 中文字幕乱码亚洲精品一区 | 日韩精品无码中文字幕一区二区| 午夜视频久久久久一区| 波多野结衣免费一区视频| 国产一区二区三区免费看| 国产一区二区三区小说| 国产日本一区二区三区| 亚洲AV午夜福利精品一区二区 | 亚洲日本一区二区三区| 亚洲国产精品第一区二区三区| 麻豆AV无码精品一区二区| 亚洲视频一区调教| 2021国产精品一区二区在线| 日韩免费观看一区| 亚洲国产精品一区二区久久hs| 一区二区三区福利视频| 国产三级一区二区三区| 国产欧美色一区二区三区| 亚洲性色精品一区二区在线| 97久久精品无码一区二区| 人妻少妇精品视频一区二区三区| 亚洲一区二区影院| 91精品国产一区| 精品人妻系列无码一区二区三区| 色综合视频一区中文字幕| 色综合视频一区中文字幕| 日本精品视频一区二区三区| 精品中文字幕一区在线| 内射白浆一区二区在线观看 | 日本精品一区二区三区在线视频一| 尤物精品视频一区二区三区 | 乱码精品一区二区三区| 91一区二区视频| 国产成人午夜精品一区二区三区| 国产小仙女视频一区二区三区| 日本免费一区尤物| 精品乱子伦一区二区三区高清免费播放 | 久久一区不卡中文字幕| 精品国产乱子伦一区二区三区 | 精品成人乱色一区二区| 精品一区狼人国产在线|