国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 web前端 css教程 關(guān)于css3的單位vw和vh的使用

關(guān)于css3的單位vw和vh的使用

Jun 20, 2018 am 11:44 AM
css3 vh vw

這篇文章主要介紹了css3新單位vw、vh的使用教程,本文通過實例代碼給大家介紹vw、vh、vmin、vmax 的含義及vw、vh與%百分比的區(qū)別,感興趣的朋友一起看看吧

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

比如:

(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?width
vh?=?view?height

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

vw、vh、vmin、vmax 的含義

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

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

(2)具體描述如下:

  • vw:視窗寬度的百分比(1vw 代表視窗的寬度為 1%)

  • vh:視窗高度的百分比

  • vmin:當(dāng)前 vw 和 vh 中較小的一個值

  • vmax:當(dāng)前 vw 和 vh 中較大的一個值

vw、vh 與 % 百分比的區(qū)別

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

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

vmin、vmax 用處

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

由于 vmin 和 vmax 是當(dāng)前較小的 vw 和 vh 和當(dāng)前較大的 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)到現(xiàn)在還只是部分支持(不支持 vmax,同時 vm 代替 vmin)

(2)移動設(shè)備

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

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

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

僅使用vw作為CSS單位

1.根據(jù)設(shè)計稿的尺寸轉(zhuǎn)換為vw單位(SASS函數(shù)編譯)

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

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

< p 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">導(dǎo)航入口< /p>
????????????????< /a>
????????????< /nav>
< /p>
.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);
????????????}
????????}
????}
}

最優(yōu)做法——搭配vw和rem

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

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

給根元素大小設(shè)置隨著視口變化而變化的 vw 單位,這樣就可以實現(xiàn)動態(tài)改變其大小。

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

這樣我們就能夠?qū)崿F(xiàn)對布局寬度的最大最小限制。因此,根據(jù)以上條件,我們可以得出代碼實現(xiàn)如下:

//?rem?單位換算:定為?75px?只是方便運算,750px-75px、640-64px、1080px-108px,如此類推
$vm_fontsize:?75;?//?iPhone?6尺寸的根元素大小基準(zhǔn)值
@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?也增加最大最小寬度限制,避免默認(rèn)100%寬度的?block?元素跟隨?body?而過大過小
body?{
????max-width:?540px;
????min-width:?320px;
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,更多相關(guān)內(nèi)容請關(guān)注PHP中文網(wǎng)!

相關(guān)推薦:

關(guān)于CSS代碼如何書寫規(guī)范

以上是關(guān)于css3的單位vw和vh的使用的詳細(xì)內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

熱門話題

Laravel 教程
1600
29
PHP教程
1502
276
純CSS3怎么實現(xiàn)波浪效果?(代碼示例) 純CSS3怎么實現(xiàn)波浪效果?(代碼示例) Jun 28, 2022 pm 01:39 PM

純CSS3怎么實現(xiàn)波浪效果?本篇文章就來給大家介紹一下使用 SVG 和 CSS 動畫制作波浪效果的方法,希望對大家有所幫助!

巧用CSS實現(xiàn)各種奇形怪狀按鈕(附代碼) 巧用CSS實現(xiàn)各種奇形怪狀按鈕(附代碼) Jul 19, 2022 am 11:28 AM

本篇文章帶大家看看怎么使用 CSS 輕松實現(xiàn)高頻出現(xiàn)的各類奇形怪狀按鈕,希望對大家有所幫助!

css怎么隱藏元素但不占空間 css怎么隱藏元素但不占空間 Jun 01, 2022 pm 07:15 PM

兩種方法:1、利用display屬性,只需給元素添加“display:none;”樣式即可。2、利用position和top屬性設(shè)置元素絕對定位來隱藏元素,只需給元素添加“position:absolute;top:-9999px;”樣式。

css3如何實現(xiàn)鼠標(biāo)點擊圖片放大 css3如何實現(xiàn)鼠標(biāo)點擊圖片放大 Apr 25, 2022 pm 04:52 PM

實現(xiàn)方法:1、使用“:active”選擇器選中鼠標(biāo)點擊圖片的狀態(tài);2、使用transform屬性和scale()函數(shù)實現(xiàn)圖片放大效果,語法“img:active {transform: scale(x軸放大倍數(shù),y軸放大倍數(shù));}”。

原來利用純CSS也能實現(xiàn)文字輪播與圖片輪播! 原來利用純CSS也能實現(xiàn)文字輪播與圖片輪播! Jun 10, 2022 pm 01:00 PM

怎么制作文字輪播與圖片輪播?大家第一想到的是不是利用js,其實利用純CSS也能實現(xiàn)文字輪播與圖片輪播,下面來看看實現(xiàn)方法,希望對大家有所幫助!

css3怎么實現(xiàn)花邊邊框 css3怎么實現(xiàn)花邊邊框 Sep 16, 2022 pm 07:11 PM

在css中,可以利用border-image屬性來實現(xiàn)花邊邊框。border-image屬性可以使用圖片來創(chuàng)建邊框,即給邊框加上背景圖片,只需要將背景圖片指定為花邊樣式即可;語法“border-image: url(圖片路徑) 向內(nèi)偏移值 圖像邊界寬度 outset 是否重復(fù);”。

css3怎么設(shè)置動畫旋轉(zhuǎn)速度 css3怎么設(shè)置動畫旋轉(zhuǎn)速度 Apr 28, 2022 pm 04:32 PM

在css3中,可以利用“animation-timing-function”屬性設(shè)置動畫旋轉(zhuǎn)速度,該屬性用于指定動畫將如何完成一個周期,設(shè)置動畫的速度曲線,語法為“元素{animation-timing-function:速度屬性值;}”。

css3線性漸變可以實現(xiàn)三角形嗎 css3線性漸變可以實現(xiàn)三角形嗎 Apr 25, 2022 pm 02:47 PM

css3線性漸變可以實現(xiàn)三角形;只需創(chuàng)建一個45度的線性漸變,設(shè)置漸變色為兩種固定顏色,一個是三角形的顏色,另一個為透明色即可,語法“l(fā)inear-gradient(45deg,顏色值,顏色值 50%,透明色 50%,透明色 100%)”。

See all articles