Menu
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

CSS 教程

CSS 主页 CSS 简介 CSS 语法 CSS 选择器 CSS 如何做 CSS 注释 CSS 颜色 CSS 背景 CSS 边框 CSS 外边距 CSS 内边距 CSS 高度/宽度 CSS 盒模型 CSS 轮廓 CSS 文本 CSS 字体 CSS 图标 CSS 链接 CSS 列表 CSS 表格 CSS 显示 CSS 最大宽度 CSS 位置 CSS Z-index CSS 溢出 CSS 浮动 CSS 行内块 CSS 对齐 CSS 组合器 CSS 伪类 CSS 伪元素 CSS 透明度 CSS 导航栏 CSS 下拉菜单 CSS 图片库 CSS 图片精灵 CSS 属性选择器 CSS 表单 CSS 计数器 CSS 网站布局 CSS 单位 CSS 特定性 CSS !important CSS 数学函数

CSS 高级

CSS 圆角 CSS 边框图片 CSS 背景 CSS 颜色 CSS 颜色关键字 CSS 渐变 CSS 阴影 CSS 文本效果 CSS 网页字体 CSS 2D 变换 CSS 3D 变换 CSS 过渡 CSS 动画 CSS 提示框 CSS 样式图片 CSS 图片反射 CSS object-fit CSS object-position CSS 遮罩 CSS 按钮 CSS 分页 CSS 多列 CSS 用户界面 CSS 变量 CSS @property CSS 盒子大小 CSS 媒体查询 CSS 媒体查询示例 CSS Flexbox

CSS 响应式

RWD 简介 RWD 视窗 RWD 网格视图 RWD 媒体查询 RWD 图片 RWD 视频 RWD 框架 RWD 模板

CSS 网格

网格简介 网格容器 网格项目

CSS SASS

SASS 教程

CSS 示例

CSS 模板 CSS 示例 CSS 编辑器 CSS 代码片段 CSS 测验 CSS 练习 CSS 网站 CSS 面试准备 CSS 集训营 CSS 证书

CSS 参考

CSS 参考 CSS 选择器 CSS 函数 CSS 参考听觉 CSS 网页安全字体 CSS 可动画 CSS 单位 CSS PX-EM 转换器 CSS 颜色 CSS 颜色值 CSS 默认值 CSS 浏览器支持

响应式网页设计 - 媒体查询


什么是媒体查询?

媒体查询是 CSS3 中引入的一种 CSS 技术。

它使用 @media 规则来包含一块 CSS 属性,只有在特定条件满足时才会生效。

示例

如果浏览器窗口大小等于或小于 600px,背景颜色将为淡蓝色

@media only screen and (max-width: 600px) {
  body {
    background-color: lightblue;
  }
}
自己尝试 »

添加断点

在本教程的前面,我们制作了一个带行和列的网页,它具有响应性,但在小屏幕上看起来不好。

媒体查询可以帮助解决这个问题。我们可以添加一个断点,在断点的两侧,设计中的某些部分将表现不同。


桌面

手机

使用媒体查询在 768px 处添加断点

示例

当屏幕(浏览器窗口)大小小于 768px 时,每列的宽度应为 100%

/* 针对桌面: */
.col-1 {width: 8.33%;}
.col-2 {width: 16.66%;}
.col-3 {width: 25%;}
.col-4 {width: 33.33%;}
.col-5 {width: 41.66%;}
.col-6 {width: 50%;}
.col-7 {width: 58.33%;}
.col-8 {width: 66.66%;}
.col-9 {width: 75%;}
.col-10 {width: 83.33%;}
.col-11 {width: 91.66%;}
.col-12 {width: 100%;}

@media only screen and (max-width: 768px) {
  /* 针对移动电话: */
  [class*="col-"] {
    width: 100%;
  }
}
自己尝试 »


始终以移动优先进行设计

移动优先意味着在为桌面或任何其他设备设计之前先为移动设备设计(这将使页面在较小的设备上更快显示)。

这意味着我们必须在 CSS 中做一些更改。

我们不应在宽度小于 768px 时更改样式,而应该在宽度大于 768px 时更改设计。这将使我们的设计以移动优先。

示例

/* 针对移动电话: */
[class*="col-"] {
  width: 100%;
}

