【响应式布局】

响应式布局

  • 1 什么是响应式布局
  • 2 响应式布局的5种实现方案
    • 2.1 百分比布局
    • 2.2 媒体查询布局
    • 2.3 rem响应式布局
    • 2.4 vw / vh响应式布局
    • 2.5 flex弹性布局

1 什么是响应式布局

  • 响应式布局就是一个网站能够兼容多个终端——而不是为每个终端做一个特定的版本。
  • 这个概念是为解决移动互联网浏览而诞生的。
  • 响应式布局的四个层次:
    1> 同一页面在不同大小和比例之下,看起来都应该是舒适的;
    2> 同一页面在不同分辨率下看起来都应该是合理的;
    3> 同一页面在不同操作方式(如鼠标和触屏)下,体验应该是统一的;
    4> 同一页面在不同类型的设备(手机、平板、电脑)上,交互方式应该是符合习惯的。
  • 响应式布局基本规则:
    1> 可伸缩的内容区块:内容区块在一定程度上能够自动调整,以确保填满整个页面。
    在这里插入图片描述
    2> 可自由排布的内容区块:当页面尺寸变动较大时,能够减少或增加排布的列数。
    在这里插入图片描述
    3> 适应页面尺寸的边距:当页面尺寸发生更大变化时,区块的边距也应该变化。
    在这里插入图片描述
    4> 能够适应比例变化的图片:对于常见的宽度调整,图片在隐去两侧部分时,依旧保持美观可用。
    在这里插入图片描述
    5> 能够自动隐藏或部分显示的内容:如在电脑上显示的大段描述文本,在手机上就只能少量显示或全部隐藏。
    在这里插入图片描述
    6> 能自动折叠的导航和菜单:不管是展开还是收起,应该根据页面尺寸来判断。
    在这里插入图片描述
  • 响应式布局优点:
    1> 面对不同分辨率设备灵活性强;
    2> 能够快捷解决多设备显示适应问题。
  • 响应式布局缺点:
    1> 兼容各种设备工作量大,效率低下;
    2> 代码累赘,会出现隐藏无用的元素,加载时间加长;
    3> 一种折中性质的设计解决方案,多方面因素影响而达不到最佳效果;
    4> 一定程度上改变了网站原有的布局结构,会出现用户混淆的情况。

2 响应式布局的5种实现方案

2.1 百分比布局

  • 通过百分比单位 " % " 来实现响应式的效果,比如当浏览器的宽度或者高度发生变化时,通过百分比单位,可以使得浏览器中的组件的宽和高随着浏览器的变化而变化,从而实现响应式的效果。
  • height,width属性的百分比依托于父标签的宽高。但是,padding、border、margin等属性的情况又不一样。
    1> 子元素的top/left和bottom/right如果设置百分比,则相对于直接非static定位(默认定位)的父元素的高度/宽度。
    2> 子元素的padding如果设置百分比,不论是垂直方向或者是水平方向,都相对于直接父亲元素的width,而与父元素的height无关。
    3> 子元素的margin如果设置成百分比,不论是垂直方向还是水平方向,都相对于直接父元素的width。
  • border-radius不一样,如果设置border-radius为百分比,则是相对于自身的宽度
  • 缺点:
    1> 计算困难,如果我们要定义一个元素的宽度和高度,按照设计稿,必须换算成百分比单位。
    2> 各个属性中如果使用百分比,相对父元素的属性并不是唯一的。比如width和height相对于父元素的width和height,而margin、padding不管垂直还是水平方向都相对比父元素的宽度、border-radius则是相对于元素自身等等,造成我们使用百分比单位容易使布局问题变得复杂。

