【响应式布局】

news2024/11/24 8:40:33

响应式布局

  • 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.coloradmin.cn/o/1043401.html

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

相关文章

地球的某一片红薯地中秋圆《乡村振兴战略下传统村落文化旅游设计》——旅行季许少辉八月新书辉少许想象和世界一样宽广

地球的某一片红薯地中秋圆《乡村振兴战略下传统村落文化旅游设计》——旅行季许少辉八月新书辉少许想象和世界一样宽广 地球的某一片红薯地中秋圆《乡村振兴战略下传统村落文化旅游设计》——旅行季许少辉八月新书辉少许想象和世界一样宽广]

定义现代化实时数据仓库,SelectDB 全新产品形态全面发布

导读&#xff1a;9 月 25 日&#xff0c;2023 飞轮科技产品发布会在线上正式召开&#xff0c;本次产品发布会以 “新内核、新图景” 为主题&#xff0c;飞轮科技 CEO 马如悦全面解析了现代化数据仓库的演进趋势&#xff0c;宣布立足于多云之上的 SelectDB Cloud 云服务全面开放…

C++学习资源

https://www.cnblogs.com/xueweihan/p/13928719.html GitHub - Light-City/CPlusPlusThings: C那些事 GitHub - 0voice/introduce_c-cpp_manual: 一个收集C/C新手学习的入门项目&#xff0c;整理收纳开发者开源的小项目、工具、框架、游戏等&#xff0c;视频&#xff0c;书籍&a…

[密码学入门]仿射密码(Affine)

