《CSS 简易速速上手小册》第3章:CSS 响应式设计(2024 最新版)

在这里插入图片描述

文章目录

  • 3.1 媒体查询基础:网页的智能眼镜
    • 3.1.1 基础知识
    • 3.1.2 重点案例:适应三种设备的响应式布局
    • 3.1.3 拓展案例 1:改变字体大小
    • 3.1.4 拓展案例 2:暗模式适配
  • 3.2 响应式图片和视频:让内容自由呼吸
    • 3.2.1 基础知识
    • 3.2.2 重点案例:响应式图片画廊
    • 3.2.3 拓展案例 1:使用 `<picture>` 元素适配暗模式
    • 3.2.4 拓展案例 2:创建响应式视频
  • 3.3 移动优先与桌面优先策略:瑜伽大师的两种姿态
    • 3.3.1 基础知识
    • 3.3.2 重点案例:从移动到桌面的响应式博客布局
    • 3.3.3 拓展案例 1:移动优先的导航菜单
    • 3.3.4 拓展案例 2:响应式图片展示

3.1 媒体查询基础:网页的智能眼镜

在数字世界的时尚秀上,网页需要能够自如地切换它们的“服装”,以适应各种屏幕尺寸和环境。这就是媒体查询(Media Queries)发挥作用的地方,它们就像是网页的智能眼镜,帮助网页观察和适应周围的环境。通过使用媒体查询,我们可以为不同的屏幕尺寸、方向、分辨率等条件定义不同的CSS规则。

3.1.1 基础知识

  • 媒体类型:包括 allprintscreen 等,分别适用于所有设备、打印机和屏幕设备。
  • 媒体特性:例如 widthheightorientation(方向)等,用于描述媒体的特定特性。
  • 媒体查询语法:媒体查询允许我们根据媒体类型和一个或多个媒体特性的值来应用CSS规则。例如:@media (min-width: 600px) { ... } 表示屏幕宽度至少为600像素时应用的规则。

3.1.2 重点案例:适应三种设备的响应式布局

假设你正在设计一个简单的响应式布局,需要适应手机、平板和桌面三种不同的屏幕尺寸。

  • HTML 结构
<div class="container"><header>头部</header><main>主要内容</main><aside>侧边栏</aside><footer>页脚</footer>
</div>
  • CSS 样式
.container {display: grid;grid-template-columns: 1fr;gap: 10px;
}@media (min-width: 600px) {.container {grid-template-columns: 2fr 1fr;}
}@media (min-width: 1000px) {.container {grid-template-columns: 3fr 1fr;}
}

在这个案例中,我们使用了媒体查询来调整网格布局的列数,以适应不同的屏幕宽度。在宽度至少为600像素的屏幕上,布局变为两列;在宽度至少为1000像素的屏幕上,布局变为三列加上侧边栏。

3.1.3 拓展案例 1:改变字体大小

为了提高在小屏设备上的可读性,我们可能需要在屏幕尺寸较小的设备上减小字体大小。

  • CSS 样式
body {font-size: 16px;
}@media (max-width: 600px) {body {font-size: 14px;}
}

通过设置一个最大宽度为600像素的媒体查询,我们减小了小屏设备上的字体大小,使内容更易于阅读。

3.1.4 拓展案例 2:暗模式适配

许多用户喜欢在低光环境中使用暗模式,我们可以使用媒体查询来为这些用户提供更舒适的视觉体验。

  • CSS 样式
@media (prefers-color-scheme: dark) {body {background-color: #333;color: #fff;}
}

这个媒体查询检查用户的系统是否设置为暗模式,并相应地调整网页的背景颜色和文字颜色。

通过这些案例,我们可以看到媒体查询如何使得创建响应式网站变得简单而直观。无论是适应不同的设备尺寸、调整字体大小还是适配暗模式,媒体查询都是实现这些目标的强大工具。继绀实践和探索媒体查询的可能性,让你的网站在任何环境下都能完美展现。

在这里插入图片描述


3.2 响应式图片和视频:让内容自由呼吸

在响应式设计的舞台上,图片和视频是那些需要特别关照的明星。如果处理得当,它们可以在任何尺寸的屏幕上都展现出最佳状态,为用户带来视觉上的享受。让我们探索如何让这些内容元素在响应式网页设计中“自由呼吸”,无论是在宽敞的桌面显示器上,还是在紧凑的手机屏幕上。

3.2.1 基础知识

  • 使用 srcsetsizes 属性:HTML5 引入了 srcset 属性,让我们可以为 <img> 标签指定一系列的图片资源,浏览器会根据屏幕条件选择最合适的一张。sizes 属性则允许我们定义一系列的媒体条件(如屏幕宽度),并为每一条件指定一个图片大小。
  • 使用 <picture> 元素<picture> 元素允许更多的灵活性,通过包含零个或多个 <source> 元素以及一个 <img> 元素作为回退,可以根据不同的条件(包括媒体查询)来指定不同的图片资源。
  • 响应式视频:视频也可以是响应式的,通常通过设置视频容器的宽度为100%,高度自动调整来实现。

3.2.2 重点案例:响应式图片画廊

假设你需要创建一个图片画廊,其中的图片需要根据访问者的屏幕尺寸加载不同分辨率的图片。

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

在这个案例中,srcset 属性定义了三种不同宽度的图片资源,而 sizes 属性则根据屏幕宽度的不同条件来指定使用哪个资源。这样,浏览器会选择最适合当前屏幕尺寸的图片来显示。

3.2.3 拓展案例 1:使用 <picture> 元素适配暗模式

当网站支持暗模式时,我们可能希望根据用户的偏好显示不同风格的图片。

  • HTML 结构
<picture><source media="(prefers-color-scheme: dark)" srcset="example-dark.jpg"><source media="(prefers-color-scheme: light)" srcset="example-light.jpg"><img src="example-light.jpg" alt="在不支持 source 元素的浏览器中显示">
</picture>

使用 <picture><source> 元素,我们可以根据系统的颜色方案偏好来加载不同的图片,从而提升用户体验。

3.2.4 拓展案例 2:创建响应式视频

为了确保视频内容也能在不同设备上良好展示,我们需要使视频容器具有响应性。

  • HTML + CSS
<div class="responsive-video"><iframe src="https://www.youtube.com/embed/dQw4w9WgXcQ" frameborder="0" allowfullscreen></iframe>
</div>
.responsive-video {position: relative;padding-bottom: 56.25%; /* 16:9 比例 */height: 0;overflow: hidden;
}.responsive-video iframe {position: absolute;top: 0;left: 0;width: 100%;height: 100%;
}

通过创建一个包装器 div 并使用上述 CSS 规则,我们可以让视频自适应容器的宽度,同时保持正确的宽高比,确保视频在任何设备上都能完美播放。

通过这些案例,我们学会了如何使图片和视频在响应式网页设计中自由呼吸,确保它们在不同设备上都能以最佳状态展现。掌握了这些技巧后,你就能为你的网站访问者提供一个无论在哪种设备上都能享受的美好视觉体验。继续探索和实验吧,让你的内容在数字世界中自由呼吸!

在这里插入图片描述


3.3 移动优先与桌面优先策略:瑜伽大师的两种姿态

在响应式设计的世界里,“移动优先” 和 “桌面优先” 是两种常见的开发策略,它们就像瑜伽大师在展示不同姿态时的两种起始点。选择哪一种,取决于你的目标受众、内容策略以及设计理念。

3.3.1 基础知识

  • 移动优先(Mobile First):这种策略是从最小的屏幕尺寸(通常是手机)开始设计和开发,然后逐渐添加更多的特性和布局来适应更大的屏幕。它强调内容的优先级和核心功能,确保所有用户都能获得最优质的体验。
  • 桌面优先(Desktop First):相反,这种策略是从桌面尺寸的屏幕开始设计,然后通过逐步减少内容和布局复杂度来适应更小的屏幕。这种方法适合内容丰富、功能复杂的网站。
  • 断点(Breakpoints):无论采用哪种策略,断点都是关键概念。断点是在媒体查询中定义的,用于在不同屏幕尺寸下改变布局和样式。

3.3.2 重点案例:从移动到桌面的响应式博客布局

假设你正在设计一个博客网站,希望它在手机、平板和桌面上都能提供优秀的阅读体验。

  • HTML 结构
<div class="blog"><header>博客头部</header><main>博客文章</main><aside>侧边栏</aside><footer>页脚</footer>
</div>
  • CSS 样式
.blog {display: grid;grid-template-columns: 1fr;gap: 10px;
}@media (min-width: 600px) {.blog {grid-template-columns: 3fr 1fr;}
}@media (min-width: 1000px) {.blog {grid-template-columns: 4fr 1fr;grid-template-areas:"header header""main aside""footer footer";}
}

从移动优先的角度出发,我们首先为手机屏幕设计了一个单列布局。随后通过媒体查询逐步为平板和桌面屏幕引入更复杂的多列布局。

3.3.3 拓展案例 1:移动优先的导航菜单

对于导航菜单,移动优先的方法通常涉及到一个折叠式菜单,它在桌面上展开为水平菜单。

  • HTML 结构
<nav class="mobile-first-nav"><ul><li><a href="#">首页</a></li><li><a href="#">文章</a></li><li><a href="#">关于</a></li></ul>
</nav>
  • CSS 样式
.mobile-first-nav ul {list-style: none;padding: 0;margin: 0;display: flex;flex-direction: column;
}@media (min-width: 600px) {.mobile-first-nav ul {flex-direction: row;}
}

这个例子展示了如何使用移动优先策略来创建一个适应不同屏幕尺寸的导航菜单。

3.3.4 拓展案例 2:响应式图片展示

针对不同设备,展示不同尺寸的图片也是响应式设计的一部分。

  • HTML 结构
<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="示例图片">

利用 srcsetsizes 属性,我们可以根据屏幕宽度为用户提供最合适的图片大小,从而优化加载时间和视觉体验。

通过这些案例,我们可以看到,无论是移动优先还是桌面优先策略,关键在于理解目标用户和内容优先级,以及如何利用CSS的强大功能来适应不同设备。这样的策略让我们的网站不仅仅能够在任何设备上工作,而且能够为每个用户提供最佳的体验。继续实践这些技巧,让你的网站成为真正的响应式瑜伽大师!

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

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

相关文章

猫头虎分享已解决Bug | Go Error: cannot use str (type string) as type int in assignment

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

【linux系统体验】-archlinux简易折腾

archlinux 一、系统安装二、系统配置及美化2.1 中文输入法2.2 安装virtualbox增强工具2.3 终端美化2.4 桌面面板美化 三、问题总结3.1 一、系统安装 安装步骤人们已经总结了很多很全: Arch Linux图文安装教程 大体步骤&#xff1a; 磁盘分区安装 Linux内核配置系统&#xff…

git revert回退某次提交

请直接看原文: 【git revert】使用以及理解&#xff08;详解&#xff09;_git revert用法-CSDN博客 -------------------------------------------------------------------------------------------------------------------------------- 前言 试验得知:用Reset HEAD方…

【开源】基于JAVA+Vue+SpringBoot的实验室耗材管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 耗材档案模块2.2 耗材入库模块2.3 耗材出库模块2.4 耗材申请模块2.5 耗材审核模块 三、系统展示四、核心代码4.1 查询耗材品类4.2 查询资产出库清单4.3 资产出库4.4 查询入库单4.5 资产入库 五、免责说明 一、摘要 1.1…

寒假作业:2024/2/11

作业1&#xff1a;使用递归实现n! 代码&#xff1a; #include <stdio.h> #include <string.h> #include <stdlib.h> int fun(int n) {if(0n){return 1;}else{return n*fun(n-1);} } int main(int argc, const char *argv[]) {int n;printf("please en…

从左值和右值的角度分析a++和++a

摘自牛客上的一个题目&#xff1a; int a5,则 (a)的值是? 答案是会编译报错。 原因&#xff1a; a返回的是右值(rvalue)&#xff0c;而我们不能对一个右值进行自增操作。所以(a)会报错。 怎么理解呢&#xff1f; &#xff08;a)返回的是a在1之前的值&#xff0c;这个值是一个…

###C语言程序设计-----C语言学习(11)#数据的存储和基本数据类型

前言&#xff1a;感谢您的关注哦&#xff0c;我会持续更新编程相关知识&#xff0c;愿您在这里有所收获。如果有任何问题&#xff0c;欢迎沟通交流&#xff01;期待与您在学习编程的道路上共同进步。 一. 数据的存储 1.整型数据的存储 计算机处理的所有信息都以二进制形式表示…

【人工智能教育】“奇幻森林里的决战:小明‘剑’指期末,勇闯试卷迷宫

在智慧校园的奇幻乐园中&#xff0c;教育的故事不再局限于传统的粉笔与黑板&#xff0c;而是跃然于光影之间&#xff0c;流淌于数据之海。小明和他的同学们正是这个新世界的探险者&#xff0c;他们手握名为“智能辅导助手”的魔法棒&#xff0c;勇闯知识的迷宫。每当他们在力学…

电子电器架构 —— 对车载软件开发新阶段的愿景

电子电器架构 —— 对车载软件开发新阶段的愿景 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师(Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎么看自己。江湖一碗茶,喝…

Github 2024-02-07 开源项目日报 Top9

根据Github Trendings的统计&#xff0c;今日(2024-02-07统计)共有9个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量Rust项目2TypeScript项目2Python项目2Ruby项目1HTML项目1NASL项目1Go项目1C项目1Svelte项目1C项目1 React Nat…

华为 huawei 交换机 接口 MAC 地址学习限制接入用户数量 配置示例

目录 组网需求: 配置思路&#xff1a; 操作步骤&#xff1a; 配置文件&#xff1a; 组网需求: 如 图 2-14 所示&#xff0c;用户网络 1 和用户网络 2 通过 LSW 与 Switch 相连&#xff0c; Switch 连接 LSW 的接口为GE0/0/1 。用户网络 1 和用户网络 2 分别属于 VLAN10 和 V…

优质项目追踪平台一览:助力项目管理与监控

项目追踪平台是现代项目管理中不可或缺的工具&#xff0c;它可以帮助团队高效地跟踪和管理项目进度、任务和资源分配。在当今快节奏的商业环境中&#xff0c;有许多热门的项目追踪平台可供选择。 本文总结了当下热门的项目追踪平台&#xff0c;供您参考~ 1、Zoho Projects&…

【MySQL】-18 MySQL综合-4(MySQL储存引擎精讲+MySQL数据类型简介+MySQL整数类型+MySQL小数类型)

MySQL储存引擎精讲MySQL数据类型简介MySQL整数类型MySQL小数类型 十一 MySQL存储引擎精讲11.1 什么是存储引擎11.2 MySQL 5.7 支持的存储引擎11.3 如何选择 MySQL 存储引擎11.4 MySQL 默认存储引擎 十二 MySQL数据类型简介12.1 MySQL 常见数据类型1) 整数类型2) 日期/时间类型3…