2.2 媒体查询布局

  • 通过@media媒体查询,可以通过给不同屏幕的大小编写不同的样式来实现响应式的布局。
  • 缺点:如果浏览器大小改变时,需要改变的样式太多,那么多套样式代码会很繁琐。
  • 步骤一:
    设置meta标签:首先,我们需要设置 meta 标签来告诉浏览器,让视口(网页的可视区域)的宽度等于设备的宽度,并禁止用户对页面的缩放,如下所示
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
    在设置视口时需要注意,视口就是网页可见区域的尺寸,设置视口时只设置宽度就行,不用在乎高度,具体高度由网页内容自动撑开。上面 meta 标签中内容的含义如下:
    1> viewport:即视口,表示网页的可视区域;
    2> width:控制 viewport 的大小,可以指定一个具体的值,例如 600,也可以是由关键字组成的特殊值,例如 device-width 就表示设备的宽度;
    3> initial-scale:表示初始缩放比例,也就是页面第一次加载时的缩放比例;
    4> maximum-scale:表示允许用户缩放的最大比例,范围从 0 到 10.0;
    5> minimum-scale:表示允许用户缩放到最小比例,范围从 0 到 10.0;
    6> user-scalable:表示用户是否可以手动缩放,“yes”表示允许缩放,“no”表示禁止缩放。
  • 媒体查询的语法规范:
@media mediatype and|not|only (media feature) {CSS-Code;
}
/* 用 @media 开头,注意@符号 */
/* mediatype 媒体类型*/
/* 关键字and not only */
/* media feature 媒体特性 必须有小括号包含 */

1> mediatype 查询类型:
在这里插入图片描述
2> 关键字将媒体类型或多个媒体特性连接到一起做为媒体查询的条件。① and:可以将多个媒体特性连接到一起,相当于“且”的意思。② not:排除某个媒体类型,相当于“非”的意思,可以省略。③ only:指定某个特定的媒体类型,可以省略。
3> 媒体类型的展示风格:每种媒体类型都具体各自不同的特性,根据不同类型的媒体特性设置不同的展示风格,暂且了解以下三个。注意他们要包含在小括号内。
在这里插入图片描述

  • 步骤二:
    媒体查询有以下三种实现方式:
    1> 直接在 CSS 文件中使用,示例代码如下:
@media (max-width: 320px) {/*0~320*/body {background: pink;}
}
@media (min-width: 321px) and (max-width: 375px) {/*321~768*/body {background: red;}
}
@media (min-width: 376px) and (max-width: 425px) {/*376~425*/body {background: yellow;}
}
@media (min-width: 426px) and (max-width: 768px) {/*426~768*/body {background: blue;}
}
@media (min-width: 769px) {/*769~+∞*/body {background: green;}
}

2> 使用 @import 导入,示例代码如下:

@import 'index01.css' screen and (max-width:1024px) and (min-width:720px)@import 'index02.css' screen and (max-width:720px)

3> 在 link 标签中使用,示例代码如下:

<link rel="stylesheet" type="text/css" href="index01.css" media="screen and (max-width:1024px) and (min-width:720px)"/><link rel="stylesheet" type="text/css" href="index02.css" media="screen and (max-width:720px)"/>
  • 在实际开发中,常用的响应断点阈值设定(括号后面是样式的缩写):
    在这里插入图片描述
  • 在实际开发中,常用的两种适配方案:
    1> 移动端到PC端适配原则(min-width从小到大):
    在这里插入图片描述
    2> PC端到移动端适配原则(max-width从大到小):
    在这里插入图片描述
  • 在实际开发时,@media会结合栅格系统一起来使用,实现真正意义上的响应式开发。
    1> 超小屏幕(手机,小于768px)
    在这里插入图片描述
    2> 小屏幕(平板,大于等于768px)
    在这里插入图片描述
    3> 中等屏幕(桌面显示器,大于等于992px)
    在这里插入图片描述
    4> 超大屏幕(大桌面显示器,大于等于1200px)
    在这里插入图片描述

2.3 rem响应式布局

  • rem布局就是让一些不能等比自适应的元素,达到当设备尺寸发生改变的时候,等比例适配当前设备。我们可以通过使用媒体查询,根据不同设备按比例设置html的字体大小,然后页面元素使用rem做尺寸单位,当html字体大小变化,元素尺寸也会发生变化,从而达到等比例缩放的适配。
  • rem(root em)是一个相对单位,类似于em,em是父元素字体大小。他和em不同的是rem的基准是相对于html元素的字体大小。比如,根元素(html)设置font-size=12px;非根元素设置width:2rem,换成px表示就是24px。在这里,rem有一个优势:父元素文字大小可能不一致,但是整个网页只有一个html,可以很好来控制整个页面的元素大小。因此我们可以使用rem来布局我们的页面,这就是rem布局的方式。
    在这里插入图片描述

