html移动端怎么做城市选择,移动端页面单位的选择(px, em, rem, vw)
px, em, rem的區別:
px:絕對字體大小
em:基于一個基數來計算出相對字體大小。(移動端用的少)
rem:基于根節點(html)的字體大小來計算。
vw:可視區寬度單位。1vw等于可視區寬度的百分之一。
em
跟字體大小有關
#container{
font-size: 20px; /*1em = 20px*/
width: 5em; /* width = 20 * 5px*/
height: 5em; /* height = 20 * 5px*/
}
#box{
width: 20em; /* width = 20 * 20px*/
height: 20em; /* height = 20 * 20px*/
}
l瀏覽器默認字體是16px,這里父級字體大小是20px,所以#box里的1em = 20px;即#box是一個長寬均為400px的正方形
vw
vw單位和百分比很相似,不同的是vw的值對所有的元素都一樣,與他們父元素或父元素的寬度無關
以414寬度的屏幕為例
做一個200 * 200的盒子
html {
font-size: 4vm; /* 4 * 4.14 = 16.56*/
}
#box{
width: 12.077294685990339rem; /* 200 / 16.56 = 12.077294685990339*/
height: 12.077294685990339rem;
}
rem
rem 的字體大小直接與html的字體大小有關。默認是16px = 1rem;
我們可以給html設置10px的字體大小
html {
font-size: 10px /*即: 10px = 1rem*/
}
大多數瀏覽器(不包括ie8以下)都支持rem單位,如果想都支持,可以
html{
font-size: 10px /* 或者 font-size: 62.5%*/ /* 10/16 = 62.5%*/
}
p{ font-size:15px; font-size:1.5rem}
可是這樣在實際開發中,換算起來非常麻煩,所以,我們對此進行了修改,根據手機屏幕的大小,做了自適應。
首先,我們在html的head里邊設置html的font-size.
html{
font-size: 100px !important;
}
然后根據設計圖的尺寸和手機屏幕的尺寸進行換算。
// designWidth: 設計稿的實際寬度值
// maxWidth: 制作稿的最大寬度值
;(function(designWidth, maxWidth){
var doc = document,
win = window,
docEl = doc.documentElement,
remStyle = doc.createElement("style"),
tid;
function refreshRem() {
var width = docEl.getBoundingClientRect().width;
maxWidth = maxWidth || 540;
width > maxWidth && (width = maxWidth);
var rem = width * 100 / designWidth;
remStyle.innerHTML = 'html{font-size:' + rem + 'px}';
}
if (docEl.firstElementChild) {
docEl.firstElementChild.appendChild(remStyle);
} else {
var wrap = doc.createElement("div");
wrap.appendChild(remStyle);
doc.write(wrap.innerHTML);
wrap = null;
}
// 要等viewport設置好后才能執行refreshRem,不然會執行2次
refreshRem();
win.addEventListener("resize", function() {
clearTimeout(tid); // 防止執行2次
tid = setTimeout(refreshRem, 300)
},false)
win.addEventListener("pageshow", function(e){
if(e.persisted) {
clearTimeout(tid)
tid = setTimeout(refreshRem, 300)
}
}, false)
if (doc.readyState === "complete"){
doc.body.style.fontSize = "16px"
} else {
doc.addEventListener("DOMContentLoaded",function(e){
doc.body.style.fontSize = "16px"
}, false)
}
})(750, 750)
總結
以上是生活随笔為你收集整理的html移动端怎么做城市选择,移动端页面单位的选择(px, em, rem, vw)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html5页面被键盘挡住,HTML5 虚
- 下一篇: phonegap html 缩放,pho