前端响应式布局

1.什么是响应式布局?

响应式布局是一种使网页在不同设备(如手机、平板和桌面)上均能良好显示的设计理念。

2.响应式布局的原理?

通过灵活的网格布局、CSS 媒体查询和弹性单位等技术,实现内容自适应屏幕尺寸变化。

3.响应式布局的体现?

响应式布局通常使用网格系统来控制页面的结构。可以使用 CSS 的 flexbox CSS Grid 来创建灵活的布局。

3.1. flexbox布局

Flexbox 是一种一维布局模型,适用于单行或单列的布局。代码示例如下:

<div class="container"><div class="item">1</div><div class="item">2</div><div class="item">3</div>
</div>
.container {display: flex;            /* 使用 Flexbox 布局 */flex-wrap: wrap;         /* 允许换行 */justify-content: space-around; /* 项目均匀分布 */
}.item {flex: 1 1 200px;         /* 使每个项目至少 200px 宽,并可以增长 */margin: 10px;           /* 每个项目之间的间距 */background-color: #f2f2f2; /* 背景色 */text-align: center;      /* 文本居中 */padding: 20px;           /* 内边距 */
}

3.2. CSS Grid布局

CSS Grid 是一种二维布局模型,更适合复杂的布局。示例代码如下:

<div class="grid-container"><div class="grid-item">1</div><div class="grid-item">2</div><div class="grid-item">3</div><div class="grid-item">4</div>
</div>
.grid-container {display: grid;                  /* 使用 Grid 布局 */grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); /* 自动填充列 */gap: 10px;                      /* 网格间隙 */
}.grid-item {background-color: #f2f2f2;     /* 背景色 */text-align: center;             /* 文本居中 */padding: 20px;                  /* 内边距 */
}

3.3. 媒体查询(响应式布局的核心)

媒体查询是响应式设计的核心,允许开发者根据不同的屏幕特性(如宽度、高度、方向等)应用不同的样式。示例代码如下:

@media (max-width: 768px) {.item {flex: 1 1 100%;             /* 小于 768px 时,每个项目占满整行 */}
}@media (max-width: 480px) {.item {font-size: 14px;           /* 小于 480px 时,字体变小 */}
}

3.4. 弹性单位

使用相对单位(如 %emremvhvw 等)可以使布局更灵活。

  • 百分比 (%):根据父元素的宽度或高度计算。
  • emrem:相对于字体大小,em 是相对于父元素的字体大小,rem 是相对于根元素(通常是 <html>)的字体大小。
  • vhvw:相对于视口的高度和宽度,1vh 是视口高度的 1%,1vw 是视口宽度的 1%。

代码示例如下:

.container {width: 80%;                   /* 容器宽度为视口宽度的 80% */padding: 2rem;               /* 内边距为根元素字体大小的 2 倍 */
}.item {height: 20vh;                /* 项目高度为视口高度的 20% */
}

3.5. 响应式图片和媒体

为了确保图片和视频等媒体在不同屏幕尺寸上适应,可以使用 CSS 的 max-width 属性。代码示例如下:

img {max-width: 100%;             /* 图片最大宽度为其父元素的 100% */height: auto;                /* 高度自动调整 */
}

除此以外还可以使用img标签的srcset属性。它允许为<img>标签指定多个源图像,并根据设备屏幕的大小和分辨率来选择最合适的图像。代码示例如下:

<img src="small.jpg"srcset="small.jpg 500w, medium.jpg 1000w, large.jpg 1500w"sizes="(max-width: 600px) 500px, (max-width: 900px) 1000px, 1500px"alt="示例图像"
>

一般情况下,scset和sizes属性一起使用,因为sizes可以帮助浏览器更准确地知道在不同视图下应该显示多大的图像,这样浏览器在选择图像时就更加精准了。

srcset:列出了三个图像源和它们各自的宽度描述符。500w、1000w和1500w告诉浏览器每个图像的自然宽度。

