用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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/401477.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c 连接mysql

apt-get install libmysqlclient-dev mysql 使用的是xampp 需要指定sock 源码&#xff1a;main.c #if defined(_WIN32) || defined(_WIN64) //为了支持windows平台上的编译 #include <windows.h> #endif #include <stdio.h> #include <stdlib.h> #include &…

Java 编程下 Eclipse 如何设置单行代码显示的最大宽度

Eclipse 下一行代码的默认宽度是 80 &#xff0c; 稍长一点的一行代码就会自动换行&#xff0c;代码可读性较差&#xff0c;我们可以自己在 Eclipse 对代码宽度进行设置。 设置路径为&#xff1a;【Window】→【Preferences】→【Java】→【Code Style】→【Formatter】&#x…

前端公共reset.css模板

简介学习地址&#xff1a; https://meyerweb.com/eric/tools/css/reset/重置样式表的目的是减少浏览器在默认行高&#xff0c;标题的边距和字体大小等方面的不一致。重置样式特意是非常通用的/* http://meyerweb.com/eric/tools/css/reset/ v2.0 | 20110126License: none (publ…

基于VMWare配置VxWorks开发环境

常规VxWorks的开发环境都是基于目标开发板或目标机来构建的&#xff0c;但并非所有人都具备这样的条件&#xff0c;所以本文主要介绍如何基于vmware来构建VxWorks开发环境。Step 1. 安装vmware 首先需要安装vmware, 版本没有什么限制&#xff0c;我装的是vmware 8.0&#xff0c…

plan

工作&#xff1a; plan A 确定用什么环境和工具进行开发&#xff0c;并让老杨了解。 如何支持骨骼动画模型&#xff0c;这是最关键部分。 交互和用户体验方面进行完善。 plan B 太极拳网站 前台&#xff1a;silverlight4.0 后台&#xff1a;java 数据库&#xff1a;mysql 生活…

keepalived实现高可用nginx反向代理的简单案例

写在前面&#xff1a;如果此文有幸被某位朋友看见并发现有错的地方&#xff0c;希望批评指正。如有不明白的地方&#xff0c;愿可一起探讨。案例拓扑图安装keepalived和nginx安装keepalived# yum -y install keepalived创建nginx用户组及nginx用户# groupadd -r nginx # userad…

Vue 父子组件双向绑定传值

最简单的双向绑定&#xff08;单文件中&#xff09;就是表单元素的v-model了&#xff0c;如果同时设置v-model和value&#xff0c;value属性无效。 自定义v-model&#xff1a;&#xff08;不推荐&#xff09; child: <template><h1>{{ msg }}</h1> </te…

java逻辑运算符

// | 或 & 与 int x3; System.out.println(x>2&x<5); // ||短路或 &&短路与 区别短路逻辑表达式判断第一个表达式&#xff0c;如果出结果直接返回true/false &#xff0c;而非短路直到逻辑运算式全部运行完毕才返回&#xff1b; System.out.println…

json--js

json对象与js对象的转换&#xff1a; json2.js var jsObj{a:"1",b:"2" }var jsonObjJSON.stringify(jsObj); var aJSON.parse(jsonObj).a; alert(a);1. JSON.stringify 将js对象转为json 2. JSON.parse 将json对象转为js转载于:https://www.cnblogs.…

给easyui datagrid 添加mouseover和mouseout事件

http://www.loststop.com/archive/soft-and-internet/3819.html http://www.loststop.com/easyui/demo/datagrid6.html

关于自定义控件,可以编译通过,但是用时提示无法创建新实例。

上网查询发现 这种错误通常是控件中使用的配置信息存在于配置文件里&#xff0c;而在程序没有运行时&#xff0c;获取不到配置信息造成的。 例如&#xff1a; 错误用法&#xff1a; string strUri Application.Current.Resources["WcfServiceUrl"].ToString();//引发…

leetcode 3Sum C++

荒废好久没更新了&#xff0c;时间过得很快&#xff0c;转眼就2017年了&#xff0c;经历了苦闷的科研阶段&#xff0c;发了论文顺利毕业&#xff1b;也经过三地辗转奔波来去的找工作&#xff0c;最终还是犹犹豫豫选择了自己知道以后可能会后悔的&#xff0c;果然就后悔了。所以…

JavaScript 函数循环、延时、节流、防抖

函数循环(setInterval) 间隔指定的毫秒数不停地执行指定的代码 <button onclick"myStartFunction()">开始</button> <button onclick"myStopFunction()">停止</button><script> var myVar null; //全局function myTimer…

bash知识点:文件测试

bash知识点&#xff1a;文件测试&#xff08;测试文件是否存在&#xff0c;文件是某种类型&#xff09;单目测试-e file:测试文件是是否存在-a file&#xff1a;测试文件是是否存在-f file&#xff1a;测试是否为普通文件,是为真&#xff0c;否则为假-d file&#xff1a;测试是…

MVC 4 教程

MVC4 前件&#xff1a;visual studio 10 sp1 http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/intro-to-aspnet-mvc-4 &#xff08;by Rick Anderson&#xff09; Music Store (by Jon Galloway) http://www.asp.net/mvc/tutorials/mvc-music-sto…

Linux下java/bin目录下的命令集合

Linux下JAVA命令&#xff08;1.7.0_79&#xff09; 命令 详解 参数列表 示例 重要程度 资料 appletviewer Java applet 浏览器。appletviewer 命令可在脱离万维网浏览器环境的情况下运行 applet。 Usage: appletviewer <options> url(s) where <options> …

火车采集小结

采集一个页面全部内容的正则&#xff1a;^(?<content>[\s\S]*?)$转载于:https://www.cnblogs.com/afish/p/3984680.html

vscode 开发常用

设置缩进空格&#xff1a;2个| 4个 文件–》首选项–》设置 代码缩进对齐 &#xff1a; Ctrl [ 和 Ctrl ] 实现文本的向左移动或者向右移动&#xff1b; Shift Alt F 实现代码的对齐

新手应该如何Javascript,JDom,JQuery,DWZ。。

作为web前端程序员来说想必这些东西大家都很熟悉了...但是作为初学者来说,如何学习 是一个很重要的问题,其实这些东西并不难,只是我们在学习的时候没有理清楚他们之间的概念导致我们盲目的学习, 以我自己为例子&#xff0c;希望能帮助到大家的学习。 在这之前我假设大家理解了…

gulp+PC前端静态页面项目开发

前言&#xff1a; 现在单页面很流行&#xff0c;但是在 PC 端多页面还是常态&#xff0c;所以构建静态页面的工具还有用武之地 gulp构建前言&#xff1a; 如今我们开发web网页的方式主要有几种&#xff0c;使用vue-cli、create-react-app、webpack、不借助构建工具等实现单页…