- HTML 教程
- HTML - 首页
- HTML - 路线图
- HTML - 简介
- HTML - 历史与演变
- HTML - 编辑器
- HTML - 基本标签
- HTML - 元素
- HTML - 属性
- HTML - 标题
- HTML - 段落
- HTML - 字体
- HTML - 块
- HTML - 样式表
- HTML - 格式化
- HTML - 引号
- HTML - 注释
- HTML - 颜色
- HTML - 图片
- HTML - 图片地图
- HTML - 内联框架
- HTML - 短语元素
- HTML - 元标签
- HTML - 类
- HTML - ID
- HTML - 背景
- HTML 表格
- HTML - 表格
- HTML - 表格标题和标题
- HTML - 表格样式
- HTML - 表格 Colgroup
- HTML - 嵌套表格
- HTML 列表
- HTML - 列表
- HTML - 无序列表
- HTML - 有序列表
- HTML - 定义列表
- HTML 链接
- HTML - 文本链接
- HTML - 图片链接
- HTML - 邮件链接
- HTML 颜色名称和值
- HTML - 颜色名称
- HTML - RGB
- HTML - HEX
- HTML - HSL
- HTML 表单
- HTML - 表单
- HTML - 表单属性
- HTML - 表单控件
- HTML - 输入属性
- HTML 媒体
- HTML - 视频元素
- HTML - 音频元素
- HTML - 嵌入多媒体
- HTML 头部
- HTML - 头元素
- HTML - 添加 Favicon
- HTML - Javascript
- HTML 布局
- HTML - 布局
- HTML - 布局元素
- HTML - 使用 CSS 进行布局
- HTML - 响应式
- HTML - 符号
- HTML - 表情符号
- HTML - 样式指南
- HTML 图形
- HTML - SVG
- HTML - Canvas
- HTML API
- HTML - 地理位置 API
- HTML - 拖放 API
- HTML - Web Workers API
- HTML - WebSocket
- HTML - Web 存储
- HTML - 服务器发送事件
- HTML 杂项
- HTML - 文档对象模型 (DOM)
- HTML - MathML
- HTML - 微数据
- HTML - IndexedDB
- HTML - Web 消息传递
- HTML - Web CORS
- HTML - Web RTC
- HTML 演示
- HTML - 音频播放器
- HTML - 视频播放器
- HTML - 网页幻灯片
- HTML 工具
- HTML - Velocity Draw
- HTML - 二维码
- HTML - Modernizer
- HTML - 验证
- HTML - 颜色拾取器
- HTML 参考
- HTML - 速查表
- HTML - 标签参考
- HTML - 属性参考
- HTML - 事件参考
- HTML - 字体参考
- HTML - ASCII 码
- ASCII 表格查找
- HTML - 颜色名称
- HTML - 实体
- MIME 媒体类型
- HTML - URL 编码
- 语言 ISO 代码
- HTML - 字符编码
- HTML - 已弃用标签
- HTML 资源
- HTML - 快速指南
- HTML - 有用资源
- HTML - 颜色代码生成器
- HTML - 在线编辑器
HTML - 响应式网页设计
响应式网页设计是关于设计一个在所有最终用户设备(如手机、平板电脑和台式机)上看起来都很好的网页。它会根据用户设备自动调整大小和其他功能。
响应式网页有助于提高网站的用户体验、可访问性和性能。
如何制作响应式网页?
有几种方法可以使我们的网页具有响应性。一种常见的做法是使用内置的 CSS 或 Bootstrap 框架,这些框架提供预先设计好的组件和网格系统。以下是一些确保网页响应性的通用步骤。
- 使用响应式网格布局
始终使用灵活的网格结构设计布局,这样当屏幕尺寸增大时,网格也会相应地扩展。 - 灵活的图像和媒体
确保网页中的图像在其容器内正确缩放。您可以使用 CSS 属性,例如 "max-width: 100%;" 和 "height: auto;"。 - 使用媒体查询
您可以使用 CSS 媒体查询为不同的屏幕尺寸应用不同的样式。这允许您根据设备的宽度调整布局、字体大小和其他设计元素。您可以在这里了解有关媒体查询的信息 这里。 - 包含带有视口的元标签
HTML 头部内的视口元标签可确保在移动设备上正确缩放和渲染。 - 使用相对单位
对于字体大小、填充和边距,使用 em、rem 或百分比等相对单位,以确保文本按比例缩放。
设置视口以进行响应式设计
视口代表用户设备的可见区域。如果滚动,则可以查看视口之外的内容。它通过控制页面的宽度和比例,帮助网页在不同的设备上良好渲染。
要控制视口,请在 <head> 部分添加以下 <meta> 标签
<meta name="viewport" content="width=device-width, initial-scale=1.0">
上述标签告诉浏览器将页面宽度与屏幕宽度匹配,并在用户首次加载页面时设置初始缩放级别。
我们可以调整视口设置的宽度、初始缩放比例、最大缩放比例、最小缩放比例和用户可缩放比例。这些调整可以使我们的网站更易于访问和用户友好。
HTML <meta> 视口标签属性
以下 <meta> 视口标签的属性用于响应式设计
属性 | 描述 |
---|---|
width | 它控制虚拟视口的宽度。 |
height | 它控制虚拟视口的高度。 |
initial-scale | 它指定网页首次加载时视口的初始缩放级别。 |
minimum-scale | 它指定用户可以缩放页面的最小缩放级别。 |
maximum-scale | 它定义用户可以缩放页面的最大缩放级别。 |
user-scalable | 它指定用户是否可以放大或缩小。 |
interactive-widget | 它定义交互式 UI 小部件如何影响视口。 |
响应式网页示例
以下是一些使用 HTML 和 CSS 进行响应式网页设计的示例。查看以下示例,以了解响应式网页设计的概念。
为网页设置视口
以下示例说明如何使用 <meta> 视口标签使网页具有响应性。
<html> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style> .container { background-color: #f1f1f1; display: flex; flex-direction: row; } .col { width: 47%; margin: auto 1%; background-color: #4CAF50; color: white; text-align: center; line-height: 100px; font-size: 10px; } </style> </head> <body> <h2> Setting up dimensions in percentage for the HTML element </h2> <div class="container"> <div class="col"> Column 1 </div> <div class="col"> Column 2 </div> </div> </body> </html>
创建响应式文本
在 HTML 中,要创建根据视口自动调整字体大小的 响应式文本,我们需要使用 CSS 的 font-size 属性以及 "vw" 长度单位。vw 是一个缩写,代表 视口宽度,它是 CSS 的相对长度单位。
相对长度单位始终相对于另一个元素的大小计算。请注意,1vw 等于视口宽度的 1%。
在此示例中,我们使用 "vw" 长度单位来使文本具有响应性。
<html> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <h1 style="font-size:6vw;"> Example of Responsive Typography </h1> <h2 style="font-size:5vw;"> Responsive text by Using the vw length unit. </h2> <p style="font-size:3vw;"> The text will adapt the font size according to the device's width. </p> </body> </html>
创建响应式图像
在 HTML 中,我们可以创建响应式图像,这意味着它们可以调整大小以适应视口。为此,我们可以将图像的 width 属性设置为 100% 或 max-width 属性设置为 100%。width 属性可以将图像缩放至大于其原始大小,而另一方面,max-width 属性可确保图像不会缩放超出其原始大小。
以下示例显示如何创建响应式图像。对于第一个图像,我们使用 width 属性,对于第二个图像,我们使用 max-width 属性。
<html> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <h2> Setting the width property to 100% </h2> <img src="/images/logo.png" alt="logo" style="width:100%; "> <h2> Creating the responsive image by setting the max-width property to 100% </h2> <img src="/images/logo.png" alt="logo" style="max-width:100%; height:auto; "> </body> </html>
使用媒体查询进行响应式设计
CSS 媒体查询 充当过滤器,使我们能够选择性地为不同的设备设置网页样式。单个网页可以有多个媒体查询,每个查询对应一个特定的屏幕尺寸。为了定义这些屏幕尺寸,我们使用媒体查询断点并相应地设置 HTML 元素的样式。以下是常见的断点
- 手机:360 x 640 px
- 平板电脑:768 x 1024 px
- 笔记本电脑:1366 x 768 px
- 高清桌面:1920 x 1080 px
以下 HTML 代码演示了在设计响应式布局中使用媒体查询。
<html> <head> <style> .main { width: 50%; height: 50vh; display: flex; align-items: center; text-align: center; margin: 10px auto; flex-direction: column; } img { width: 100%; height: 100%; } .description { width: 100%; height: 100%; font-size: 30px; color: red; margin-top: 20px; } /* using media query */ @media screen and (max-width: 600px) { .main { width: 100%; height: 100vh; margin: 5px auto; } .description { font-size: 20px; color: blue; margin-top: 10px; } } </style> </head> <body> <div class="main"> <img src="/images/logo.png" alt="logo" width="100" height="200"> <div class="description"> The above is a logo of Tutorilaspoint. The logo is responsive, and it will be displayed in the centre of the screen. </div> </div> </body> </html>
响应式 Flexbox 布局
以下示例将使用 Flexbox 布局 创建一个响应式网页。对于屏幕宽度小于 768 像素的设备,侧边栏将保持在顶部。
<!DOCTYPE html> <html lang="en"> <head> <title> Responsive Flexbox Layout </title> <style> * { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: sans-serif; line-height: 1.6; } .header, .footer { background-color: #333; color: white; text-align: center; padding: 1rem; } .container { display: flex; flex-wrap: wrap; min-height: 80vh; } .sidebar { background: #f4f4f4; flex: 1; min-width: 200px; padding: 1rem; } .main-content { background: #fff; flex: 3; padding: 1rem; min-width: 300px; } .footer { margin-top: auto; } @media (max-width: 768px) { .container { flex-direction: column; } } </style> </head> <body> <header class="header"> <h1>Header</h1> </header> <div class="container"> <aside class="sidebar"> <h2>Sidebar</h2> <p>Sidebar content goes here.</p> </aside> <main class="main-content"> <h2>Main Content</h2> <p>Main content goes here.</p> <p> Resize output window to see responsiveness. </p> </main> </div> <footer class="footer"> <p>Footer</p> </footer> </body> </html>