2.4 vw / vh响应式布局

  • vw表示相对于视图窗口的宽度,vh表示相对于视图窗口高度。
  • 视图窗宽度=100vw
  • 视图窗高度=100vh
  • 任意层级元素,在使用vw单位的情况下,1vw都等于视图宽度的百分之一,与百分比布局很相似。
  • 如果移动端有5个不同的视口宽尺寸750,640,480,375,320,则在不同尺寸下,对应的1vw的px值如下表:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

2.5 flex弹性布局

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

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

相关文章

完全背包 动态规划 + 一维dp数组

动态规划&#xff1a;完全背包理论基础 每件商品都有无限个&#xff01;&#xff01;&#xff01; &#xff08;1&#xff09;0-1背包的核心代码 解决0-1背包问题&#xff08;方案二&#xff09;&#xff1a;一维dp数组&#xff08;滚动数组&#xff09;_呵呵哒(&#xffe3;…

【.net core】使用nssm发布WEB项目

nssm下载地址&#xff1a;NSSM - the Non-Sucking Service Manager 配置方式 修改服务在nssm工具下输入命令:nssm edit jntyjr 其中 jntyjr为添加服务时设置的Service name nssm可以设置任何以参数启动的应用程序以服务形式启动,通过设置参数内容启动服务 以上配置等同于执行…

14:00面试,14:06就出来了,这问的谁顶得住啊

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到8月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%,…

在比特币上使用可检索性证明支付存储费用

我们为用户开发了一种为云存储付费的新方法。 与亚马逊的 S3 等传统云存储相比&#xff0c;用户不必信任服务器。 我们使用比特币智能合约来确保支付取决于服务器的可检索性证明 (PoR)&#xff0c;该证明只能在数据仍然可用且需要时可以检索的情况下生成。 可检索性证明 (PoR)…

国际播客日 · 森海塞尔精选播客设备满足各类音频需求

森海塞尔精选播客设备 为庆祝今年的国际播客日,森海塞尔带来一系列适合各类需求和预算的出色音频解决方案 9月30日被定为国际播客日,至今已有九年的时间了。作为庆祝播客力量的全球性节日,国际播客日备受播客听众和创作者喜爱。播客的选择琳琅满目,从真实犯罪案件、阴谋论和名…

如何办一份有价值的企业内刊/报纸?向《华为人》学习就够了

前两天有一个朋友联系华研荟&#xff0c;说他是今年大学毕业加入了一个中型公司&#xff0c;他学的是企业管理&#xff0c;在公司人力资源部门工作。上周老板说公司要办一份自己的内刊&#xff0c;这个工作由人力资源部负责&#xff0c;而人力资源经理就把这个活交给她了。 她…

springcloud:三、ribbon负载均衡原理+调整策略+饥饿加载

Ribbon负载均衡原理 调整Ribbon负载均衡策略 第一种会对order-service里所有的服务消费者都采用该新规则 第二种会针对order-service里某个具体的服务消费者采用该新规则 饥饿加载

混淆技术研究笔记(一)常见工具介绍

混淆技术研究笔记包含多篇内容&#xff0c;记录了一次混淆的研究和应用的过程。 本文首发于 CSDN&#xff0c;随后会发布在 MyBatis 微信公众号&#xff0c;通过公众号可以免费阅读。 最近有一个 Java 的底层框架需要进行混淆&#xff08;从原始的 Java 项目改造为了 Maven 多模…

logback.xml springboot 项目通用logback配置,粘贴即用,按日期生成

<configuration scan"false" scanPeriod"10 seconds"><!-- 定义日志存放的根目录 --><property name"log.dir" value"./logs" /><!-- 彩色日志依赖的渲染类 --><conversionRule conversionWord"clr&q…

究竟是什么样的讲解二分查找算法的博客让我写了三小时???

版本说明 当前版本号[20230926]。 版本修改说明20230926初版 目录 文章目录 版本说明目录二分查找基础版算法描述分步演示情况一&#xff1a;能在有序数组找到待查值情况二&#xff1a;不能在有序数组找到待查值 翻译成代码基础版代码&#xff08;包括测试类&#xff09;疑惑…

