响应式 Web 开发终极指南

响应式 web 开发终极指南

介绍

以下是如何确保您的设计在任何设备上保持灵活且美观的方法。让我们看一下使 web 应用程序响应式时需要考虑的关键事项。

css 单位

css 提供了多种单位,有时会让人难以选择正确的单位。

px:无论屏幕尺寸如何,基于像素的单位都保持不变。%:基于百分比的单位相对于其父元素的大小。vw 和 vh:基于视口宽度/高度的单位相对于视口的宽度/高度。dvw 和 dvh:动态视口宽度和高度单位与 vw 和 vh 类似,但它们会根据视口的变化(即屏幕键盘出现时)进行动态调整。rem:相对于根元素的字体大小,为缩放提供一致的基础。em:相对于当前元素的字体大小,对于组件内缩放很有用。calc():允许您使用不同单位执行计算的函数。例如,calc(100% – 20px) 可以帮助混合相对和绝对单位。

有关 css 单元的完整列表(尽管许多单元很少使用),请查看此 mdn web 文档页面。

响应式图像

有几种方法可以提高网络上的图像响应能力。

使用宽度和高度:自动

通过将最大宽度限制和高度设置为自动,我们可以使图像响应,而无需更改图像的长宽比。

img {    width: 100%; /* or any fixed width */    height: auto;   }

如果您希望图像缩小,但不要放大到大于其原始大小,请使用 max-width 而不是 width。

使用 img 元素和 srcset

如果您需要针对不同视口大小或分辨率的同一图像的不同版本怎么办?带有 srcset 属性的 响应式 Web 开发终极指南 标签允许浏览器自动选择最适合设备的图像。
请注意,不同版本并不意味着相同的文件,而是经过调整(例如调整大小、压缩)以适应不同设备的图像。

@@##@@

如果视口宽度为600px或更小,浏览器将使用宽度为100vw的small.jpg。浏览器还将使用small.jpg作为后备图像。如果视口宽度在 601px 到 1200px 之间,浏览器将使用宽度为 75vw 的medium.jpg。对于任何宽度超过1200px的视口,浏览器将使用宽度为50vw的large.jpg。

使用图片元素和 srcset

如果您需要针对不同视口大小或分辨率的不同图像怎么办?带有 srcset 属性的 元素允许您为不同的视口大小或分辨率定义不同的图像。

      @@##@@

在此示例中:

如果视口宽度为600px或更小,浏览器将使用small.jpg。如果视口宽度在 601px 到 1200px 之间,浏览器将使用medium.jpg。对于任何超过 1200px 的视口宽度,浏览器将使用 large.jpg。

响应式排版

相对单位

html {    font-size: 16px;}.parent {    font-size: 2rem; /* 32px (2 * 16px) */}.child {    font-size: 0.5em; /* 16px (0.5 * 32px) */}

em 单位是相对于父元素的字体大小。在上面的示例中,子类的字体大小为 16px,因为它是父元素字体大小(32px)的一半。

rem 单位是相对于根元素的字体大小 (html) 而言的。在上面的示例中,父类的字体大小为 32px,因为它是根类字体大小(16px)的两倍。

基于视口的单位

h1 {  font-size: 5vw;}h2 {  font-size: 5vh;}

vw 单位与视口的宽度相关。vh 单位是相对于视口高度的。

夹紧功能

如果您需要使用相对或基于视口的单位但在最小和最大限制范围内怎么办?
例如,我希望我的字体大小相对于视口的宽度,但最小值应为 12px,最大值应为 48px。钳位功能是此类场景的理想选择。

h1 {  font-size: clamp(12px, 3vw, 48px);}

响应式布局

弹性盒

如果您需要主要在一维布局中对齐项目怎么办? (行或列)

card 1
card 2
card 3
.card-container {  display: flex; /* enable flexbox layout */  justify-content: space-around; /* space evenly between and around cards */}.card {  background-color: black;  border: 1px solid white;  color: white;  text-align: center;  padding: 20px;}

在此处了解有关 flexbox 的更多信息

网格

如果您需要主要在二维布局中对齐项目怎么办? (行和列)

