效果设计图
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>黑马面面</title>
<style type="text/css">
body {
min-width: 320px;
max-width: 750px;
margin: 0 auto;
height: 1200px;
background-color: pink;
}
@media screen and (min-width: 750px) {
html {
font-size: 37.5px !important;
}
}
</style>
</head>
<body>
<script>
(function flexible(window, document) {
var docEl = document.documentElement; //获取html的根元素
var dpr = window.devicePixelRatio || 1; //获取当前设备的大像素比,默认为1
function setBodyFontSize() {
if (document.body) {
document.body.style.fontSize = (12 * dpr) + 'px'; //设置body的字体大小
}
else {
document.addEventListener('DOMContentLoaded', setBodyFontSize) //如果检测不到body,则先DOM元素加载再设置body的字体大小
}
}
setBodyFontSize();
function setRemUnit() {
var rem = docEl.clientWidth / 10 //获取页面宽度并将页面划为10份
docEl.style.fontSize = rem + 'px' //设置html的fontsize大小
}
setRemUnit();
window.addEventListener('resize', setRemUnit); //如果页面大小发生改变,重新获取html的Fontsize的大小
window.addEventListener('pageshow', function(e) {
if(e.persisted) { //判断页面是否从缓存读取
setRemUnit(); //如果是缓存读取则重新获取html的Fontsize的大小
}
else {
setRemUnit(); //如果不是缓存读取也重新获取html的Fontsize的大小
}
})
}) (window, document)
</script>
</body>
</html>
这是仿苏宁写的flexible.js关于兼容性部分的代码就删掉了,看的费劲,别看就28行,自适应好用的很,看的也不费劲,反正IE要被淘汰掉了