欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > HTML5响应式使用css媒体查询

HTML5响应式使用css媒体查询

2025/3/26 16:08:38 来源:https://blog.csdn.net/mi1981422521/article/details/146406425  浏览:    关键词:HTML5响应式使用css媒体查询

HTML 负责搭建页面结构,CSS 负责样式设计,并且通过媒体查询实现了较好的响应式效果,能够适应不同屏幕尺寸下面就是写了一个详细的实例。

CSS 部分

* {margin: 0;padding: 0;box-sizing: border-box;
}
  • * 是通配选择器,会选中页面上的所有元素。
  • margin: 0; 将所有元素的外边距设置为 0。
  • padding: 0; 将所有元素的内边距设置为 0。
  • box-sizing: border-box; 改变元素宽度和高度的计算方式,使元素的宽度和高度包含内边距和边框,但不包含外边距。
body {font-family: Arial, sans-serif;line-height: 1.6;
}
  • font-family: Arial, sans-serif; 设置页面主体文字的字体为 Arial,如果 Arial 不可用,则使用系统默认的无衬线字体。
  • line-height: 1.6; 设置行高为字体大小的 1.6 倍,让文字在垂直方向上有合适的间距。
header {background-color: #333;color: white;padding: 1rem;
}
  • background-color: #333; 设置 header 元素的背景颜色为深灰色。
  • color: white; 设置 header 内文字的颜色为白色。
  • padding: 1rem; 给 header 元素添加 1 个根元素字体大小的内边距。
nav {display: flex;justify-content: space-between;align-items: center;max-width: 1200px;margin: 0 auto;
}
  • display: flex; 将 nav 元素设置为弹性布局容器。
  • justify-content: space-between; 在水平方向上,将子元素均匀分布,两端对齐。
  • align-items: center; 在垂直方向上,将子元素居中对齐。
  • max-width: 1200px; 设置 nav 元素的最大宽度为 1200 像素。
  • margin: 0 auto; 让 nav 元素在水平方向上居中显示。
nav ul {display: flex;list-style: none;
}
  • display: flex; 将 nav 内的无序列表设置为弹性布局容器。
  • list-style: none; 去除无序列表的默认列表项标记。
nav ul li {margin-left: 2rem;
}
  • margin-left: 2rem; 给 nav 内无序列表的每个列表项添加 2 个根元素字体大小的左外边距。
nav a {color: white;text-decoration: none;
}
  • color: white; 设置 nav 内链接文字的颜色为白色。
  • text-decoration: none; 去除链接的下划线。
.portfolio {display: grid;grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));gap: 2rem;padding: 2rem;max-width: 1200px;margin: 0 auto;
}
  • display: grid; 将 .portfolio 元素设置为网格布局容器。
  • grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); 定义网格列的布局,会根据容器宽度自动适应列数,每列最小宽度为 300 像素,最大宽度平均分配剩余空间。
  • gap: 2rem; 设置网格项之间的间距为 2 个根元素字体大小。
  • padding: 2rem; 给 .portfolio 元素添加 2 个根元素字体大小的内边距。
  • max-width: 1200px; 设置 .portfolio 元素的最大宽度为 1200 像素。
  • margin: 0 auto; 让 .portfolio 元素在水平方向上居中显示。