card 1
card 2
card 3
card 4
.card-container {  display: grid; /* enable grid layout */  grid-template-columns: 1fr 1fr; /* two equal columns */  grid-template-rows: 1fr 1fr; /* two equal rows */  gap: 10px; /* space between grid items */  width: 100%; /* full width of the container */}.card {  background-color: black;  border: 1px solid white;  color: white;  text-align: center;  padding: 20px;}

在这里阅读有关网格的更多信息

媒体查询

如果您想在设备满足特定条件时应用特定样式怎么办?最常见的是,这些条件与设备的宽度有关。

card 1
card 2
card 3
.card-container {  display: flex;  flex-direction: column; /* default: single-column layout */}/* media query for tablet devices (min-width: 768px) */@media (min-width: 768px) {  .card-container {    flex-direction: row; /* change to two-column layout */  }  .card {    flex: 1; /* equal width for all cards */  }}/* media query for desktop devices (min-width: 1024px) */@media (min-width: 1024px) {  .card {    flex: 25%; /* each card takes 25% of the width */  }}

媒体查询还可以与其他特征一起使用,例如高度、方向、宽高比、分辨率、指针、首选颜色方案和显示模式。

视口元标签


此标签负责向浏览器提供有关如何控制页面尺寸和缩放的说明。 width=device-width 部分设置页面的宽度跟随屏幕宽度,initial-scale=1.0 控制页面首次加载时的缩放级别。

响应式框架和组件库

如果你不想重新发明轮子,有很多响应式框架可以节省时间和精力。

bootstrap:一种广泛使用的框架,具有预先设计的组件,用于快速响应式网站开发。

tailwind css:实用程序优先的框架,可通过实用程序类实现快速自定义设计。

mui:基于 material design 的 react 库,提供响应式预样式组件。

shadcn:专注于现代、可访问且可自定义的响应式组件。

ant design:阿里巴巴面向企业应用的综合设计系统,以响应式组件为特色。

采用移动优先的方法进行设计

移动优先方法意味着从针对较小屏幕(例如智能手机)的设计开始,然后逐渐为较大屏幕(例如平板电脑和台式机)添加更多功能。通过这种方式,我们确保基本体验在移动设备上运行良好,然后您可以在此基础上为更大的设备构建。

.card-container { /* default code is for mobile view */  display: flex;  flex-direction: column;  flex-wrap: wrap;  justify-content: center;  padding: 20px;  gap: 12px;}@media (min-width: 768px) { /* queries/cases are for larger views */  .card-container {    flex-direction: row;    gap: 18px;  }}

example imageexample image

以上就是响应式 Web 开发终极指南的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1629999.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
使用 Bootstrap 创建响应式布局
上一篇 2025年12月24日 12:55:50
Reactjs 中使用的最佳 CSS 框架
下一篇 2025年12月24日 12:56:11

