如何实现响应式(自适应)网页

什么是响应式布局

响应式网页(Responsive Web,RW)又称自适应网页,是一种网页设计布局,可以根据访问媒体不同(网页宽高变化)而变化样式,防止网页布局因访问环境而造成布局混乱,影响用户体验。

为什么会造成布局混乱

移动设备(手机等)的分辨率相较于电脑通常会更小,手机浏览器会根据设定调整自己的网页可视区域,通常为980px(根据设备设置而定)。并且,在移动设备上px可能与电脑上的度量不同,这是由于技术的发展,手机的屏幕像素密度越来越高,造成一个像素点可能对应两个物理像素。

想要实现响应式网页,需要对整个网页布局进行分析,在此基础上,再考虑以下方法。

META标签

<meta content="width=device-width, initial-scale=1.0" name="viewport">

这句话可以说写网页必备,首先我们来理解一下这句话的作用。

meta是一个辅助性标签,可以提供网页元信息,方便SEO,对于响应式布局也有帮助。

viewport是设备能够显示网页的那块区域,根据设备的不同,其viewport可能也不相同。viewport有三种,分别是layout、visual和ideal,这三种具体讲解请自行搜索。移动设备默认是layout viewport,但在开发过程中,我们需要ideal viewport。width=device-width正是将宽设置成ideal viewport的状态,initial-scale是设置页面初始缩放值,viewport总共有六个属性:

属性值说明
width设置viewport宽度
height设置viewport高度
initial-scale设置页面初始缩放值
minimum-scale允许用户最小缩放值
maximum-scale允许用户最大缩放值
user-scalable是否允许用户缩放

相对度量

CSS3推出了许多相对度量单位,相对度量单位是指参考某一元素变化度量,也就是说其并不是一直不变的。

  1. %: 字面意思百分号,根据父元素而变化。如 width:100% 宽度即父元素大小
  2. vw: 视图宽度,根据视图而变化。如width:100vw 宽度即网页视图宽度
  3. vh: 视图高度,根据视图而变化。如height: 100vh 高度即网页视图高度
  4. em: 根据当前对象文本大小而变化(仅用于字体)
  5. rem: 根据根元素文本大小而变化(仅用于字体)

对于一些需要跟随页面变化的元素,应该使用相对度量单位。比如input框

input[type=text] {
	width: calc(100% - 50px) // 跟随父元素宽度且少50px
}
// 关于calc函数可以看 https://blog.csdn.net/qq_30258721/article/details/126273893

FLEX布局

flex布局也是制作响应式网页重要的一环。flex布局可以用来为盒状模型提供最大的灵活性,最大程度上利用网页空间。

当网页宽高变化时,flex布局可以将盒子重新排列,实现网页布局整齐。

宽高设置

对于一些宽高无法固定的盒模型,宽高不能设置成定值(height:100px), 而应该通过百分比,vh或者其他相对度量值。
百分比和vh用的比较多,对于页面的主体的部分通常写:

width: 100%
// width和height有很多写法,auto、100%、100vw(width)和100vh(height)等等,每种对应不同情况,比如100vh表明盒子高为一视图页面高

注意:不应该所有盒子都设置对象度量。大盒子设置width:100%时,应该思考其内部小盒子需不需要也设置相对度量,如果都设置成width:100%,那么页面变化时,几个盒子都跟着变化,造成样式混乱。一般应该大盒子设置相对,内部小盒子设置定值,这样当大盒子随着页面变化后,如果宽度不够容下所有小盒子,会将其挤到下一行。

媒体查询

@media是CSS3推出的一个新特性,它能识别各种设备,通常类型值设为screen。通过@media可以定义不同宽高下的样式,比如当页面宽度小于800px之间时主体部分背景色变为红色

@media screen and (max-width: 800px) {
    main {
        background-color: red;
    }
}

替换元素

对于一些无法直接通过改变样式的元素,可进行替换,如导航栏,页面缩小时,导航栏项不可以减少,字体大小改变也会导致无法看清等问题,这些将其替换成icon图标,点击即出现导航栏。
在这里插入图片描述
在这里插入图片描述

