CSS移动端自适应布局与字体大小自适应
CSS移动端⾃适应布局与字体⼤⼩⾃适应
⼀、vw, vh
vw它是根据可视区的宽度来计算的。
vh它是根据可视区的⾼度来计算的。
<body>
<style>
body { margin:0; }
.testDiv { width:100vw; height:100vh; font-size:10vw; background:#ccc; }
</style>
<div class="testDiv" ></div>
</body>
其中100vw是把.testDiv的宽度设备为充满整个移动设备(浏览器)可视区宽度,100vh是把.testDiv的⾼度设置为充满整个移动端设备(浏览器)可视区⾼度。
如果是10vw,就是当前移动设备(浏览器)宽度的⼗分之⼀⼤⼩;10vh是当前设备(浏览器)⾼度的⼗分之⼀⼤⼩
如果是50vw,当前移动端设备(浏览器)可视区宽度的⼀半,50vh是可视区⾼度的⼀半。
font-size:10vw。如果浏览器可视区宽度为640px的话,那么他在640px的时候的字体⼤⼩为64px;⽽在320px的时候字体⼤⼩为
32px;
空调不制冷是什么原因造成的例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd">蛋糕的寸指的是什么
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0,maximum-scale=1.0,user-scalable=0">
<title>test</title>清明节是几月几日农历
<style>
body { margin:0; }
.content { width:100%; margin:0 auto; }
.content img { width:100%; }
.testDiv { width:100vw; height:31.25vw; line-height:31.25vw; font-size:4.375vw;
font-family:"宋体"; font-weight:bold; text-align:center; background:#ccc; color:#fff; }
</style>
</head>
<body>
<div class="content">
<div><img src="test.png"/></div>
<div class="testDiv">hello world</div>
</div>
</body>
</html>
像这样,就可以做到⾃适应布局跟⾃适应字体⼤⼩了,不过有个弊端是这时候⾼度跟宽度都跟随设备⼤⼩变化,也跟随浏览器⼤⼩变化,不能像响应式布局那样去控制最⼤宽度,最⼤⾼度,跟字体⼤⼩。
(这⾥在布局的时候最好把模拟⼿机设置的插件的宽度调到跟效果图⼀样,像上⾯的布局,效果图是640px,布局的时候就把模拟⼿机设备的宽度调到了640px)。
该怎么去设置⾼度、宽度、字体呢?宽度的话直接⽤百分⽐都可以,⽽⾼度的话,如上图的话⾼度是200px,⽤200/640=31.25%,然后⽤vw代替%号就可以了,字体也是,如上图的字体是28px; ⽤28/640=4.375%,⼀样⽤vw代替%号就⾏了。
vw, vh兼容性:想较于rem,em会差⼀些
⼆、⽤js去计算并设置html标签的font-size⼤⼩
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd">  <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0,maximum-scale=1.0,user-scalable=0">
<title>test</title>
<style>
body { margin:0; }
.content { width:100%; max-width:640px; min-width:320px; margin:0 auto; }
.content img { width:100%; }
.testDiv { width:100%; height:2rem; line-height:2rem; font-size:.28rem;
font-family:"宋体"; font-weight:bold; text-align:center; background:#ccc; color:#fff; }
</style>
</head>
<body>
<div class="content">
<div><img src="test2.jpg"/></div>
<div class="testDiv">hello world</div>
</div>
<script>
//640是原始设计图⼤⼩
var fontSizeAuto = function (){
var viewportWidth = document.documentElement.clientWidth;
if(viewportWidth > 640){ viewportWidth = 640; }
if(viewportWidth < 320){ viewportWidth = 320; }
document.documentElement.style.fontSize = viewportWidth/6.4 +'px';
}
fontSizeAuto();
家人的英文
</script>
</body>
凤凰花开的路口歌词
</html>
布局的话,直接按我之前讲的根据rem来布局就可以了,⽽只需等js代码去修改根元素的font-size⼤⼩。
也可以对函数进⾏优化下。
//640是原始设计果图⼤⼩
var fontSizeAuto = function(oriWidth){
return function(){
var viewportWidth = document.documentElement.clientWidth;
if(viewportWidth > oriWidth){ viewportWidth = oriWidth; }
if(viewportWidth < 320){ viewportWidth = 320; }
document.documentElement.style.fontSize = viewportWidth/(oriWidth/100) +'px';
}
}
fontSizeAuto(640)();
如果原始设计图的⼤⼩是750px。只需把参数改成750。餐饮业成本核算
fontSizeAuto(750)();
CSS响应式布局与响应式字体⼤⼩见

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。