1.头尾固定,左侧不动,右侧滑动布局
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>头尾部固定</title>
<style>
*{
margin:0;
padding:0;
box-sizing: border-box;
font-size:50px;
}
html,body,.app{
width:100%;
height:100%;
display:flex;
flex-direction: column;
}
.middle{
overflow: auto;
-webkit-flex: 1;
color:blue;
margin-top:30px;
display:flex;
}
.middle>.left{
width:20%;
background: yellow;
}
.middle>.right{
width:80%;
height:100%;
overflow-y:scroll;
background: pink;
}
footer{
width:100%;
}
</style>
</head>
<body>
<div class="app">
<header>头部</header>
<div class="middle">
<div class="left">
12<br>
12<br>12<br>12<br>12<br>
</div>
<div class="right">
中间自适应部分<br>
中间自适应部分<br>
中间自适应部分<br>中间自适应部分<br>中间自适应部分<br>中间自适应部分<br>中间自适应部分<br>中间自适应部分<br>中间自适应部分<br>中间自适应部分<br>中间自适应部分<br>中间自适应部分<br>中间自适应部分<br>中间自适应部分<br>中间自适应部分<br>中间自适应部分<br>中间自适应部分<br>中间自适应部分<br>中间自适应部分<br>中间自适应部分<br>中间自适应部分<br>中间自适应部分<br>中间自适应部分<br>中间自适应部分<br>中间自适应部分<br>中间自适应部分<br>中间自适应部分<br>中间自适应部分<br>
</div>
</div>
<footer>尾部</footer>
</div>
</body>
</html>
2.rem 布局
<script>
window.addEventListener('orientationchange', setRem);
window.addEventListener('resize', setRem);
setRem();
function setRem() {
var html = document.querySelector('html');
var width = html.getBoundingClientRect().width;
html.style.fontSize = width / 16 + 'px';
};
</script>
<style>
// sass写法
@function rem($px) {
@return $px / 46.875 + rem;
}
//less写法
@rem: 46.875rem;
//stylus自行解决
?
</style>
用法:
如:元素宽300px,高500px;
传入参数即可:width:rem(300); height:rem(500);
rem算法解释:
例如:
1,设计图是750;
2,屏幕宽度/16;
计算步骤:
第一步: 750/16 = 46.875,1rem = 46.875
第二步:比如logo图片宽度为240px,那么width应该写成5.12rem