Meida-Query 媒体查询

媒体查询是 CSS3 的一个新的技术,它使我们可以针对不同的设备(或者说,不同的屏幕尺寸和分辨率)来应用不同的样式。

媒体类型

CSS中的媒体查询主要有以下媒体类型:

  • all: 适用于所有设备。
  • print: 主要用于打印机和打印预览模式。
  • screen: 主要用于电脑屏幕、平板、智能手机等。
  • speech: 适用于基于语音识别的设备。
@media print {
	body { font-size: 10pt; }
}

@media screen {
	body { font-size: 13px; }
}

@media screen, print {
	body { line-height: 1.2; }
}

第一组是适用于打印机或打印预览模式的,其所定义的样式将在打印界面中生效。
第二组是适用于电脑屏幕和智能手机等设备的,其所定义的样式将在这些设备的显示界面中生效。
第三组同时适用于屏幕和打印界面,其所定义的样式在两种界面都会生效。

媒体特性

  1. width and height:这两个特性主要用于描述设备显示区域的宽度和高度,可以用来调整不同设备下的网页布局。
@media screen and (max-width: 600px) {
    body {
        background-color: lightblue;
    }
}

以上CSS规则表示,当设备的屏幕宽度小于或等于600px时,网页背景颜色变为浅蓝色。

  1. orientation:描述设备的方向,值可以是portrait(竖屏)或landscape(横屏)。
@media screen and (orientation: portrait) {
    body {
        font-size: 1.2em;
    }
}

以上CSS规则表示,当设备处于竖屏状态时,网页字体变为1.2em。

  1. device-width and device-height:这两个特性用于描述设备的物理尺寸
@media screen and (min-device-width: 1200px) {
    body {
        margin: 0 auto;
        width: 1200px;
    }
}

以上CSS规则表示,若设备的物理屏幕宽度大于或等于1200px,网页主体将居中显示,并且宽度恒定为1200px。

  1. resolution:描述设备的分辨率。
@media print and (min-resolution: 300dpi) {
    body {
        font-size: 12pt;
    }
}

以上CSS规则表示,如果设备的打印分辨率至少为300 dot per inch,网页字体变为12pt。

  1. aspect-ratio and device-aspect-ratio:前者描述的是显示区域的宽高比,后者描述设备物理屏幕的宽高比。
@media screen and (aspect-ratio: 16/9) {
    body {
        background: url('widescreen-bg.jpg');
    }
}

逻辑操作符

  1. and:使用 and 操作符可以同时匹配多个条件。
@media screen and (min-width: 768px) and (max-width: 1024px) {
  /* 这里是一些规则 */
}

上面的代码表示只有在屏幕宽度在 768px 和 1024px 之间时才会应用这些规则。

  1. or:使用 or 操作符可以匹配其中一个条件。
@media (color) or (color-index) {
  /* 这里是一些规则 */
}

上面的代码表示只要设备支持颜色或颜色索引,就会应用这些规则。

  1. not:使用 not 操作符可以排除某个条件。
@media not screen {
  /* 这里是一些规则 */
}

上面的代码表示只有在非屏幕设备上才会应用这些规则。

  1. only:使用only操作符,可以隐藏样式表不会被旧的浏览器应用。这是因为老的浏览器不支持媒体查询,它们会忽略only关键字和后面的所有表达,而新的浏览器会把它作为普通的媒体查询来处理。
@media only screen and (min-width: 600px) {
  .sidebar {
    display: block;
  }
}

在这个例子中,只有设备类型为屏幕并且视口的最小宽度为600px时,侧边栏才显示,并且这个样式只会被支持媒体查询的浏览器应用。

link方式引入

<link rel="stylesheet" media="(max-width: 768px)" href="example.css">

上述代码的作用是在浏览器视口宽度小于或等于768px时,应用example.css样式表。

编写位置及顺序

媒体查询通常放在 CSS 文件的底部,或在每个 CSS 规则集后面,具体取决于逻辑和项目结构。重要的是,它们应该放在相关规则集的附近,使其易于寻找并理解上下文。

媒体查询的顺序也很重要。通常,你应该先进行一般的样式设置,然后再按照屏幕或设备的大小从小到大进行媒体查询的设置。这是由于 CSS 的层叠规则,后写的样式会覆盖先写的样式。所以当你在屏幕尺寸变大时,需要更改的样式应该在后面。

/* 通用样式 */
body {
  background-color: white;
  color: black;
}

/* 小设备(小于600px) */
@media only screen and (max-width: 600px) {
  body {
    background-color: blue;
  }
}

/* 中等设备(601px至768px) */
@media only screen and (min-width: 601px) and (max-width: 768px) {
  body {
    background-color: green;
  }
}

/* 大设备(769px及以上) */
@media only screen and (min-width: 769px) {
  body {
    background-color: red;
  }
}

响应阈值设定

  • 小于 768px: 适用于手机及小屏设备。
  • 768px 至 1024px: 适用于平板电脑和小屏电脑设备。
  • 大于 1024px: 适用于大屏电脑和电视等设备。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值