前端必知必会-CSS媒体查询范例


CSS 媒体查询范例

媒体查询是一种流行的技术,用于向不同设备提供定制的样式表。为了演示一个简单的示例,我们可以更改不同设备的背景颜色:
在这里插入图片描述

示例

/* 将 body 的背景颜色设置为棕褐色 */
body {
background-color: tan;
}

/* 在 992px 或更小的屏幕上,将背景颜色设置为蓝色 */
@media screen and (max-width: 992px) {
body {
background-color: blue;
}
}

/* 在 600px 或更小的屏幕上,将背景颜色设置为橄榄色 */
@media screen and (max-width: 600px) {
body {
background-color: olive;
}
}

菜单的媒体查询

在此示例中,我们使用媒体查询创建响应式导航菜单,该菜单在不同屏幕尺寸上的设计有所不同。
在这里插入图片描述

示例

/* 导航栏容器 */
.topnav {
overflow: hidden;
background-color: #333;
}

/* 导航栏链接 */
.topnav a {
float: left;
display: block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}

/* 在宽度为 600px 或更小的屏幕上,使菜单链接堆叠在一起,而不是彼此相邻 */
@media screen and (max-width: 600px) {
.topnav a {
float: none;
width: 100%;
}
}

列的媒体查询

媒体查询的常见用途是创建灵活的布局。在此示例中,我们根据不同的屏幕尺寸创建在四列、两列和全宽列之间变化的布局:

在这里插入图片描述

示例

/* 创建四个相等的列,彼此相邻浮动 */
.column {
float: left;
width: 25%;
}

/* 在宽度为 992px 或更小的屏幕上,从四列变为两列 */
@media screen and (max-width: 992px) {
.column {
width: 50%;
}
}

/* 在宽度为 600px 或更小的屏幕上,使列堆叠在一起而不是彼此相邻 */
@media screen and (max-width: 600px) {
.column {
width: 100%;
}
}

提示:创建列布局的更现代方法是使用 CSS Flexbox(见下面的示例)。但是,Internet Explorer 10 及更早版本不支持它。如果您需要 IE6-10 支持,请使用浮动(如上所示)。

示例

/* 弹性框的容器 */
.row {
display: flex;
flex-wrap: wrap;
}

/* 创建四个相等的列 */
.column {
flex: 25%;
padding: 20px;
}

/* 在宽度为 992px 或更小的屏幕上,将四列改为两列 */
@media screen and (max-width: 992px) {
.column {
flex: 50%;
}
}

/* 在宽度为 600px 或更小的屏幕上,使列堆叠在一起而不是彼此相邻 */
@media screen and (max-width: 600px) {
.row {
flex-direction: column;
}
}

使用媒体查询隐藏元素

媒体查询的另一个常见用途是隐藏不同屏幕尺寸上的元素:

我将在小屏幕上隐藏。

示例

/* 如果屏幕尺寸为 600px 或更小,则隐藏元素 */
@media screen and (max-width: 600px) {
div.example {
display: none;
}
}

使用媒体查询更改字体大小

您还可以使用媒体查询来更改元素在不同屏幕尺寸上的字体大小:

可变字体大小。

示例

/* 如果屏幕尺寸大于 600px 宽,则将 <div> 的字体大小设置为 80px */
@media screen and (min-width: 600px) {
div.example {
font-size: 80px;
}
}

/* 如果屏幕尺寸为 600px 宽或更小,则将 <div> 的字体大小设置为 30px */
@media screen and (max-width: 600px) {
div.example {
font-size: 30px;
}
}

灵活的图片库

在此示例中,我们将媒体查询与弹性框结合使用,以创建响应式图片库:

示例

在这里插入图片描述

在此示例中,我们将媒体查询与弹性框结合使用,以创建响应式网站,其中包含灵活的导航栏和灵活的内容。
在这里插入图片描述

示例

方向:纵向/横向

媒体查询还可用于根据浏览器的方向更改页面布局。

您可以拥有一组 CSS 属性,这些属性仅在浏览器窗口的宽度大于其高度时才适用,即所谓的“横向”方向:

示例
如果方向为横向模式,则使用浅蓝色背景颜色:

@media only screen and (orientation: Landscape) {
body {
background-color: lightblue;
}
}

最小宽度到最大宽度

您还可以使用 (max-width: …) 和 (min-width: …) 值来设置最小宽度和最大宽度。

例如,当浏览器的宽度在 600 到 900px 之间时,更改 <div> 元素的外观
:

示例

@media screen and (max-width: 900px) and (min-width: 600px) {
div.example {
font-size: 50px;
padding: 50px;
border: 8px solid black;
background: yellow;
}
}

使用附加值:在下面的示例中,我们使用逗号向现有的媒体查询添加附加媒体查询:

示例

/* 当宽度介于 600px 和 900px 之间或高于 1100px 时 - 更改 <div> 的外观 */
@media screen and (max-width: 900px) and (min-width: 600px), (min-width: 1100px) {
div.example {
font-size: 50px;
padding: 50px;
border: 8px solid black;
background: yellow;
}
}

总结

本文介绍了CSS媒体查询范例,如有问题欢迎私信和评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程岁月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值