@media only screen and (min-width: 768px) {
  /* 针对桌面: */
  .col-1 {width: 8.33%;}
  .col-2 {width: 16.66%;}
  .col-3 {width: 25%;}
  .col-4 {width: 33.33%;}
  .col-5 {width: 41.66%;}
  .col-6 {width: 50%;}
  .col-7 {width: 58.33%;}
  .col-8 {width: 66.66%;}
  .col-9 {width: 75%;}
  .col-10 {width: 83.33%;}
  .col-11 {width: 91.66%;}
  .col-12 {width: 100%;}
}
自己尝试 »

另一个断点

您可以根据需要添加任意数量的断点。

我们还将在平板电脑和手机之间插入一个断点。


桌面

平板电脑

手机

为此,我们添加另一个媒体查询(在 600px 处),以及一组针对大于 600px(但小于 768px)的设备的新类。

示例

请注意,这两组类几乎相同,唯一的区别是名称(col-col-s-

/* 针对移动电话: */
[class*="col-"] {
  width: 100%;
}

@media only screen and (min-width: 600px) {
  /* 针对平板电脑: */
  .col-s-1 {width: 8.33%;}
  .col-s-2 {width: 16.66%;}
  .col-s-3 {width: 25%;}
  .col-s-4 {width: 33.33%;}
  .col-s-5 {width: 41.66%;}
  .col-s-6 {width: 50%;}
  .col-s-7 {width: 58.33%;}
  .col-s-8 {width: 66.66%;}
  .col-s-9 {width: 75%;}
  .col-s-10 {width: 83.33%;}
  .col-s-11 {width: 91.66%;}
  .col-s-12 {width: 100%;}
}

@media only screen and (min-width: 768px) {
  /* 针对桌面: */
  .col-1 {width: 8.33%;}
  .col-2 {width: 16.66%;}
  .col-3 {width: 25%;}
  .col-4 {width: 33.33%;}
  .col-5 {width: 41.66%;}
  .col-6 {width: 50%;}
  .col-7 {width: 58.33%;}
  .col-8 {width: 66.66%;}
  .col-9 {width: 75%;}
  .col-10 {width: 83.33%;}
  .col-11 {width: 91.66%;}
  .col-12 {width: 100%;}
}

我们有两组相同的类,这看起来可能有点奇怪,但这给了我们一个机会 *在 HTML 中*,决定在每个断点处列将如何表现。

HTML 示例

桌面端

第一部分和第三部分将分别跨越 3 列。中间部分将跨越 6 列。

平板端

第一部分将跨越 3 列,第二部分将跨越 9 列,第三部分将显示在第一部分和第二部分下方,它将跨越 12 列。

<div class="row">
  <div class="col-3 col-s-3">...</div>
  <div class="col-6 col-s-9">...</div>
  <div class="col-3 col-s-12">...</div>
</div>
自己尝试 »

典型设备断点

有大量的屏幕和设备,它们具有不同的高度和宽度,因此很难为每个设备创建精确的断点。为了简化操作,您可以针对五个组进行设置

示例

/* 超小型设备(手机,600px 及以下) */
@media only screen and (max-width: 600px) {...}

/* 小型设备(纵向平板电脑和大型手机,600px 及以上) */
@media only screen and (min-width: 600px) {...}

/* 中型设备(横向平板电脑,768px 及以上) */
@media only screen and (min-width: 768px) {...}

/* 大型设备(笔记本电脑/台式电脑,992px 及以上) */
@media only screen and (min-width: 992px) {...}

/* 超大型设备(大型笔记本电脑和台式电脑,1200px 及以上) */
@media only screen and (min-width: 1200px) {...}
自己尝试 »

方向:纵向/横向

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

您可以有一组 CSS 属性,这些属性只在浏览器窗口的宽度大于高度时(称为“横向”方向)才会应用。

示例

如果方向为横向模式,则网页将具有浅蓝色背景。

@media only screen and (orientation: landscape) {
  body {
    background-color: lightblue;
  }
}
自己尝试 »

使用媒体查询隐藏元素

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

我将在小屏幕上被隐藏。

示例

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

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

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

可变字体大小。

示例

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

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

CSS @media 参考

有关所有媒体类型和功能/表达式的完整概述,请查看我们 CSS 参考中的 @media 规则


×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.