加密算法y(axb)mod N 解密算法x*(y-b)mod N(此处的为a关于N的乘法逆元&#xff0c;不是幂的概念&#xff09; 如何求&#xff0c;涉及的知识挺多&#xff0c;还没想好怎么写&#xff0c;丢番图方程&#xff0c;贝祖定理&#xff08;又译裴蜀定理&#xff09;&#xff0c;扩展欧…

学物联网有前途吗?

学物联网有前途吗&#xff1f; 物联网即“万物相连的互联网”&#xff0c;是互联网基础上的延伸和扩展的网络&#xff0c;将各种信息传感设备与互联网结合起来而形成的一个巨大网络&#xff0c;实现在任何时间、任何地点&#xff0c;人、机、物的互联互通。最近很多小伙伴找我&…

中国智能产业高峰论坛:文档大模型与文档图像智能理解的进展和思考

✓ 写在前面✓ 文档大模型的思考与探索✓ 文档图像大模型的进展✓ 多模态大模型与文档图像智能理解多模态大模型的应用和发展文档图像智能理解的技术和挑战产业应用和前景展望 ✓ 写在前面 2023 年第十二届中国智能产业高峰论坛&#xff08;CIIS 2023&#xff09;于 9 月 17-1…

LeetCode 474.一和零 动态规划 一维dp(两个维度)

https://leetcode.cn/problems/ones-and-zeroes/description/ 给你一个二进制字符串数组 strs 和两个整数 m 和 n 。 请你找出并返回 strs 的最大子集的长度&#xff0c;该子集中 最多 有 m 个 0 和 n 个 1 。 如果 x 的所有元素也是 y 的元素&#xff0c;集合 x 是集合 y 的…

在SpringBoot中利用Redis实现互斥锁

在SpringBoot中利用Redis实现互斥锁 基本知识 前提条件&#xff0c;有一个能够在Springboot中使用Redis的项目&#xff0c;或者能够直接开也行 为什么要实现互斥锁&#xff1a;当我们利用Redis存储热点数据时&#xff0c;突然就过期失效或者被删除了&#xff0c;导致大量请求同…

Flink安装及简单使用

目录 转载处&#xff08;个人用最新1.17.1测试&#xff09; 依赖环境 安装包下载地址 Flink本地模式搭建 安装 启动集群 查看WebUI 停止集群 Flink Standalone搭建 安装 修改flink-conf.yaml配置文件 修改workers文件 复制Flink安装文件到其他服务器 启动集群 查…

秦时明月沧海手游阵容推荐,秦时明月沧海角色强度

秦时明月沧海角色强度如何&#xff1f;在秦时明月沧海手游中&#xff0c;您可以从大量的角色卡牌中选择并发展&#xff0c;为了顺利通过各种副本&#xff0c;玩家们需要精心搭配阵容。那么&#xff0c;具体该如何配置最强的角色呢&#xff1f; 下面&#xff0c;小编将带各位玩家…

简述ceph文件储存系统

Ceph 是一个统一的分布式存储系统和共享机制&#xff0c;它定义了数据如何存储在一个或多个节点上并呈现给其他机器以供文件访问。 Ceph特点 高性能 a. 摒弃了传统的集中式存储元数据寻址的方案&#xff0c;采用CRUSH算法&#xff0c;数据分布均衡&#xff0c;并行度高。 b.考…

Vue - 虚拟DOM的简单理解

目录 虚拟DOM虚拟DOM树生成流程 因为直接操作真实的 DOM 会比较影响效率。所以 vue 使用了 虚拟DOM&#xff08;VNode&#xff09;来描述要渲染的内容。 虚拟DOM 它是一个 js 对象&#xff0c;比如&#xff1a; const vnode {tag: "h1",children: [{ tag: undefi…

【太阳能多电平逆变器】采用SPWM技术的太阳能供电多电平逆变器研究(simulink)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

centos编译安装opencv,生成opencv-2413.jar

文章目录 前言一、问题来源二、编译安装1.下载源码2.安装基础环境3.安装java环境4.编译安装5.查询结果 总结 前言 在centos7的环境中&#xff0c;编译安装opencv&#xff0c;获得libopencv_java2413.so、opencv-2413.jar的库文件和jar包文件 一、问题来源 异常提示&#xff1…

【力扣2154】将找到的值乘以 2

&#x1f451;专栏内容&#xff1a;力扣刷题⛪个人主页&#xff1a;子夜的星的主页&#x1f495;座右铭&#xff1a;前路未远&#xff0c;步履不停 目录 一、题目描述二、题目分析 一、题目描述 题目链接&#xff1a;将找到的值乘以 2 给你一个整数数组 nums &#xff0c;另给…

AlienSwap 锋芒初现,NFT 市场或将三分天下

本文仅为资讯分享&#xff0c;不构成任何投资建议&#xff0c;也不推荐您购买、出售或者持有任何加密货币。请读者朋友们 DYOR&#xff0c;理性看待区块链&#xff0c;提高风险意识&#xff0c;谨慎投资&#xff01; ★ Blur 横空出世之前&#xff0c;OpenSea 一直一家独大&am…

一看就会!我把自动化测试框架总结成这样,人人都能学好!

无论是在自动化测试实践&#xff0c;还是日常交流中&#xff0c;经常听到一个词&#xff1a;框架。之前学习自动化测试的过程中&#xff0c;一直对“框架”这个词知其然不知其所以然。 最近看了很多自动化相关的资料&#xff0c;加上自己的一些实践&#xff0c;算是对“框架”…

深入浅出Java的多线程编程——第二篇

目录 前情回顾 1. 中断一个线程 1.1 中断的API 1.2 小结 2. 等待一个线程 2.1 等待的API 3. 线程的状态 3.1 贯彻线程的所有状态 3.2 线程状态和状态转移的意义 4. 多线程带来的的风险-线程安全 (重点) 4.1 观察线程不安全 4.2 线程安全的概念 4.3 线程不安全的原因…

信息安全:网络安全漏洞防护技术原理与应用.

信息安全&#xff1a;网络安全漏洞防护技术原理与应用. 网络安全漏洞又称为脆弱性&#xff0c;简称漏洞。漏洞一般是致使网络信息系统安全策略相冲突的缺陷&#xff0c;这种缺陷通常称为安全隐患。 安全漏洞的影响主要有机密性受损、完整性破坏、可用性降低、抗抵赖性缺失、可…

中睿天下精彩亮相2023国家网络安全宣传周河南省活动

9月11日&#xff0c;2023年国家网络安全宣传周河南省活动正式拉开帷幕&#xff0c;开幕式在八朝古都开封举行。中睿天下受邀参与本次盛会并亮相网络安全产品展&#xff0c;重点展示在网络安全攻击溯源领域的前沿技术、创新方案及实践应用&#xff0c;为与会嘉宾带来了一场独具优…