css中自适应的问题

3 篇文章 0 订阅

1自适应是前端开发中很多时候都需要用到的知识,比如定义一个div长和宽是页面大小的一半,我们可以这样。

<!doctype html>
<html>
<head>
<style type="text/css">
    html,body{
        height: 100%
    }
</style>
    
    <meta charset="utf-8">
    <script src="jq16.js">
    
    </script>
</head>
<body>
    <div id="div" style="width:50%;height:50%;background-color: green ">xxxxxxxxxxxxxxxx</div>
</body>
</html>

这个方法在各大浏览器中都能得到想到的效果,甚至在IE5,所以这应该是自适应大小比较好的解决方案,至于为什么要把html和body标签都设置成100%是因为,这两个元素默认的高度分别是8px和0px(火狐和chrome下是,不同浏览器可能不一样),而页面的元素大小是基于父元素body的,所以body的大小必须为页面真正大小的100%,而body又是基于html的,所有html的高度也要是页面真正高度的100%。

2还有一个方法是利用vw,vh这两个属性。这两个属性每个元素的大小是基于屏幕真正的大小,所以我们不需要设置这两个元素的高度了。

<!doctype html>
<html>
<head>
<style type="text/css">
    
</style>
    
    <meta charset="utf-8">
    <script src="jq16.js">
    
    </script>
</head>
<body>
    <div id="div" style="width:50vw;height:50vh;background-color: green ">xxxxxxxxxxxxxxxx</div>
</body>
</html>

不过这个属性不兼容IE9以下的浏览器。

这两个属性还有一个比较有用的地方是设置自适应字体的大小

<!doctype html>
<html>
<head>
<style type="text/css">
    
</style>
    
    <meta charset="utf-8">
    <script src="jq16.js">
    
    </script>
</head>
<body>
    <div id="div" style="font-size:5vw;background-color: green ">sssssssssssssssssssssssssssss</div>
</body>
</html>

这时候字体的大小会随着屏幕变化,可以基于高度或者宽度。字体自适应大小还有几个相关属性,比如em和rem,rem是相对html根元素的字体大小,默认是16px,16px==1rem,但是chrome下字体最小值是12px,所以这个要注意,0.5rem最后的结果是12px而不是8px。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值