前端設置寬高時height: 100% 和 100vh 的區別


1.em

在做手機端的時候經常會用到的做字體的尺寸單位

說白了 em就相當於“倍”,比如設置當前的div的字體大小為1.5em,則當前的div的字體大小為:當前div繼承的字體大小*1.5

但是當div進行嵌套的時候,em始終是按照當前div繼承的字體大小來縮放,參照后面的例子。

2.rem

這里的r就是root的意思,意思是相對於根節點來進行縮放,當有嵌套關系的時候,嵌套關系的元素的字體大小始終按照根節點的字體大小進行縮放。

參照后面給的demo

3.vh

vh就是當前屏幕可見高度的1%,也就是說

height:100vh == height:100%;

但是有個好處是當元素沒有內容時候,設置height:100%該元素不會被撐開,

但是設置height:100vh,該元素會被撐開屏幕高度一致。

4.vw

vw就是當前屏幕寬度的1%

補充一句,當設置width:100%,被設置元素的寬度是按照父元素的寬度來設置,

但是100vw是相對於屏幕可見寬度來設置的,所以會出現50vw 比50%大的情況

 

<!DOCTYPE html>
<html lang="Zh-cn">
<head>
<meta charset="UTF-8">
<title>恭賀新春</title>
</head>
<style type="text/css" media="screen">
html{
font-size: 14px;
}
.em,
.em > .em-son,
.em > .em-son > .em-grandson {
font-size: 1.2em;
}
.rem,
.rem > .rem-son,
.rem > .rem-son > .rem-grandson {
font-size: 1.2rem;
}
.rem-box {
background: #d60b3b;
width:10rem;
height: 10rem;
color: #fff;
text-align: center;
line-height:5rem;
}
.vhvw-box {
background: #d60b3b;
width:50vw;
height: 50vh;
color: #fff;
text-align: center;
line-height:25vh;
}
</style>
<body>
<h1>em 繼承父元素的字體大小,來變大或變小,多層嵌套字體變化</h1>
<div class="em">
<br>字體大小 1.2 * 14(父元素body) = 16px</br>
<div class="em-son">
<br>字體大小 1.2 * 16(父元素em) = 20px</br>
<div class="em-grandson">
<br>字體大小 1.2 * 20(父元素em-son) = 24px</br>
</div>
</div>
</div>
<br>
<h1>rem 繼承根節點元素的字體大小,來變大或變小,多層嵌套字體不變化</h1>
<div class="rem">
<br>字體大小 1.2 * 14(根節點html) = 16px</br>
<div class="rem-son">
<br>字體大小 1.2 * 14(根節點html) = 16px</br>
<div class="rem-grandson">
<br>字體大小 1.2 * 14(根節點html) = 16px</br>
</div>
</div>
</div>
<br>
<h1>rem 也可作為固定長度單位設置寬高等</h1>
<div class="rem-box">
寬:14 * 10 = 140px<br>
高:14 * 10 = 140px
</div>
<br>
<h1>vh,vw 屏幕可見區域的高度,寬度的1%</h1>
<div class="vhvw-box">
<br>寬:屏幕寬度的50%</br>
<br>高:屏幕高度的50%</br>
</div>
</body>
</html>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM