@media和不同适配单位(关键字not、only、and、,、媒体类型、媒体特性、2种应用方式)和(em、rem、vw|vh)、移动端适配、css单位

本文详细介绍了媒体查询@media的使用,包括not、only、and关键字,以及各种媒体类型和特性。通过媒体查询,开发者可以针对不同设备和屏幕尺寸应用特定样式。此外,还讨论了em、rem、vw和vh等单位在移动端适配中的应用,帮助实现响应式设计。
摘要由CSDN通过智能技术生成

目录

@media

关键字

not

only

and

,

媒体类型

媒体特性

应用方式

link应用

css应用

不同适配单位

em

rem

vw|vh

移动端适配

css单位


@media

用于为不同的媒体类型/设备应用不同的样式。媒体查询可用于检查许多事情,例如:

  • 视口的宽度和高度
  • 设备的宽度和高度
  • 方向(手机或平板电脑处于横屏还是竖屏模式?)
  • 分辨率

关键字

not

不满足媒体特性时生效,对媒体类型和第一个and不生效(相当于非!,将条件取反的同时,将and变为或)。

注意:使用时必须在@media后面并指定媒体类型且搭配有and且只能出现一次

例如下面:

1.没有not,表示满足电脑屏幕&&width<=960px&&width<=500px时,实现定义样式。

2.有not,表示满足电脑屏幕width>960 || width>500px时,实现定义样式

@media screen and (max-width:960px) and (max-width:500px){
      
}
@media not screen and (max-width:960px) and (max-width:500px){
      
}

only

可防止旧版浏览器应用指定的样式,这些浏览器不支持带媒体特性的媒体查询。它对现代浏览器没有影响。

注意:必须指定媒体类型。

and

将媒体特性与媒体类型或其他媒体特性组合在一起(相当于且&&)。

,

满足其中一个即可(相当于或||),每次的逗号后面相当于重新写一条@media规则

媒体类型

注意:not对媒体类型是不生效的

描述
all默认。用于所有媒体类型设备。
print用于打印机。
screen用于计算机屏幕、平板电脑、智能手机等。
speech用于朗读页面的屏幕阅读器。

媒体特性

注意:max相当于小于等于,min相当于大于等于,每一条特性都需要用括号包裹

描述
any-hover

是否有任何可用的输入机制允许用户(将鼠标等)悬停在元素上?

在 Media Queries Level 4 中被添加。

any-pointer

可用的输入机制中是否有任何指针设备,如果有,它的精度如何?

在 Media Queries Level 4 中被添加。

aspect-ratio视口(viewport)的宽高比。
color

输出设备每个像素的比特值,常见的有 8、16、32 位。

如果设备不支持输出彩色,则该值为 0。

color-gamut

用户代理和输出设备大致程度上支持的色域。

在 Media Queries Level 4 中被添加。

color-index

输出设备的颜色查询表(color lookup table)中的条目数量。

如果设备不使用颜色查询表,则该值为 0。

device-aspect-ratio

输出设备的宽高比。

已在 Media Queries Level 4 中被弃用。

device-height

输出设备渲染表面(如屏幕)的高度。

已在 Media Queries Level 4 中被弃用。

device-width

输出设备渲染表面(如屏幕)的宽度。

已在 Media Queries Level 4 中被弃用。

display-mode

应用程序的显示模式,如 web app 的 manifest 中的 display 成员所指定

在 Web App Manifest spec 被定义。

forced-colors

检测是用户代理否限制调色板。

在 Media Queries Level 5 中被添加。

grid输出设备使用网格屏幕还是点阵屏幕?
height视口(viewport)的高度。
hover

主输入机制是否允许用户将鼠标悬停在元素上?

在 Media Queries Level 4 中被添加。

inverted-colors

浏览器或者底层操作系统是否反转了颜色。

在 Media Queries Level 5 中被添加。

light-level

当前环境光水平。

在 Media Queries Level 5 中被添加。

max-aspect-ratio显示区域的宽度和高度之间的最大比例。
max-color输出设备每个颜色分量的最大位数。
max-color-index设备可以显示的最大颜色数。
max-height显示区域的最大高度,例如浏览器窗口。
max-monochrome单色(灰度)设备上每种“颜色”的最大位数。
max-resolution设备的最大分辨率,使用 dpi 或 dpcm。
max-width显示区域的最大宽度,例如浏览器窗口。
min-aspect-ratio显示区域的宽度和高度之间的最小比例。
min-color输出设备每个颜色分量的最小位数。
min-color-index设备可以显示的最小颜色数。
min-height显示区域的最小高度,例如浏览器窗口。
min-monochrome单色(灰度)设备上每种“颜色”的最小位数。
min-resolution设备的最低分辨率,使用 dpi 或 dpcm。
min-width显示区域的最小宽度,例如浏览器窗口。
monochrome

输出设备单色帧缓冲区中每个像素的位深度。

如果设备并非黑白屏幕,则该值为 0。

orientation视窗(viewport)的旋转方向(横屏还是竖屏模式)。
overflow-block

输出设备如何处理沿块轴溢出视口(viewport)的内容。

在 Media Queries Level 4 中被添加。

overflow-inline

沿内联轴溢出视口(viewport)的内容是否可以滚动?

在 Media Queries Level 4 中被添加。

pointer

主要输入机制是一个指针设备吗?如果是,它的精度如何?

在 Media Queries Level 4 中被添加。

prefers-color-scheme

探测用户倾向于选择亮色还是暗色的配色方案。

在 Media Queries Level 5 中被添加。

prefers-contrast

探测用户是否有向系统要求提高或降低相近颜色之间的对比度。

在 Media Queries Level 5 中被添加。

prefers-reduced-motion

用户是否希望页面上出现更少的动态效果。

在 Media Queries Level 5 中被添加。

prefers-reduced-transparency

用户是否倾向于选择更低的透明度。

在 Media Queries Level 5 中被添加。

resolution输出设备的分辨率,使用 dpi 或 dpcm。
scan输出设备的扫描过程(适用于电视等)。
scripting

探测脚本(例如 JavaScript)是否可用。

在 Media Queries Level 5 中被添加。

update

输出设备更新内容的渲染结果的频率。

在 Media Queries Level 4 中被添加。

width视窗(viewport)的宽度。

应用方式

link应用

在link标签中引用,例如下面表示当是电脑显示器且浏览器宽度小于等于800px时,应用 sod.css样式。

<!--<link rel="stylesheet" media="mediatype and|not|only (media feature)" href="mystylesheet.css">-->
<link rel="stylesheet" href="sod.css" media="screen and (max-width: 800px)"> 

css应用

在css中使用,例如下面表示当浏览器宽度小于等于970px时,body背景颜色为红色。

@media screen and (max-width:970px){
    body{background:red;}
}

不同适配单位

em

等于当前标签的font-size大小。如果当前标签没有设置font-size,那么就找父元素的font-size(如果父元素为2em的像素,则将其转化为px),直到浏览器默认大小为止。

rem

等于根标签(html)的font-size大小。如果HTML没有设置font-size,那么直接参考浏览器的默认大小。

vw|vh

网页显示区域(根标签html)的的宽|高度,1vw|vh=1%网页显示区域宽高。

移动端适配

关于移动端适配,你必须要知道的 - 掘金

css单位

一文读懂 CSS 单位 - 知乎 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值