sizes:

  • 当视口宽度最大为600px时,图像的显示大小应为500px宽。
  • 当视口宽度最大为900px时,图像的显示大小应为1000px宽。
  • 如果视口宽度超过900px时,图像的显示大小应为1500px宽。
     

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

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

相关文章

Spring 的三级缓存机制

Spring 在处理 循环依赖 时使用了 三级缓存机制&#xff0c;这是 Singleton Bean 创建过程中为了解决循环依赖的一种策略。通过三级缓存&#xff0c;Spring 可以提前暴露未完全初始化的对象&#xff0c;避免循环依赖导致的无限递归错误。 1. 三级缓存的结构 Spring IOC 容器的…

开发规范 - mac系统1小时装机极速装机开发环境

idea 官网下载&#xff0c;然后想办法破解 idea必备配置 设置自动import IDEA插件安装 idea必备插件 maven helperlombokMybatisX jdk配置 jdk不用单配配置&#xff0c;在idea中&#xff0c;选择一个语言环境&#xff08;jdk8/jdk11/jdk17…&#xff09;,然后默认下载j…

php计算经纬度距离 及 某点是否在经纬度节点范围

js版 计算经纬度距离 及 某点是否在经纬度节点范围 本文档由 https://blog.csdn.net/AdminGuan/article/details/128118657 改版而来。 php 版 计算经纬度距离 及 某点是否在经纬度节点范围 public function index(){//1.计算两个点(经纬度)的距离$staVal [lng > 106.64…

unity学习笔记-Text mesh Pro

Text mesh Pro组件 组件使用的大致流程细节导入之后字体没有显示可能一可能二 注意事项 好久没更了…最近在学习使用别人的框架进行开发&#xff0c;坑也不少&#xff0c;不过学习到了很多设计思维。 言归正传。忘了是什么是时候的版本开始&#xff0c;unity多了这个组件&#…

K哥30个站点的逆向爬虫代码|pyexecjs库的基本使用

仓库地址&#xff1a;https://github.com/kgepachong/crawler/ 常见问题 JS 代码里引用了三个库&#xff0c;npm install 安装一下即可&#xff0c;如果安装了还提示找不到库&#xff0c;那就是路径问题&#xff0c;推荐在当前目录下执行命令安装&#xff0c;或者在 Python 代…

WPF入门_02依赖属性

1、依赖属性主要有以下三个优点 1)依赖属性加入了属性变化通知、限制、验证等功能。这样可以使我们更方便地实现应用,同时大大减少了代码量 2)节约内存:在WinForm中,每个UI控件的属性都赋予了初始值,这样每个相同的控件在内存中都会保存一份初始值。而WPF依赖属性很好地…

uiautomatorviewer安卓9以上正常使用及问题处理

一、安卓9以上使用uiautomatorviewer问题现象 打开Unexpected error while obtaining UI hierarchy 问题详情 Unexpected error while obtaining UI hierarchy java.lang.reflect.InvocationTargetException 二、问题处理 需要的是替换对应D:\software\android-sdk-windows…

Linux环境下Jmeter执行压测脚本

Linux环境下Jmeter执行压测脚本 前提官网下载Jmeter执行脚本 前提 注意&#xff1a;Jmeter的运行依赖Java环境 官网下载Jmeter 1、下载链接&#xff1a;https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.6.3.zip 2、解压 unzip apache-jmeter-5.6.3.zip 执行脚本…

洛谷刷题 P1003 [NOIP2011 提高组] 铺地毯

题目传送&#xff1a;P1003 [NOIP2011 提高组] 铺地毯 思路 该题主要考察模拟思想&#xff0c;可以用二维数组来模拟表示地面&#xff0c;每个坐标点记录其最上层地毯&#xff0c;然后每输入一张地毯数据就对地面相应坐标点进行修改&#xff0c;最后读取目标地点的状态&#…

python将照片集导出成视频

