CSS媒体查询

什么是CSS媒体查询?

CSS媒体查询(Media Query)是现代网页设计中不可或缺的技术,它允许开发者根据设备特性(如屏幕尺寸、分辨率、方向等)应用不同的CSS样式

媒体类型基础

在CSS2中,我们已经可以使用媒体类型来区分不同的设备:

<link rel="stylesheet" media="screen" href="screen.css">
<link rel="stylesheet" media="print" href="print.css">

W3C 中共列出了 10 种媒体类型,如下表所示:

设备类型
All所有设备
Braille盲人用点字法触觉回馈设备
Embossed盲文打印机
Handheld便携设备
Print打印用纸或打印预览视图
Projection各种投影设备
Screen电脑显示器
Speech语音或音频合成器
Tv电视机类型设备
Tty使用固定密度字母栅格的媒介,比如电传打字机和终端

媒体查询基础语法

媒体查询的基本语法结构如下:

@media 媒体类型 and (媒体特性) {
  /* 对应的CSS规则 */
}

常用媒体特性

image-20210916165039143

实用示例

1. 响应式断点设计

/* 小屏幕设备(手机) */
@media screen and (max-width: 767px) {
  .container {
    width: 100%;
  }
}

/* 中等屏幕设备(平板) */
@media screen and (min-width: 768px) and (max-width: 1023px) {
  .container {
    width: 750px;
  }
}

/* 大屏幕设备(桌面) */
@media screen and (min-width: 1024px) {
  .container {
    width: 980px;
  }
}

2. 处理打印样式

@media print {
  body {
    font-size: 12pt;
    color: #000;
  }
  .no-print {
    display: none;
  }
}

3. 针对高分辨率设备

@media 
  (-webkit-min-device-pixel-ratio: 2), 
  (min-resolution: 192dpi) { 
  /* 高分辨率设备专用样式 */
}

高级技巧

1. 使用not关键字排除特定条件

@media not screen and (max-width: 600px) {
  /* 适用于非屏幕设备或屏幕宽度大于600px的情况 */
}

2. 使用only关键字隐藏旧浏览器

@media only screen and (min-width: 768px) {
  /* 仅在现代浏览器中应用 */
}

3. 组合多个条件

@media screen and (min-width: 500px) and (max-width: 800px) and (orientation: landscape) {
  /* 横屏且宽度在500-800px之间的样式 */
}

媒体查询的引入方式

  1. HTML中通过link标签引入

    <link rel="stylesheet" media="screen and (max-width: 600px)" href="mobile.css">
    
  2. CSS中使用@import引入

    @import url("tablet.css") screen and (min-width: 768px);
    
  3. 直接在CSS中使用@media规则

    @media screen and (max-width: 600px) {
      /* 样式规则 */
    }
    

性能优化建议

  1. 移动优先设计:先编写移动端样式,再用媒体查询逐步增强大屏幕体验
  2. 避免不必要的媒体查询:合理设置断点,不要过度细分
  3. 合并媒体查询:相同条件的媒体查询尽量合并
  4. 使用相对单位:优先使用em/rem而非px,提高可访问性

总结

. 移动优先设计:先编写移动端样式,再用媒体查询逐步增强大屏幕体验
2. 避免不必要的媒体查询:合理设置断点,不要过度细分
3. 合并媒体查询:相同条件的媒体查询尽量合并
4. 使用相对单位:优先使用em/rem而非px,提高可访问性

总结

CSS媒体查询是响应式网页设计的核心技术,它让我们的网站能够智能地适应各种设备和屏幕尺寸。通过合理设置断点和优化媒体查询,我们可以创建出既美观又高性能的响应式网站

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

前端小巷子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值