相关推荐

  • yii2asset使用cdn

    在 Yii2 中使用 CDN 加速资源可以:注册一个 CDN 服务,并在其中设置 CDN 区域和缓存规则。在 Yii2 配置文件中配置 CDN:添加 CDN URL、启用链接资产、指定要加速的包。例如,使用 Bootstrap 资产时,可将其 CDN 配置为 ‘//cdn.example…

    2026年8月29日
    100
  • 百度浏览器兼容模式切换 解决网页显示问题的实用指南

    兼容模式可解决百度浏览器访问老旧网站时的显示问题,通过切换至IE内核模拟渲染。2. 网页异常多因历史遗留技术与现代标准不兼容,兼容模式用Trident内核适配旧站,极速模式用Blink内核支持现代网页。3. 布局错乱、功能失效、资源无法加载等现象提示需切换兼容模式,点击地址栏右侧IE图标选择即可。 …

    2026年8月29日
    000
  • laravel8 的优化点

    Laravel 8 针对性能优化提供了以下选项:缓存配置:使用 Redis 缓存驱动、缓存门面、缓存视图和页面片段。数据库优化:建立索引、使用查询范围、使用 Eloquent 关系。JavaScript 和 CSS 优化:使用版本控制、合并和缩小资产、使用 CDN。代码优化:使用 Composer …

    2026年8月29日
    100
  • iaravel 如何学习

    学习 Laravel 的步骤有:具备 PHP 基础知识。安装 Laravel 框架。了解 Laravel 架构。学习基本语法:路由、控制器、视图、模型。构建小型应用练习框架使用。参阅官方文档获取详细指引。加入社区交流心得、寻求帮助。保持更新,关注新特性。 如何学习 Laravel Laravel 是…

    2026年8月29日
    000
  • VSCode盒子背景怎么居中_VSCode界面元素居中显示教程

    答案:通过Zen模式结合手动调整窗口大小,可实现VSCode代码区域的视觉居中。进入Zen模式(Ctrl+K Z)隐藏非编辑元素,再将窗口拖窄并置于屏幕中央,使代码居中显示,提升专注度;也可使用“Centered Editor”类插件强制居中,或利用系统窗口管理功能优化布局。配合主题、字体、面板位置…

    2026年8月29日
    100
  • 如何解决Laravel项目中生成PDF文档的问题?spatie/laravel-pdf助你轻松实现!

    可以通过一下地址学习composer:学习地址 在 laravel 项目中,生成 pdf 文档是一个常见的需求,尤其是在需要生成报表、发票或其他文档时。然而,传统的生成 pdf 的方法往往复杂且难以实现现代化布局。最近,我在项目中遇到了这样的问题:需要生成一个包含复杂布局的发票 pdf,传统方法难以…

    用户投稿 2026年8月29日
    500
  • VSCode怎么编写地图定位_VSCode集成地图API开发位置服务应用教程

    答案是集成地图API实现定位需选择服务商、引入SDK、初始化地图并调用定位功能。具体为:在VSCode中创建Web项目,引入百度等地图API的SDK,通过HTML页面加载地图容器,使用JavaScript初始化地图实例,并结合浏览器Geolocation API或地图SDK自带控件获取位置,最后添加…

    2026年8月29日
    100
  • ThinkPHP 6 环境配置(Nginx/Apache + PHP 8)

    配置 thinkphp 6 环境需要在 nginx 或 apache 上结合 php 8 进行设置。1) nginx 配置:编辑 nginx.conf 文件,设置 server 块以正确处理 php 文件。2) apache 配置:在 httpd.conf 文件中添加 virtualhost 配置,…

    2026年8月29日
    200
  • Mac+IDEA+百度富文本UEditor

    Mac+IDEA+百度富文本UEditorMac+IDEA+百度富文本UEditorMac+IDEA+百度富文本UEditorMac+IDEA+百度富文本UEditor

    最近,我在项目中需要嵌入一个富文本编辑器,考虑到百度ueditor的强大功能,决定使用它。然而,从%ignore_a_1%+eclipse环境转到mac+idea后,遇到了几个问题。经过一番努力,终于解决了这些问题,现分享我的经验。 环境:Mac + IDEA + UEditor 基于 Maven+…

    2026年8月29日 用户投稿
    200
  • 如何解决HTML解析问题?使用paquettg/php-html-parser可以!

    可以通过一下地址学习composer:学习地址 在开发一个需要从网页中提取特定数据的项目时,我遇到了一个棘手的问题:如何高效地解析和操纵html内容。尝试了几种方法后,我发现这些方法要么过于复杂,要么不够灵活,无法满足我的需求。最终,我找到了paquettg/php-html-parser这个库,它…

    用户投稿 2026年8月29日
    400
  • VSCode怎么更改鼠标颜色_VSCode自定义鼠标指针颜色与样式教程

    答案:可通过修改VSCode设置自定义光标颜色、样式、粗细及闪烁方式以提升编码体验。具体包括在settings.json中配置editor.cursorStyle、editor.cursorWidth、editor.cursorBlinking,以及通过workbench.colorCustomiz…

    2026年8月28日
    100
  • 推荐几款好用的文本编辑器

    推荐几款好用的文本编辑器推荐几款好用的文本编辑器推荐几款好用的文本编辑器推荐几款好用的文本编辑器

    作为程序员,编写和查看代码是日常工作的重要部分。今天,我将为大家介绍几款实用的文本编辑器。 Sublime Text 是一款轻量、简洁、高效且跨平台的编辑器。 Sublime Text的特色功能包括: 出色的扩展功能,官方称为安装包(Package)。它没有传统的右侧滚动条,而是用代码缩略图代替,这…

    2026年8月28日 用户投稿
    300
  • 如何解决PHP中生成随机内容的问题?使用pragmarx/random库可以!

    可以通过一下地址学习composer:学习地址 在开发一个php项目时,我需要生成各种随机内容,包括字符串、数字和符合特定模式的文本。这个需求看似简单,但实际上却充满了挑战。最初,我尝试使用php的内置函数如rand()和mt_rand(),但这些函数生成的随机数不够安全,无法满足我的需求。此外,我…

    用户投稿 2026年8月28日
    100
  • 如何清理浏览器缓存_各浏览器缓存清除指南

    清理浏览器缓存是指删除浏览器为加速网页加载而存储的临时文件,如图片、css、javascript等;2. 主要目的是解决网页显示错乱、加载旧内容等问题,并释放硬盘空间;3. 操作核心是进入浏览器设置或使用快捷键,选择清除数据类型时务必勾选“缓存的图片和文件”;4. 不同浏览器操作路径略有差异:chr…

    2026年8月28日
    200
  • VSCode怎么建立外部样式_VSCode链接外部CSS文件方法教程

    首先创建style.css文件并编写样式,然后在HTML的head中通过link标签引入,最后用Live Server插件实现实时预览;若样式未生效,需检查路径、语法、优先级、缓存及HTML结构,并利用开发者工具调试;大型项目应按模块或页面拆分CSS,结合预处理器、BEM规范和CSS Reset提升…

    2026年8月28日
    200
  • 悟空浏览器如何设置打印网页时不带页眉页脚_悟空浏览器打印网页去掉页眉页脚方法

    在悟空浏览器中打印网页时,可通过打印预览设置取消页眉页脚:打开打印界面后展开更多设置并取消勾选“页眉和页脚”;2. 使用开发者工具添加CSS样式@media print { @page { margin: 0; } }可彻底去除页眉页脚及边距;3. 或将网页导出为PDF:选择虚拟PDF打印机并关闭页…

    2026年8月28日
    100
  • HTTP1.1与HTTP2的区别_HTTP1.1与HTTP2有哪些区别

    http/2通过多路复用在单个tcp连接上并行传输多个独立的数据流,每个流的数据被分割为带流id的二进制帧并交错发送,接收方根据流id重新组装,从而避免了http/1.1中因单个请求阻塞导致后续请求等待的队头阻塞问题;2. hpack头部压缩通过静态字典、动态字典和哈夫曼编码减少重复头部信息的传输量…

    2026年8月28日
    400
  • 如何进入调试模式_怎样启用开发者调试模式

    启用开发者调试模式的具体步骤因设备或软件环境而异,最常见的场景是网页浏览器和安卓设备;在chrome浏览器中可通过f12快捷键或右键“检查”开启开发者工具,其中包含元素、控制台、网络等调试功能;安卓设备需在“关于手机”中连续点击“版本号”七次以激活“开发者选项”,随后可启用usb调试等功能。2. 调…

    2026年8月27日
    200
  • SSL证书是什么_SSL证书申请方式有哪些

    SSL证书是什么_SSL证书申请方式有哪些SSL证书是什么_SSL证书申请方式有哪些SSL证书是什么_SSL证书申请方式有哪些SSL证书是什么_SSL证书申请方式有哪些

    SSL证书是网站安全的保障,通过加密技术保护数据传输,提升用户信任和搜索引擎排名。申请方式主要有从CA机构购买或通过云服务商获取免费/付费证书。根据网站类型选择合适的证书:DV适合个人网站,OV适合企业,EV适合高安全需求的金融类网站。手动配置较复杂,但云平台提供的一键部署功能可简化流程。免费证书虽…

    2026年8月27日 用户投稿
    300
  • 如何解决前端项目中的图标管理问题?使用Composer可以轻松集成BootstrapIcons

    可以通过以下地址学习Composer:学习地址 在前端开发中,图标的选择和管理一直是一个让人头疼的问题。最近在开发一个新项目时,我遇到了一个棘手的情况:项目中需要使用大量图标,但这些图标来自不同的来源,导致样式不统一,管理起来也非常复杂。这不仅影响了项目的美观度,还严重拖慢了开发进度。 为了解决这个…

    用户投稿 2026年8月27日
    100

发表回复

登录后才能评论
关注微信