分布式微服务架构中的关键技术解析

分布式微服务架构是构建现代应用的理想选择&#xff0c;它将复杂系统拆分成小而自治的服务&#xff0c;每个服务都能独立开发、测试和部署。在实际的开发过程中&#xff0c;如何实现高效的分布式微服务架构呢&#xff1f;下面笔者根据自己多年的实战经验&#xff0c;浅谈实战过…

【微信小程序】全局配置

1.全局配置文件及常用的配置项 Window 1&#xff09;小程序窗口的组成部分 2&#xff09;window结点常用的配置项 3&#xff09;设置导航栏的标题 4&#xff09;设置导航栏的背景色 这个颜色仅支持“#”开头的十六进制颜色&#xff0c;不能直接使用如&#xff1a;red&#x…

暗猝灭剂BHQ-1 NHS,916753-61-2,BHQ-1 SE

产品简介&#xff1a;黑洞猝灭剂-1&#xff08;BHQ-1&#xff09;被归类为暗猝灭剂&#xff08;一种非荧光发色团&#xff09;&#xff0c;被广泛用作各种荧光共振、能量转移&#xff08;FRET&#xff09;和DNA检测探针中&#xff0c;此类探针主要用于核酸分析及核酸结构研究。…

酒店预订小程序制作详细步骤解析

" 随着移动设备的普及和互联网技术的不断发展&#xff0c;小程序成为了一个备受关注的应用领域。特别是在酒店预订行业&#xff0c;小程序可以为酒店带来更多的客源和方便快捷的预订服务。下面是酒店预订小程序的制作详细步骤解析。 第一步&#xff1a;注册登录【乔拓云】…

Vue+ElementUI实现动态树和表格数据的查询

目录 前言 一、动态树的实现 1.数据表 2.编写后端controller层 3.定义前端发送请求路径 4.前端左侧动态树的编写 4.1.发送请求获取数据 4.2.遍历左侧菜单 5.实现左侧菜单点击展示右边内容 5.1.定义组件 5.2.定义组件与路由的对应关系 5.3.渲染组件内容 5.4.通过动态…

RIP路由

目录 RIP路由 1、什么是RIP路由 2、RIP的工作原理是什么 3、RIP v1 和 RIP v2的区别 4、RIP的常用场景 5、RIP的通信流程 6、RIP的优缺点 优点&#xff1a; 缺点&#xff1a; 7、扩展部分 1.RIP路由的作用与应用场景 2.与其他路由协议的区别 3.RIP路由协议的工作原…

手撸RPC【gw-rpc】

文章目录 基于 Netty 的简易版 RPC需求分析简易RPC框架的整体实现协议模块 &#x1f4d6;自定义协议 &#x1f195;序列化方式 &#x1f522; 服务工厂 &#x1f3ed;服务调用方 ❓前置知识——动态代理&#x1f573;️Proxy类InvocationHandler 接口 RPC服务代理类内嵌Netty客…

组合数4 高精度计算组合数

一般来说需要高精乘和高精除&#xff0c;但化简为质因子形式后只用高精乘。 一个阶乘n中因子p的个数&#xff1a; #include<bits/stdc.h> #define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define endl \nusing namespace std;typedef pair<int, int&…

python+nodejs+php+springboot+vue 导师双选系统

为了直观显示系统的功能&#xff0c;运用用例图这样的工具显示分析的结果。分析的导师功能如下。导师管理导师选择信息&#xff0c;管理项目&#xff0c;管理项目提交并对学员提交的项目进行指导。 为了直观显示系统的功能&#xff0c;运用用例图这样的工具显示分析的结果。分析…

神仙打架!谷歌和OpenAI竞相推出多模式AI

原创 | 文 BFT机器人 随着秋季的到来&#xff0c;科技界正在展开另一场季节性活动——科技巨头谷歌和OpenAI正在竞相发布下一代多模态大语言模型&#xff0c;这些高级模型能够解释图像和文本&#xff0c;使他们能够执行诸如从草图生成网站代码或以文本形式描述视觉图表等任务。…