@meda媒体查询

Florence Florence     2022-08-27     803

关键词:

定义和使用

使用 @media 查询,你可以针对不同的媒体类型定义不同的样式。

@media 可以针对不同的屏幕尺寸设置不同的样式,特别是如果你需要设置设计响应式的页面,@media 是非常有用的。

当你重置浏览器大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面。


浏览器支持

表格中的数字表示支持 @media 规则的第一个浏览器的版本号。

RuleChrome IE  FireFoxSafariOpera 
@media 21 9 3.5 4.0 9

 


CSS 语法

@media mediatype and|not|only (media feature) {
    CSS-Code;
}

你也可以针对不同的媒体使用不同 stylesheets :

<link rel="stylesheet" media="mediatype and|not|only (media feature)" href="mystylesheet.css">

 

媒体类型
描述
all 用于所有设备
aural 已废弃。用于语音和声音合成器
braille 已废弃。 应用于盲文触摸式反馈设备
embossed 已废弃。 用于打印的盲人印刷设备
handheld 已废弃。 用于掌上设备或更小的装置,如PDA和小型电话
print 用于打印机和打印预览
projection 已废弃。 用于投影设备
screen 用于电脑屏幕,平板电脑,智能手机等。
speech 应用于屏幕阅读器等发声设备
tty 已废弃。 用于固定的字符网格,如电报、终端设备和对字符有限制的便携设备
tv 已废弃。 用于电视和网络电视

媒体功能

 

描述
aspect-ratio 定义输出设备中的页面可见区域宽度与高度的比率
color 定义输出设备每一组彩色原件的个数。如果不是彩色设备,则值等于0
color-index 定义在输出设备的彩色查询表中的条目数。如果没有使用彩色查询表,则值等于0
device-aspect-ratio 定义输出设备的屏幕可见宽度与高度的比率。
device-height 定义输出设备的屏幕可见高度。
device-width 定义输出设备的屏幕可见宽度。
grid 用来查询输出设备是否使用栅格或点阵。
height 定义输出设备中的页面可见区域高度。
max-aspect-ratio 定义输出设备的屏幕可见宽度与高度的最大比率。
max-color 定义输出设备每一组彩色原件的最大个数。 
max-color-index 定义在输出设备的彩色查询表中的最大条目数。
max-device-aspect-ratio 定义输出设备的屏幕可见宽度与高度的最大比率。 
max-device-height 定义输出设备的屏幕可见的最大高度。
max-device-width 定义输出设备的屏幕最大可见宽度。
max-height 定义输出设备中的页面最大可见区域高度。
max-monochrome 定义在一个单色框架缓冲区中每像素包含的最大单色原件个数。
max-resolution 定义设备的最大分辨率。
max-width 定义输出设备中的页面最大可见区域宽度。
min-aspect-ratio 定义输出设备中的页面可见区域宽度与高度的最小比率。
min-color 定义输出设备每一组彩色原件的最小个数。
min-color-index 定义在输出设备的彩色查询表中的最小条目数。
min-device-aspect-ratio 定义输出设备的屏幕可见宽度与高度的最小比率。
min-device-width 定义输出设备的屏幕最小可见宽度。
min-device-height 定义输出设备的屏幕的最小可见高度。
min-height 定义输出设备中的页面最小可见区域高度。
min-monochrome 定义在一个单色框架缓冲区中每像素包含的最小单色原件个数
min-resolution 定义设备的最小分辨率。
min-width 定义输出设备中的页面最小可见区域宽度。
monochrome 定义在一个单色框架缓冲区中每像素包含的单色原件个数。如果不是单色设备,则值等于0
orientation 定义输出设备中的页面可见区域高度是否大于或等于宽度。
resolution 定义设备的分辨率。如:96dpi, 300dpi, 118dpcm
scan 定义电视类设备的扫描工序。
width 定义输出设备中的页面可见区域宽度。

下面来看一个例子:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>媒体查询</title>
    <style>
    body,
    div,
    span,
    p {
        margin: 0;
        padding: 0;
        border: 0 none;
        font-size: 1em;
        line-height: 1.5em;
        font-family: 'Arial';
        color: #414142;
        -webkit-box-sizing: border-box;
           -moz-box-sizing: border-box;
                box-sizing: border-box;
    }
    
    ul {
        padding-left: 40px;
        margin: 20px 0;
    }
    
    a {
        text-decoration: none;
        color: #D64078;
    }
    
    @media screen and (min-width: 600px) {
        nav {
            float: left;
            width: 25%;
        }
        section {
            margin-left: 25%;
        }
    }
    
    @media screen and (max-width: 599px) {
        nav li {
            display: inline;
        }
    }
    
    .ipsum {
        color: #734161;
        background-color: #eee;
    }
    
    .elem {
        border: 3px solid #6AC5AC;
        position: relative;
    }
    
    .elem-red {
        border: 3px solid #D64078;
    }
    
    .elem-yellow {
        border: 3px solid #FDC72F;
    }
    
    .label,
    .endlabel {
        position: absolute;
        background-color: #6AC5AC;
        line-height: 1em;
    }
    
    .elem-yellow > .label,
    .elem-yellow > .endlabel {
        background-color: #FDC72F;
    }

    .elem-red > .label,
    .elem-red > .endlabel {
        background-color: #D64078;
    }
    
    .elem-yellow p {
        padding: 0 1em;
        margin: 1em 0;
    }
    
    .label {
        top: 0;
        left: 0;
        padding: 0 3px 3px 0;
    }
    
    .endlabel {
        right: 0;
        bottom: 0;
        padding: 3px 0 0 3px;
    }
    </style>
</head>

<body>
    <div class="container elem">
        <span class="label">&lt;div class="container"></span>
        <nav class="elem elem-red">
            <span class="label">&lt;nav></span>
            <ul>
                <li>
                    <a href="@media.html">Home</a>
                </li>
                <li>
                    <a href="@media.html">Taco Menu</a>
                </li>
                <li>
                    <a href="@media.html">Draft List</a>
                </li>
                <li>
                    <a href="@media.html">Hours</a>
                </li>
                <li>
                    <a href="@media.html">Directions</a>
                </li>
                <li>
                    <a href="@media.html">Contact</a>
                </li>
            </ul>
            <span class="endlabel">&lt;/nav></span>
        </nav>
        <section class="elem elem-yellow">
            <span class="label">&lt;section></span>
            <p>
                当你调整浏览器窗口大小时,布局比以前更酷了!
            </p>
            <span class="endlabel">&lt;/section></span>
        </section>
        <section class="elem elem-yellow ipsum">
            <span class="label">&lt;section></span>
            <p>
                Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus imperdiet, nulla et dictum interdum, nisi lorem egestas odio, vitae scelerisque enim ligula venenatis dolor. Maecenas nisl est, ultrices nec congue eget, auctor vitae massa. Fusce luctus vestibulum augue ut aliquet. Mauris ante ligula, facilisis sed ornare eu, lobortis in odio. Praesent convallis urna a lacus interdum ut hendrerit risus congue. Nunc sagittis dictum nisi, sed ullamcorper ipsum dignissim ac. In at libero sed nunc venenatis imperdiet sed ornare turpis. Donec vitae dui eget tellus gravida venenatis. Integer fringilla congue eros non fermentum. Sed dapibus pulvinar nibh tempor porta. Cras ac leo purus. Mauris quis diam velit.
            </p>
            <span class="endlabel">&lt;/section></span>
        </section>
    </div>
</body>

</html>

 当页面可见区域宽度大于600px时,如下图所示:

当页面可见区域宽度小于600px时,如下图所示:

再看一个实例

如果文档宽度小于 300 像素则修改背景演示(background-color):

@media screen and (max-width: 300px) {
    body {
        background-color:lightblue;
    }
}

尝试一下 » 

再看一个使用 @media 查询来制作响应式设计:

@media only screen and (max-width: 500px) {
    .gridmenu {
        width:100%;
    }

    .gridmain {
        width:100%;
    }

    .gridright {
        width:100%;
    }
}

尝试一下 »

相关页面

CSS 教程: CSS 媒体类型

 

有多个媒体查询还是单个媒体查询更好

】有多个媒体查询还是单个媒体查询更好【英文标题】:Isitbettertohavemultiplemediaqueriesorasinglemediaquery【发布时间】:2017-08-0610:33:29【问题描述】:我正在使用引导程序,并且我希望(在适用的情况下)为每种屏幕尺寸设置特定的CS... 查看详情

媒体查询分组而不是匹配的多个分散的媒体查询

】媒体查询分组而不是匹配的多个分散的媒体查询【英文标题】:MediaQuerygroupinginsteadofmultiplescatteredmediaqueriesthatmatch【发布时间】:2012-11-1007:55:04【问题描述】:我正在尝试LESS(不是SASS语法的粉丝),并且一直在尝试找出使用... 查看详情

媒体查询

一、媒体查询用法  @media媒体查询包含一个可选的媒体类型和,满足CSS3规范的条件下,包含零个或多个表达式,这些表达式描述了媒体特征,最终会被解析为true或false。如果媒体查询中指定的媒体类型匹配展示文档所使用的... 查看详情

scssvanillacss媒体查询+sass媒体查询mixin(代码片段)

查看详情

css3媒体查询的学习。