shigen坚持更新文章的博客写手&#xff0c;记录成长&#xff0c;分享认知&#xff0c;留住感动。个人IP&#xff1a;shigen 背景 一个安静的下午&#xff0c;看着电脑里乱七八糟的照片&#xff0c;有大有小&#xff0c;宽高不一&#xff0c;突然想找个方式把他们统一起来&…

PC企业微信自动回复,群发管理,定时发送,朋友圈

服务提供了丰富的API和SDK&#xff0c;可以在企微的功能之上进行应用开发和功能扩展 自建应用可以调用企微hook或协议提供的接口来实现数据交互&#xff0c;可以直接调用hook或协议接口提供的功能来进行消息的发送与接收、用户管理、应用管理等操作&#xff0c;通过接口可以实…

滚雪球学Redis[7.0讲]:Redis在Web应用中的会话管理:实现、优化与安全性!

全文目录&#xff1a; ☁️前言⛅️1. 在Web应用中使用Redis管理会话&#x1f567;️1.1 什么是会话管理&#xff1f;&#x1f550;️1.2 为什么选择Redis来管理会话&#xff1f;&#x1f55c;️1.3 示例&#xff1a;使用Redis实现会话管理&#x1f551;️代码示例&#x1f55d…

Vue前端预览docx文档

Vue前端预览docx文档 实现效果 vue代码 <el-dialog title"预览" :visible.sync"filePreview"><div ref"file"></div></el-dialog>引入依赖文件 官方文档地址 https://www.npmjs.com/package/docx-preview?activeTabre…

MacOS安装BurpSuite

文章目录 一、下载地址二、下载注册机三、安装教程四、启动burpsuit五、免责声明 一、下载地址 https://portswigger-cdn.net/burp/releases/download?productpro&version2024.7.1&typeMacOsx二、下载注册机 https://github.com/NepoloHebo/BurpSuite-BurpLoaderKey…

Java 多线程进阶:常见的锁策略/synchronized原理/CAS(更新中)

一.常见的锁策略 锁:非常广义的话题; synchronized:只是市面上五花八门的锁的其中一种典型的实现,Java内置的推荐使用的锁; (1)乐观锁 && 悲观锁 乐观锁:加锁的时候,假设出现锁冲突的概率不大;接下来围绕加锁要做的工作很少; 悲观锁:加锁的时候,假设出现锁冲突的概…

数据库中存储树状关系的数据

三张表的文字描述 表1&#xff1a;包含字段A1,字段A2,字段A3. 字段A1是主键 表2&#xff1a;包含字段B1&#xff0c;字段B2&#xff0c;字段A1 字段B1是主键&#xff0c;字段A1是其外键。 1个字段A1的值可以匹配多条表2的记录. 表3&#xff1a;包含字段C1&#xff0c;字段C2&am…

下午题数据库设计15分

一、考什么 题目会给场景&#xff0c;和数据库的设计过程&#xff0c;让你补充残缺的E-R图&#xff0c;关系模式&#xff0c;找主键外键。还有1-2分的随机题型。 二、答题技巧 熟练基本知识结合题干 三、例题

【OD】【E卷】【真题】【200分】项目排期(PythonJavaJavaScriptC++C)

题目描述 项目组共有N个开发人员&#xff0c;项目经理接到了M个独立的需求&#xff0c;每个需求的工作量不同&#xff0c;且每个需求只能由一个开发人员独立完成&#xff0c;不能多人合作。假定各个需求直接无任何先后依赖关系&#xff0c;请设计算法帮助项目经理进行工作安排…

构建高效在线考试平台:Spring Boot与JavaWeb的融合

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的管理显得特别重要。因此&#xff0c;使用计算机来管理基于JavaWeb技术的在线考试系统设计与实现…

python图片文件路径排序

解决用sord 排序文件路径乱序问题&#xff1a; image_files 是 图片文件路径列表[pythonProject/video2img/1.jpg,pythonProject/video2img/2.jpg,.......] image_files.sort(keylambda x: int(x.split(/)[-1].split(.)[0]))