Spring Cloud Hystrix 参数配置、简单使用、DashBoard

Spring Cloud Hystrix 文章目录 Spring Cloud Hystrix一、Hystrix 服务降级二、Hystrix使用示例三、OpenFeign Hystrix四、Hystrix参数HystrixCommand.Setter核心参数Command PropertiesFallback降级配置Circuit Breaker 熔断器配置Metrix 健康统计配置Request Context 相关参数…

部分意图分类【LLM+RAG】

在生成人工智能领域工作最有价值的事情之一就是发现新兴技术如何融入新的解决方案。 举个例子&#xff1a;在为北美顶级金融服务公司之一设计对话式人工智能助手时&#xff0c;WillowTree 的数据和人工智能研究团队 (DART) 发现&#xff0c;将意图分类与大型语言模型 (LLM) 结合…

基于物联网的实时数据分析(简单介绍)

在当今这个信息化、数字化飞速发展的时代&#xff0c;物联网&#xff08;Internet of Things, IoT&#xff09;和实时数据分析成为了技术革新的两大支柱。对于刚入行的新手来说&#xff0c;理解这两个概念及其相互作用不仅是迈入这一领域的第一步&#xff0c;更是掌握未来技术趋…

专业138+总分400+南京航空航天大学878数电信号考研经验南航电子信息与通信,真题,大纲,参考书

