亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > CSS > 正文

css3新單位vw、vh的使用教程

2024-07-11 08:59:07
字體:
來源:轉載
供稿:網友

響應式布局的單位我們第一時間會想到通過rem單位來實現適配,但是它還需要內嵌一段腳本去動態計算跟元素大小。

比如:

(function (doc, win) {  let docEl = doc.documentElement  let resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize'  let recalc = function () {    var clientWidth = docEl.clientWidth    if (!clientWidth) return    docEl.style.fontSize = 14 * (clientWidth / 320) + 'px'  }  if (!doc.addEventListener) return  win.addEventListener(resizeEvt, recalc, false)  doc.addEventListener('DOMContentLoaded', recalc, false)})(document, window)

那有沒有一個單位不需要JS和CSS耦合在一起的單位?答案是有的,就是vw/vh。

vw = view widthvh = view height

這兩個單位是CSS3引入的,以上稱為視口單位允許我們更接近瀏覽器窗口定義大小。

vw、vh、vmin、vmax 的含義

(1)vw、vh、vmin、vmax 是一種視窗單位,也是相對單位。它相對的不是父節點或者頁面的根節點。而是由視窗(Viewport)大小來決定的,單位 1,代表類似于 1%。

視窗(Viewport)是你的瀏覽器實際顯示內容的區域—,換句話說是你的不包括工具欄和按鈕的網頁瀏覽器。

(2)具體描述如下:

  • vw:視窗寬度的百分比(1vw 代表視窗的寬度為 1%)
  • vh:視窗高度的百分比
  • vmin:當前 vw 和 vh 中較小的一個值
  • vmax:當前 vw 和 vh 中較大的一個值 
  •  

vw、vh 與 % 百分比的區別

(1)% 是相對于父元素的大小設定的比率,vw、vh 是視窗大小決定的。

(2)vw、vh 優勢在于能夠直接獲取高度,而用 % 在沒有設置 body 高度的情況下,是無法正確獲得可視區域的高度的,所以這是挺不錯的優勢。

vmin、vmax 用處

做移動頁面開發時,如果使用 vw、wh 設置字體大?。ū热?5vw),在豎屏和橫屏狀態下顯示的字體大小是不一樣的。

由于 vmin 和 vmax 是當前較小的 vw 和 vh 和當前較大的 vw 和 vh。這里就可以用到 vmin 和 vmax。使得文字大小在橫豎屏下保持一致。

瀏覽器兼容性

(1)桌面 PC

  • Chrome:自 26 版起就完美支持(2013年2月)
  • Firefox:自 19 版起就完美支持(2013年1月)
  • Safari:自 6.1 版起就完美支持(2013年10月)
  • Opera:自 15 版起就完美支持(2013年7月)
     

IE:自 IE10 起(包括 Edge)到現在還只是部分支持(不支持 vmax,同時 vm 代替 vmin)

(2)移動設備

Android:自 4.4 版起就完美支持(2013年12月)

iOS:自 iOS8 版起就完美支持(2014年9月)
 

如何利用視口單位適配頁面

僅使用vw作為CSS單位

1.根據設計稿的尺寸轉換為vw單位(SASS函數編譯)

//iPhone 6尺寸作為設計稿基準$vm_base: 375;@function vm($px) {    @return ($px / 375) * 100vw;}

2.無論是文本還是布局高寬、間距等都使用 vw

< div class="mod_nav">            < nav class="mod_nav_list" v-for="n in 5">                < a href="#" class="mod_nav_list_item">                    < span class="mod_nav_list_item_logo">                < img src="http://jdc.jd.com/img/80">                    < /span>                    < p class="mod_nav_list_item_name">導航入口< /p>                < /a>            < /nav>< /div>.mod_nav {    background: #fff;    &_list {        display: flex;        padding: vm(15) vm(10) vm(10);        &_item {            flex: 1;            text-align: center;            font-size: vm(10);            &_logo {                display: block;                margin: 0 auto;                width: vm(40);                height: vm(40);                img {                    display: block;                    margin: 0 auto;                    max-width: 100%;                }            }            &_name {                margin-top: vm(2);            }        }    }}

最優做法——搭配vw和rem

使用vm作為css單位代碼量確實減少很多,但是你會發現它是利用視口單位實現,依賴于視口大小而自動縮放,失去了最大最小寬度的限制。

于是,聯想到不如結合rem單位來實現布局?rem 彈性布局的核心在于動態改變根元素大小,那么我們可以通過:·

給根元素大小設置隨著視口變化而變化的 vw 單位,這樣就可以實現動態改變其大小。

限制根元素字體大小的最大最小值,配合 body 加上最大寬度和最小寬度

這樣我們就能夠實現對布局寬度的最大最小限制。因此,根據以上條件,我們可以得出代碼實現如下:

// rem 單位換算:定為 75px 只是方便運算,750px-75px、640-64px、1080px-108px,如此類推$vm_fontsize: 75; // iPhone 6尺寸的根元素大小基準值@function rem($px) {     @return ($px / $vm_fontsize ) * 1rem;}// 根元素大小使用 vw 單位$vm_design: 750;html {    font-size: ($vm_fontsize / ($vm_design / 2)) * 100vw;    // 同時,通過Media Queries 限制根元素最大最小值    @media screen and (max-width: 320px) {        font-size: 64px;    }    @media screen and (min-width: 540px) {        font-size: 108px;    }}// body 也增加最大最小寬度限制,避免默認100%寬度的 block 元素跟隨 body 而過大過小body {    max-width: 540px;    min-width: 320px;}

總結

以上所述是小編給大家介紹的css3新單位vw、vh的使用教程,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲日本中文字幕免费在线不卡| 国内精品模特av私拍在线观看| 亚洲人午夜精品免费| 亚洲黄在线观看| 国产丝袜一区二区三区| 久久人人爽人人爽人人片亚洲| 久久久精品一区二区| 性欧美长视频免费观看不卡| 亚洲精品美女在线| 77777亚洲午夜久久多人| 欧美激情视频一区二区| 97精品一区二区三区| 成人国产在线激情| 日韩在线激情视频| 国产一区二区三区视频免费| 亚洲bt天天射| 2020欧美日韩在线视频| 欧美国产精品人人做人人爱| 精品激情国产视频| 欧美久久精品一级黑人c片| 国产精品白嫩美女在线观看| 亚洲欧美在线免费观看| 久久久久久久久久久亚洲| 亚洲自拍偷拍在线| 欧美另类99xxxxx| 午夜精品一区二区三区视频免费看| 美日韩丰满少妇在线观看| 97久久国产精品| 欧美黄网免费在线观看| 一区二区三区精品99久久| 日韩一区av在线| 日韩大胆人体377p| 日韩欧美视频一区二区三区| 正在播放欧美一区| 北条麻妃一区二区三区中文字幕| 国产精品jizz在线观看麻豆| 成人在线播放av| 成人信息集中地欧美| 中文字幕亚洲在线| 久久久久久中文字幕| 欧美噜噜久久久xxx| 久久天天躁狠狠躁老女人| 亚洲第一精品夜夜躁人人躁| 在线观看中文字幕亚洲| 亚洲一区二区自拍| 国产免费亚洲高清| 精品久久中文字幕| 国产精品久久久久久久久免费看| 久久精品久久久久电影| 亚洲激情在线视频| 国色天香2019中文字幕在线观看| 91精品国产色综合久久不卡98| 亚洲国产97在线精品一区| 国产精品日日摸夜夜添夜夜av| 国产精品老女人视频| 色av吧综合网| 国产精品偷伦免费视频观看的| 中文字幕不卡av| 欧美成人精品在线视频| 久久久视频精品| 国产精品男人爽免费视频1| 国产美女被下药99| 精品国产欧美一区二区五十路| 91精品久久久久久久久青青| 国产女精品视频网站免费| 国产欧美精品一区二区三区-老狼| 91精品国产九九九久久久亚洲| 日本欧美爱爱爱| 久久精品国产一区二区三区| 日韩av免费网站| 欧美成人激情在线| 亚洲有声小说3d| 91极品视频在线| 欧美精品免费在线观看| 久久91亚洲人成电影网站| 欧美午夜性色大片在线观看| 午夜精品久久久久久久白皮肤| 亚洲性xxxx| 91精品国产高清| 色777狠狠综合秋免鲁丝| 久久影视三级福利片| 色多多国产成人永久免费网站| 久久福利视频导航| 亚洲美女自拍视频| 国产日韩在线观看av| 国产欧美日韩高清| 亚洲综合社区网| 成人久久久久久| 亚洲色图国产精品| 在线观看精品国产视频| 中文字幕亚洲欧美日韩在线不卡| 国产精品美女www爽爽爽视频| 久久久噜噜噜久久久| 国内外成人免费激情在线视频| 在线视频中文亚洲| 国外视频精品毛片| 亚洲最新在线视频| 日韩中文字幕免费| 成人在线视频网站| 91在线视频九色| 1769国内精品视频在线播放| 日韩美女视频在线观看| 色av中文字幕一区| 国产亚洲aⅴaaaaaa毛片| 91久久在线播放| 国产亚洲欧美日韩美女| 日韩一区二区在线视频| 91精品久久久久久久久| 国产视频精品免费播放| 精品亚洲精品福利线在观看| 91av视频在线观看| 夜夜躁日日躁狠狠久久88av| 久久久精品在线观看| 亚洲香蕉成视频在线观看| 国产精品成人一区二区三区吃奶| 性金发美女69hd大尺寸| 国产又爽又黄的激情精品视频| 亚洲国产成人在线播放| 国产日韩在线播放| 亚洲人高潮女人毛茸茸| 成人激情视频小说免费下载| 亚洲人成在线观看| 亚洲国产美女久久久久| 日韩成人在线网站| 日韩av在线直播| 国产欧美va欧美va香蕉在线| 久久久99久久精品女同性| 日韩天堂在线视频| 日韩成人av在线| 欧美一级高清免费| 国产精品高潮在线| 久久综合网hezyo| 成人午夜在线观看| 欧美电影免费观看电视剧大全| 欧美极品少妇xxxxⅹ喷水| 91午夜理伦私人影院| 国产精品一区二区久久国产| 欧美尤物巨大精品爽| 8x拔播拔播x8国产精品| 亚洲综合色激情五月| 久久久久久久999精品视频| 亚洲男人第一av网站| 欧美成人午夜视频| 亚洲精品99久久久久| 国产精品久久久久77777| 国产精品一香蕉国产线看观看| 国产日韩中文字幕| 亚洲xxxx妇黄裸体| 亚洲成人xxx| 久久伊人免费视频| 亚洲www在线观看| 欧美性感美女h网站在线观看免费| 久久精品视频在线观看| 国产精品久久久久久av福利| 日韩中文字幕免费视频| 日韩精品中文字幕在线| 欧美在线精品免播放器视频| 久久亚洲精品网站| 日韩视频免费在线观看| 日韩色av导航| 一区国产精品视频| 日韩毛片在线观看| 亚洲级视频在线观看免费1级| 亚洲国产中文字幕久久网|