@meda媒体查询

定义和使用

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

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

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


浏览器支持

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

Rule Chrome  IE   FireFox Safari Opera 
@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 媒体类型

时间: 2024-12-28 09:23:43

@meda媒体查询的相关文章

html5 响应式布局(媒体查询)

响应式布局 响应式布局,简而言之,就是一个网站能够兼容多个终端--而不是为每个终端做一个特定的版本.这个概念是为解决移动互联网浏览而诞生的. 响应式布局可以为不同终端的用户提供更加舒适的界面和更好的用户体验,而且随着目前大屏幕移动设备的普及,用"大势所趋"来形容也不为过.随着越来越多的设计师采用这个技术,我们不仅看到很多的创新,还看到了一些成形的模式. html5/css3响应式布局介绍及设计流程,利用css3的media query媒体查询功能.移动终端一般都是对css3支持比较好的

css媒体查询

1.什么是媒体查询 媒体查询可以让我们根据设备显示器的特性(如视口宽度.屏幕比例.设备方向:横向或纵向)为其设定CSS样式,媒体查询由媒体类型和一个或多个检测媒体特性的条件表达式组成.媒体查询中可用于检测的媒体特性有 width . height 和 color (等).使用媒体查询,可以在不改变页面内容的情况下,为特定的一些输出设备定制显示效果. 2.为什么响应式设计需要,媒体查询如果没有CSS3的媒体查询模块,就不能针对设备特性(如视口宽度)设置特定的CSS样式 3.如何在CSS文件中引入媒

css3 媒体查询的学习。

1.什么是媒体查询 媒体查询可以让我们根据设备显示器的特性(如视口宽度.屏幕比例.设备方向:横向或纵向)为其设定CSS样式,媒体查询由媒体类型和一个或多个检测媒体特性的条件表达式组成.媒体查询中可用于检测的媒体特性有 width . height 和 color (等).使用媒体查询,可以在不改变页面内容的情况下,为特定的一些输出设备定制显示效果. 2.为什么响应式设计需要,媒体查询如果没有CSS3的媒体查询模块,就不能针对设备特性(如视口宽度)设置特定的CSS样式 3.如何在CSS文件中引入媒

css 媒体查询 注意点

1, 媒体查询表达式之间还可以用逗号,@media (max-width:800px), print  它表示或的意思 @media (max-width: 800px) OR print; 2, not 是对整个表达式的否定 @media not all and (min-width: 765px),  相当于 @media not (all and (min-width: 765px)) 如果不想这样的做,可以用,进行分割,@media not all, min-width:765px 3,

bootstrap在ie8下,兼容媒体查询

最近使用bootstrap做网站的时候发现,在ie8下的媒体查询一直失效: 后来解决了,做如下记录: 1.必须运行在服务器下 2.hack 条件语法,如下: <!--[if lte ie 9]> <script src="js/html5shiv.min.js"></script> <script src="js/respond.min.js"></script> <![endif]--> 这样

媒体查询

媒体查询规则: @media all{}将样式应用于所有类型, @media(min-width:800px){}将样式应用于最小宽度为800的 @media(min-width:800px) and (max-width:1200px) and (orientation:potrait){}宽度为800-1200且方向是纵向(and 表示同时满足时才会显示,or只要满足其中一个条件即可) @media(not min-width:800px){} orientation 媒体查询 @media

css3媒体查询

@media (min-width: 320px) { html { font-size: 100px; }}@media (min-width: 360px) { html { font-size: 112.5px; }}@media (min-width: 400px) { html { font-size: 125px; }} 1号店的媒体查询,也可以用淘宝的js代码,但是加载JS会在JS未完全加载好前布局是乱的,所以还是用css3直接做媒体查询把...

媒体查询的用法

@media all and (min-width:840px) //所有最小水平屏幕宽度为800像素的屏幕应用规则 @media (min-width:800px) //简写方式,同上 @media (min-width:800px) and (max-width:1200px) //所有介于800px和1200px之间的屏幕应用规则 @media (min-width:800px) or (orentation:portrait) //宽度至少是800px或方向是纵向的,则会应用该规则 @m

CSS3 媒体查询响应式布局

在这个以手机.平板和电脑为中心的互联网时代.为了提高用户体验度,让页面适应不同屏幕的分辨率成了我们写页面时最至关重要的问题.CSS3中的媒体查询功能很好的帮我们解决了这一问题,它可以根据屏幕的大小进行上扩和下扩呈现给用户一个可用的界面. 刚开始接触媒体查询这个功能,我一边感慨它的强大,一边焦虑着我应该怎么去用它呢?首先我们得对它进行一个详细的认识和了解. 媒体查询就是通过不同的媒体类型和条件定义样式表的规则.可以让CSS更精确的作用于不同的媒体类型和同一媒体的不同条件.媒体查询的大部分媒体特性都