.card {background: #f4f4f4;padding: 1rem;border-radius: 8px;box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
  • background: #f4f4f4; 设置 .card 元素的背景颜色为浅灰色。
  • padding: 1rem; 给 .card 元素添加 1 个根元素字体大小的内边距。
  • border-radius: 8px; 给 .card 元素添加 8 像素的圆角。
  • box-shadow: 0 2px 5px rgba(0,0,0,0.1); 给 .card 元素添加一个轻微的阴影效果。
.card img {width: 100%;height: auto;border-radius: 4px;
}
  • width: 100%; 设置 .card 内图片的宽度为父元素宽度的 100%。
  • height: auto; 让图片的高度根据宽度自动调整,保持图片的原始比例。
  • border-radius: 4px; 给 .card 内图片添加 4 像素的圆角。
.card h3 {margin: 1rem 0;
}
  • margin: 1rem 0; 给 .card 内的 h3 标题添加上下 1 个根元素字体大小的外边距。
footer {background: #333;color: white;text-align: center;padding: 1rem;position: fixed;bottom: 0;width: 100%;
}
  • background: #333; 设置 footer 元素的背景颜色为深灰色。
  • color: white; 设置 footer 内文字的颜色为白色。
  • text-align: center; 让 footer 内的文字居中显示。
  • padding: 1rem; 给 footer 元素添加 1 个根元素字体大小的内边距。
  • position: fixed; 将 footer 元素固定在页面上。
  • bottom: 0; 让 footer 元素位于页面底部。
  • width: 100%; 设置 footer 元素的宽度为 100%。
/* 响应式设计 */
@media (max-width: 768px) {nav {flex-direction: column;text-align: center;}nav ul {margin-top: 1rem;flex-direction: column;}nav ul li {margin: 0.5rem 0;}.portfolio {grid-template-columns: 1fr;padding: 1rem;}
}
  • @media (max-width: 768px) 是媒体查询,当屏幕宽度小于等于 768 像素时,应用以下样式。
  • flex-direction: column; 将 nav 元素和 nav 内的无序列表的弹性布局方向改为垂直方向。
  • text-align: center; 让 nav 内的文字居中显示。
  • margin-top: 1rem; 给 nav 内的无序列表添加 1 个根元素字体大小的上外边距。
  • margin: 0.5rem 0; 给 nav 内无序列表的每个列表项添加上下 0.5 个根元素字体大小的外边距。
  • grid-template-columns: 1fr; 将 .portfolio 元素的网格布局改为单列。
  • padding: 1rem; 给 .portfolio 元素添加 1 个根元素字体大小的内边距。

HTML 部分

<!DOCTYPE html>
<html lang="zh-CN">
  • <!DOCTYPE html> 声明文档类型为 HTML5。
  • <html lang="zh-CN"> 定义 HTML 文档的根元素,并设置语言为中文(中国大陆)。
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>响应式作品集</title><link rel="stylesheet" href="style.css">
</head>
  • <meta charset="UTF-8"> 设置文档的字符编码为 UTF-8。
  • <meta name="viewport" content="width=device-width, initial-scale=1.0"> 配置视口,让页面宽度与设备宽度相同,初始缩放比例为 1.0。
  • <title>响应式作品集</title> 设置页面的标题为 “响应式作品集”。
  • <link rel="stylesheet" href="style.css"> 引入外部样式表 style.css
<body><header><nav><h1>我的作品集</h1><ul><li><a href="#home">首页</a></li><li><a href="#works">作品</a></li><li><a href="#about">关于</a></li></ul></nav></header>
  • <header> 定义页面的页眉部分。
  • <nav> 定义导航栏。
  • <h1>我的作品集</h1> 显示网站标题。
  • <ul> 定义无序列表。
  • <li> 定义列表项。
  • <a href="#home">首页</a> 定义链接,点击后跳转到页面内 ID 为 home 的元素位置(这里代码中未给出 home 元素)。
    <main><section id="works" class="portfolio"><div class="card"><img src="https://via.placeholder.com/300" alt="作品1"><h3>作品标题1</h3><p>作品描述内容</p></div><div class="card"><img src="https://via.placeholder.com/300" alt="作品2"><h3>作品标题2</h3><p>作品描述内容</p></div><div class="card"><img src="https://via.placeholder.com/300" alt="作品3"><h3>作品标题3</h3><p>作品描述内容</p></div></section></main>
  • <main> 定义页面的主要内容区域。
  • <section id="works" class="portfolio"> 定义一个章节,ID 为 works,类名为 portfolio
  • <div class="card"> 定义一个卡片容器。
  • <img src="https://via.placeholder.com/300" alt="作品1"> 显示一张占位图片,alt 属性为图片的替代文本。
  • <h3>作品标题1</h3> 显示作品标题。
  • <p>作品描述内容</p> 显示作品描述。
    <footer><p>&copy;  All rights reserved.</p></footer>
</body>
</html>
  • <footer> 定义页面的页脚部分。
  • <p>&copy; All rights reserved.</p> 显示版权信息,&copy; 是版权符号的 HTML 实体。

你尽管努力,剩下交给天意。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词