这是我参与8月更文挑战的第5天,活动详情查看:8月更文挑战css
让一些不能等比自适应的元素, 达到当设备尺寸发生改变的时候, 等比例适配当前设备. 使用媒体查询, 根据不一样设备按照比例设置HTML的字体大小, 而后页面元素使用rem作尺寸单位.html
主要有两种技术:小程序
两种方案都存在, 但方案2更简单一些.微信小程序
设备 | 常见宽度 |
---|---|
iPhone 4.5 | 640px |
iPhone 678 | 750px |
Android | 目前市场主流设备尺寸按照 1080px 设计 |
通常状况下, 咱们以一套或两套效果图适应大部分的屏幕, 放弃极端屏或对其优雅降级, 牺牲一些效果, 如今基本以750px为准.微信
假设设计稿是750px, 咱们把整个屏幕划分为15等份 (固然划分标准不一, 也能够是20等份或者10等份等), 这时每一份的HTML字体大小就是50px.markdown
当设备是320px的时候, 每一份的字体大小就是 320/15 = 21.33 px. 即:less
font-size字号 = 屏幕宽度 / 份数
复制代码
这里的主要思想是无论屏幕宽度是怎样的, 咱们要保证的是划分的份数是相同的, 好比说都是15份. 当咱们使用rem做为单位为一些页面元素设置大小的时候, 无论屏幕有多宽, 每一份HTML字体大小在当前屏幕中占的比例都是相同的, 所以咱们设置的那些页面元素在整个屏幕中占的比例也是相同的, 这样就实现了不一样屏幕下, 页面元素盒子等比例缩放的效果.svn
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style> /* 媒体查询不一样屏幕下的html字号, 设计图参考750px, 将屏幕宽度划分为15等份 */ @media screen and (min-width: 320px) { html { font-size: 21.33px; } } @media screen and (min-width: 750px) { html { font-size: 50px; } } /* 设置一个100*100的盒子 */ .box { width: 2rem; height: 2rem; background-color: blueviolet; } </style>
</head>
<body>
<div class="box"></div>
</body>
</html>
复制代码
手机淘宝团队出的简洁高效移动端的适配库post
不须要写不一样屏幕的媒体查询, 由于里面js作了处理字体
经过<script>
标签.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=no,initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<script src="js/flexible.js"></script>
<title>Document</title>
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/index.css">
</head>
<body>
<div></div>
</body>
</html>
复制代码
它的原理是把当前设备划分为10等份, 可是不一样设备下, 比例仍是一致的. 咱们要作的是肯定好当前设备的HTML文字大小就能够了. 好比当前的设计稿是750px, 那么咱们只须要把html文字大小设置为75px (750px/10)就能够了.
页面元素rem值: 页面元素的px值 / 75 剩余的部分就交给flexible.js来去算.
若是咱们须要设置最大的宽度750px, 大于这个宽度之后就不会改变了, 须要在css里进行额外设置. 注意这里要使用 !important
提高优先级, 淫才flexible.js中的css样式是行内式的.
index.css:
@media screen and (min-width: 750px) {
html {
font-size: 75px !important;
}
}
div {
width: 1rem;
height: 1rem;
background-color: pink;
}
复制代码
效果:
Converts between px
and rem
units in VSCode, And support WXSS.
Support intellisense (支持智能转换)
px
-> rem
rem
-> px
px
-> rpx
(微信小程序)rpx
-> px
(微信小程序)Support mouse hover to display the conversion process
Support mark
启用cssrem后的效果:
通常状况下, 咱们须要设置一下HTML字体大小的基准值.