用rem来做响应式开发

 

    电脑版的商城昨晚做完了,今天赶着做手机端的,提到手机端的网站第一个想到的就是要 适应不同手机屏幕的宽度,保证在不同手机上都能正常显示给用户,我之前做这类网站都是无脑引进bootstrap的。但前一个项目做完之后我发现bootstrap虽好,但里面的各种样式我利用的很少,最多用到它排版,当网站最后上传的时候你会发现,即使压缩之后,它也会占用相当大的一部分,

    所以这次我想自己用原生写,

    响应式开发(我现在知道的尚浅)目前我了解有

  1. 百分比法:顾名思义,页面的元素的margin,padding,width,height,等等都用%来计算,CSS中的百分比中的百指的是什么,指的是父元素,所有百分比都是这样的。子元素宽度50%,那么父元素的宽度就是百,子元 素的padding-left:50%,父元素的宽度是百,子元素的margin-top:20%,那么父元素的高是百。所以body默认宽度是屏幕宽度 (PC中指的是浏览器宽度)子孙元素按百分比定位(或指定尺寸)就可以了,这只适合布局简单的页面,复杂的页面实现很困难。

  2. 媒体查询:这个是css3中给出的,我们要解决的问题是适应手机屏幕,这个媒体查询正是为解决这个问题而生,媒体查询的功能就是为不同的媒体设置不同的css样 式,这里的“媒体”包括页面尺寸,设备屏幕尺寸等,最常用的形式

    phone:@media screen and (max-width:767px) {/手机中样式/}

    pad:@media screen and (max-width:991px)and(min-width:768) {/平板中样式/}

    pc:@media screen and (min-width:992px){/电脑中样式/}

     

     

     

    ...(你还可以设置更多节点)

     

    用媒体查询的话要保证每个像素下都有对应的适配效果显然你要设置更小的宽度范围;

  3. 还有就是css3的单位rem:rem就是将根节点html的font-size的值作为整个页面的基准尺寸,例如<html style="font-size:10px">那么1rem=10px;如何做到适配呢?那就要用到js在页面加载时获取window的宽度(浏览器窗口的宽度)$(window).width();在开发手机页面的时候,一般我们设置最大宽度为640px,因为640px可以保证在至今最宽的手机上显示时网页两端刚好贴合屏幕,那接下来我就举一个小例子。

     

     

        上码!

    屏幕放大缩小这三个div也同样还在一行等比放大缩小

    html

<div class="container">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
</div>

css

<style>
    html{font-size: 20px;}
.container{
max-width: 640px;
border:1px solid red;
margin:0 auto;
overflow: hidden;
box-sizing: border-box;
}
.box{
float: left;
width:10.6rem;
//我这里设置html的font-size:20px;最大
宽为640px,即相当于640/20=32rem;一行有3个div,
所以每个div宽10.6rem

       你也可以像论坛里面讲的那样设置html的
font-size:62.5%;因为浏览器默认像素16px;
乘以62.5%之后为整数10px;方便计算

height:10.6rem;
border:1px solid #000;
box-sizing: border-box;
}
</style>
    1. js

根据屏幕宽度的改变动态改变html的font-size,
<script>
window.onresize = window.onload = function () {
    var w = $(window).width();
    if(w<640){
        var size = 20*w/640;//640的时候
对应html的font-size为20,那么宽度为w是对应
的font-size可这么求
        $('html').css('fontSize',size+'px');
    }
 }
</script>
***注意这里有一个小坑,当你把这个小demo拿到谷歌浏览器
里面验证的时候,你会发现开始这3个div会随着你浏览器窗
口缩小而缩小,到达某个值后就不动了,原因是谷歌浏览器
默认支持html的font-size最小值为10px;在小于这个值就不
会再小了,这是我当时碰到的问题花了快两个小时上网找,
一遍遍演示也都没想明白,最后终于查到这么个非人为原因...

转载于:https://www.cnblogs.com/yzb23/p/6493126.html

基于STM32F407,使用DFS算法实现最短迷宫路径检索,分为三种模式:1.DEBUG模式,2. 训练模式,3. 主程序模式 ,DEBUG模式主要分析bug,测量必要数据,训练模式用于DFS算法训练最短路径,并将最短路径以链表形式存储Flash, 主程序模式从Flash中….zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值