使用javascript做响应式开发
这篇文章主要介绍了javascript用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的值作为整个页面的基准尺寸,例如那么1rem=10px;如何做到适配呢?那就要用到js在页面加载时获取window的宽度(浏览器窗口的宽度)$(window).width();在开发手机页面的时候,一般我们设置最大宽度为640px,因为640px可以保证在至今最宽的手机上显示时网页两端刚好贴合屏幕,那接下来我就举一个小例子。
屏幕放大缩小这三个p也同样还在一行等比放大缩小
html
<p class="container"> <p class="box">1</p> <p class="box">2</p> <p class="box">3</p> </p>
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个p,所以每个p宽10.6rem 你也可以像论坛里面讲的那样设置html的font-size:62.5%;因为浏览器默认像素16px;乘以62.5%之后为整数10px;方便计算 height:10.6rem; border:1px solid #000; box-sizing: border-box; } </style>
js
<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个p会随着你浏览器窗口缩小而缩小,到达某个值后就不动了,原因是谷歌浏览器默认支持html的font-size最小值为10px;在小于这个值就不会再小了,这是我当时碰到的问题花了快两个小时上网找,一遍遍演示也都没想明白,最后终于查到这么个非人为原因.
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
以上是使用javascript做响应式开发的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

人脸检测识别技术已经是一个比较成熟且应用广泛的技术。而目前最为广泛的互联网应用语言非JS莫属,在Web前端实现人脸检测识别相比后端的人脸识别有优势也有弱势。优势包括减少网络交互、实时识别,大大缩短了用户等待时间,提高了用户体验;弱势是:受到模型大小限制,其中准确率也有限。如何在web端使用js实现人脸检测呢?为了实现Web端人脸识别,需要熟悉相关的编程语言和技术,如JavaScript、HTML、CSS、WebRTC等。同时还需要掌握相关的计算机视觉和人工智能技术。值得注意的是,由于Web端的计

股票分析必备工具:学习PHP和JS绘制蜡烛图的步骤,需要具体代码示例随着互联网和科技的快速发展,股票交易已经成为许多投资者的重要途径之一。而股票分析是投资者决策的重要一环,其中蜡烛图被广泛应用于技术分析中。学习如何使用PHP和JS绘制蜡烛图将为投资者提供更多直观的信息,帮助他们更好地做出决策。蜡烛图是一种以蜡烛形状来展示股票价格的技术图表。它展示了股票价格的

随着互联网金融的迅速发展,股票投资已经成为了越来越多人的选择。而在股票交易中,蜡烛图是一种常用的技术分析方法,它能够显示股票价格的变化趋势,帮助投资者做出更加精准的决策。本文将通过介绍PHP和JS的开发技巧,带领读者了解如何绘制股票蜡烛图,并提供具体的代码示例。一、了解股票蜡烛图在介绍如何绘制股票蜡烛图之前,我们首先需要了解一下什么是蜡烛图。蜡烛图是由日本人

REMME是什么币?REMME是一个基于区块链技术的加密货币,致力于提供高度安全且去中心化的网络安全和身份验证解决方案。该项目旨在利用分布式加密技术来增强和简化用户身份验证流程,从而提升安全性和效率。REMME的创新之处在于其借助区块链的不可篡改性和透明性,为用户提供了更可靠的身份验证方式。通过将身份验证信息存储在区块链上,REMME消除了中心化身份验证系统的单点故障,并降低了数据被盗或篡改的风险。这种基于区块链的身份验证方法不仅更安全可靠,而且还能够为用户REMME的背景在当前数字化时代,网络

js和vue的关系:1、JS作为Web开发基石;2、Vue.js作为前端框架的崛起;3、JS与Vue的互补关系;4、JS与Vue的实践应用。

从px到rem:CSS布局单位的演变与应用引言:在前端开发中,我们经常需要用到CSS来实现页面布局。在过去的几年间,CSS布局单位也经历了演变和发展。最开始我们使用的是像素(px)作为单位来设置元素的大小和位置。然而,随着响应式设计的兴起和移动设备的普及,像素单位逐渐暴露出一些问题。为了解决这些问题,新的单位rem应运而生,并逐渐被广泛应用于CSS布局中。一

随着移动设备的普及和技术的发展,响应式布局成为了设计师们必备的技能之一。响应式布局旨在为不同尺寸的屏幕提供最佳的用户体验,让网页在不同设备上都能自动调整布局,保证内容的可读性和可用性。选择合适的单位是响应式布局设计的关键步骤之一。本文将介绍一些常用的单位,并提供选择单位的建议。像素(px):像素是屏幕上的最小单位,它是一种绝对单位,不会随屏幕尺寸的改变而自动

响应式布局框架大比拼:谁是最佳选择?随着移动设备的普及和多样化,网页的响应式布局变得越来越重要。为了满足用户的不同设备和屏幕尺寸,在设计和开发网页时采用响应式布局框架是必不可少的。然而,面对众多的框架选择,我们不禁要问:哪个是最佳选择?以下将对目前比较流行的三种响应式布局框架进行比较评价,它们分别是Bootstrap、Foundation和Tailwind
