javascript - 做移动页面字体需要做自适应吗?
ringa_lee
ringa_lee 2017-04-11 13:27:10
0
12
1729

我自己做过移动页面布局,16 18px字体在一些小屏幕下显示比较占位置而导致显示不全出现省略点,大概情况如下图;

想实现随屏幕缩小字体而缩小,但是刚刚在segmentfault查看一遍文章,说移动web做字体自适应是错误的;

请问flex能解决字体问题吗?,小屏幕显示16px 18px字体如何解决字体过大占空间问题?

ringa_lee
ringa_lee

ringa_lee

全部回复(12)
Peter_Zhu

百分比下rem(root element)配合vw(viewport width)实现四列图片等宽布局:
假设宽为320px,则4vw等于4%*320=12.8px,也就是html根字体大小为12.8px.
其他长度单位是这个大小的倍数,1rem就是1倍,2rem就是2倍.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0">
<title>四列图片等宽布局</title>
<style>
* {
    margin: 0;
    padding: 0;
}
html {
    font-size: 4vw; /* rem(root element)配合vw(viewport width) */
}
a {
    display: block;
    width: 25%;
    height: 5rem;
    float: left;
    overflow: hidden;
    position: relative;
    text-decoration: none;
}
img {
    display: block;
    margin: 8% auto 0;
    width: 40%;
    border: none;
}
.clear {
    clear: both;
}
.abs {
    position: absolute;
    bottom: 8%;
    left: 0;
    width: 100%;
    font-size: 1rem;
    line-height: 1.4rem; 
    text-align: center;
    color: #000;
    cursor: pointer;
}
</style>
</head>
<body>
<p>
<a href="javascript:void(0)"><img src="php.png" /><p class="abs">说明</p></a>
<a href="javascript:void(0)"><img src="php.png" /><p class="abs">说明</p></a>
<a href="javascript:void(0)"><img src="php.png" /><p class="abs">说明</p></a>
<a href="javascript:void(0)"><img src="php.png" /><p class="abs">说明</p></a>
<a href="javascript:void(0)"><img src="php.png" /><p class="abs">说明</p></a>
<a href="javascript:void(0)"><img src="php.png" /><p class="abs">说明</p></a>
<a href="javascript:void(0)"><img src="php.png" /><p class="abs">说明</p></a>
<a href="javascript:void(0)"><img src="php.png" /><p class="abs">说明</p></a>
<p class="clear"></p>
</body>
</html>


如果浏览器支持rem但不支持vw,这时需要使用JS设置html标签的font-size值.
如Android 2.1+ Browser支持rem,Android 4.4+ Browser才支持vw.

<script src="jquery.js"></script>
<script>
$("html").css("font-size", $(window).width()*0.04+"px");
$(window).resize(function(){
    $("html").css("font-size", $(window).width()*0.04+"px");
});
</script>
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!