1、什么是媒体查询媒体查询可以让我们根据设备显示器的特性(如视口宽度、屏幕比例、设备方向:横向或纵向)为其设定CSS样式,媒体查询由媒体类型和一个或多个检测媒体特性的条件表达式组成。媒体查询中可用于检测的... 查看详情

媒体查询用法及常见媒体尺寸

一、媒体查询用法    @media媒体查询包含一个可选的媒体类型和,满足CSS3规范的条件下,包含零个或多个表达式,这些表达式描述了媒体特征,最终会被解析为true或false。如果媒体查询中指定的媒体类型匹配展示... 查看详情

聊聊最近接触的媒体查询!

 1.首先什么是媒体查询?媒体查询可以让我们根据设备显示器的特性(如视口宽度、屏幕比例、设备方向:横向或纵向)为其设定CSS样式,媒体查询由媒体类型和一个或多个检测媒体特性的条件表达式组成。使用媒体查询,... 查看详情

如何使用媒体查询或运算符使 SASS 嵌套嵌套媒体查询工作

】如何使用媒体查询或运算符使SASS嵌套嵌套媒体查询工作【英文标题】:HowtogetaSASSnestednestedmediaquerytoworkwiththeuseofthemediaqueryoroperator【发布时间】:2015-07-1803:41:00【问题描述】:我正在尝试让嵌套的IE10+媒体查询在SASS中工作,但... 查看详情

所有设备的媒体查询

】所有设备的媒体查询【英文标题】:MediaQueryforalldevices【发布时间】:2014-12-1802:25:03【问题描述】:是否存在涵盖,因为我可以在网上找到所有设备,并且在研究时是针对特定设备的媒体查询?我可以为许多特定于设备的设备... 查看详情

根据显示的复选框显示警报

...用户应该服用的药物。并说如果用户应该在下午3点服用MedA和MedB,当用户在下午3点点击按钮时,会弹出MedA和MedB两个复选框,但如果用户只选中“MedA”,系统应该显示 查看详情

媒体查询介绍(代码片段)

媒体查询:去检测设备的特性(手机端编程使用)媒体查询可以让我们获取根据设备显示器的特性(如视口的宽度、屏幕的比例、设备的方向:横向或者纵向)为其设定css样式,媒体查询由媒体类型和... 查看详情

媒体查询邮件

】媒体查询邮件【英文标题】:MediaQueryEmail【发布时间】:2021-07-1015:16:37【问题描述】:我使用媒体查询创建响应式HTML电子邮件,但在Gmail/Outlook/Inbox中,媒体查询中的max-width指的是浏览器视口,而不是HTML电子邮件。所以,在本... 查看详情

bootstrap媒体查询

Bootstrap中的媒体查询允许您基于视口大小移动、显示并隐藏内容。下面的媒体查询在LESS文件中使用,用来创建Bootstrap网格系统中的关键的分界点阈值。/*超小设备(手机,小于768px)*//*Bootstrap中默认情况下没有媒体查询*//*小型... 查看详情

大型桌面的媒体查询是啥?

】大型桌面的媒体查询是啥?【英文标题】:Whatisthemediaqueryforlargedesktops?大型桌面的媒体查询是什么?【发布时间】:2017-07-1321:33:47【问题描述】:我正在对普通桌面屏幕使用媒体查询,而idt不应该适用于更大的屏幕。但下面的... 查看详情

媒体查询

222  媒体查询开始于css211  css3加强来媒体查询主要包含两个方面:媒体类型 函数@mediaalland(min-width:800px)and(orientation:landscape)...//样式解释:如果and后面的表达式为true,执行花括号代码里面的样式all:代表类型,还有screen,pr... 查看详情

仅应用了一个媒体查询

】仅应用了一个媒体查询【英文标题】:OnlyOneMediaQueryBeingApplied【发布时间】:2019-06-0418:45:19【问题描述】:所以我有一个子主题,我正试图做出响应,但其中一个媒体查询根本不适用——一旦屏幕变小,它就会将.single-column的... 查看详情

需要最少的媒体查询

】需要最少的媒体查询【英文标题】:Needminimummediaqueries【发布时间】:2020-05-0807:03:55【问题描述】:IPHONEX的屏幕分辨率为375*812。IPAD有768*1024。那么如何编写仅适用于IPHONEX横向模式而不应适用于IPAD纵向模式的媒体查询。同样需... 查看详情

媒体查询被忽略

】媒体查询被忽略【英文标题】:MediaQueriesignored【发布时间】:2013-04-1319:48:38【问题描述】:我有一个小问题,我的css了,或者主要css是。我正在尝试更改媒体查询中字体大小的值,台式机为75像素,手机(max-width:320px;)为40像素... 查看详情