经过一年的复习&#xff0c;顺利被南京航空航天大学录取&#xff0c;初试专业课878数字电路和信号与系统138&#xff0c;总分400&#xff0c;回看这一年的复习&#xff0c;从择校到考研备考经历了很多&#xff0c;也有很多想和大家分享的复习经验&#xff0c;希望对大家复习有所…

免费生成ios证书的方法(无需mac电脑)

使用hbuilderx的uniapp框架开发移动端程序很方便&#xff0c;可以很方便地开发出移动端的小程序和app。但是打包ios版本的app的时候却很麻烦&#xff0c;官方提供的教程需要使用mac电脑来生成证书&#xff0c;但是mac电脑却不便宜&#xff0c;一般的型号都差不多上万。 因此&a…

Python爬虫——请求库安装

目录 1.打开Anaconda Prompt 创建环境2.安装resuests3.验证是否安装成功4.安装Selenium5.安装ChromeDriver5.1获取chrom的版本5.1.1点击浏览器右上三个点5.1.2点击设置5.1.3下拉菜单&#xff0c;点击最后关于Chrome&#xff0c;获得其版本 5.2 打开网址 [chromedriver](https:/…

蓝桥杯每日一题------背包问题(二)

前言 本次讲解背包问题的一些延申问题&#xff0c;新的知识点主要涉及到二进制优化&#xff0c;单调队列优化DP&#xff0c;树形DP等。 多重背包 原始做法 多重背包的题意处在01背包和完全背包之间&#xff0c;因为对于每一个物品它规定了可选的个数&#xff0c;那么可以考虑…