响应式框架

当然,现在前端框架已经发展的十分成熟,非必要不需要从零开始布局。推荐几个响应式前端框架:

  1. Bootstrap
    自 Bootstrap 3起,Bootstrap就支持响应式布局,且移动设备优先。bootstrap开源且上手简单,十分推荐

  2. Foundation
    Foundation也是相当成熟的前端框架,不仅支持响应式布局,也提供多种web UI组件

  3. Ulkit
    Ulkit是一个轻量级、模块化的前端框架,帮助开发出快速、强大的Web接口,它有着全面的HTML、CSS和JS集合,易于使用和扩展。

  4. Groundwork

  5. Base

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: HTMLCSS、JS网页响应式框架与布局是一种用于设计和开发网页的技术。它可以让网页在不同的设备上自适应,包括桌面电脑、平板电脑和手机等。响应式框架和布局可以帮助开发者快速构建出适应不同设备的网页,提高用户体验和网站的可访问性。常见的响应式框架包括Bootstrap、Foundation、Semantic UI等。 ### 回答2: 网页响应式框架与布局是现代网页设计中非常重要的一个方面,它可以为不同设备的用户展现出美观、友好、访问方便的网站页面。 HTMLCSS和JavaScript是网页设计中三大核心技术,它们分别负责网页内容、样式和交互行为。在网页响应式设计中,这三种技术被用来实现自适应布局和响应式设计。 自适应布局指的是针对不同的设备自动适应调整网页布局。这是通过HTMLCSS等技术实现的,主要使用媒体查询和栅格系统,通过CSS中的@media规则,根据设备的宽度、高度、方向等参数,选择不同的CSS样式表。这样,在不同的设备上打开同一个页面时,页面的布局和样式可以根据设备的大小而自动调整。 响应式设计则是指网站能够根据设备的分辨率、屏幕大小和触摸方式等不同条件,自动适应展示内容,并实现良好的用户体验。这需要使用JavaScript技术,根据设备的响应速度和处理能力,自动调整网站内容和图片的大小、清晰度和类型等。 目前,市场上有许多流行的响应式框架和布局工具,如Bootstrap、Foundation、Semantic UI、Materialize等。它们提供了丰富的UI组件,方便网站设计师和开发者创建美观、响应式网页界面。 总之,网页响应式框架和布局是网站设计中的重要手段。通过HTMLCSS和JavaScript的技术,能够自动适应不同设备上的网页内容和样式,提升用户使用体验。同时,使用响应式框架与布局工具,可以大大缩短网页设计和开发的时间,简化管理和维护。 ### 回答3: 随着移动设备的普及,网页响应式设计已经成为了现代网页设计的必备要素。而HTMLCSS和JS是开发网页时的三项基本技术,如何使用这三项技术实现网页响应式布局呢? 首先,我们需要使用CSS媒体查询来针对不同设备的屏幕大小、分辨率、显示方向等进行布局调整。我们可以通过设置不同的CSS样式来适配不同的屏幕尺寸,从而实现网页响应式布局。例如,在手机和平板电脑上,我们可能需要将某些元素的宽度设置为100%以适应较小的屏幕尺寸,同时自适应调整字体和布局等。 其次,我们需要使用HTML5提供的“响应式图像”技术。这种技术可以通过设置不同的图片分辨率,在不同的设备上动态加载合适分辨率的图片,从而提高网页加载速度和用户体验。 除此之外,我们还可以使用各种网页响应式框架,如Bootstrap、Foundation和Pure等。这些框架提供了现成的CSS样式、网格布局、模板和常用的交互元素等,使网页响应式布局更加轻松和高效。 最后,我们还可以使用JS技术来实现网页的动态交互和行为。例如,在响应式设计中常用的导航菜单,我们可以使用JS实现移动设备上的触控操作和交互效果等。 总之,网页响应式框架和布局是现代网页设计不可或缺的要素。结合HTMLCSS和JS技术,我们可以轻松实现网页响应式布局和动态交互,提高用户的使用体验和网页访问速度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

攻城狮炭烤策划

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值