日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

html移动端怎么做城市选择,移动端页面单位的选择(px, em, rem, vw)

發布時間:2024/9/19 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。