CSS3多媒体查询 Media Queries

目录

CSS3多媒体查询 Media Queries

(1)多媒体查询语法

(2)CSS3多媒体类型

(3)常用的条件

(4)媒体查询两种方式

第一种:link的方式:

第二种:css的方式:


CSS3多媒体查询 Media Queries

@media可以针对不同的媒体类型(包括显示器、便携设备、电视机,等等)设置不同的样式规则,实现适应显示。媒体查询可用于检测很多事情,例如:

  • viewport(视窗) 的宽度与高度

  • 设备的宽度与高度

  • 朝向 (智能手机横屏,竖屏) 。

  • 分辨率

目前很多针对苹果手机,Android 手机,平板等设备都会使用到多媒体查询。

(1)多媒体查询语法

多媒体查询由多种媒体组成,可以包含一个或多个表达式,表达式根据条件是否成立返回 true 或 false。

@media not|only mediatype and (expressions) {
    CSS 代码...;
}
@media only speech and (min-width: 500px){
    CSS 代码...;
}

如果指定的多媒体类型匹配设备类型则查询结果返回 true,文档会在匹配的设备上显示指定样式效果。

除非你使用了 not 或 only 操作符,否则所有的样式会适应在所有设备上显示效果。

  • not: 用来排除掉特定的设备,比如 @media not print(非打印设备)。

  • only: 用 来规定某种特别的媒体类型。 表示只有 仅仅,表示某一种的媒体类型设备。

    注意:对于支持Media Queries的移动设备来说,如果存在only关键字,移动设备的Web浏览器会忽略only关键字并直接根据后面的表达式应用样式文件。对于不支持Media Queries的设备但能够读取Media Type类型的Web浏览器,遇到only关键字时会忽略这个样式文件。

  • and: 表示并且,要求必须满足所有的表达式要求时,才能使用media定义样式

(2)CSS3多媒体类型

描述
all用于所有多媒体类型设备
print用于打印机
screen用于电脑屏幕,平板,智能手机等。
speech用于屏幕阅读器

(3)常用的条件

max-width: 输出设备中页面最大可视区域宽度,小于这个width时,其中的css生效

min-width: 输出设备中页面最小可视区域宽度,大于这个width时,其中的css生效

max-height: 输出设备中页面最大可视区域高度

min-height: 输出设备中页面最小可视区域高度

实例1:当屏幕的可视窗口宽度大于480px时改变背景色。

body {
    background-color: pink;
}
表示 匹配媒体类型为电脑屏幕等在宽度大于480px 并且小于560px时
@media screen and (min-width: 480px) and (max-width: 560px){
    body {
        background-color: lightgreen;
    }
}

实例2:当屏幕的可视窗口宽度大于480px时将菜单浮动到左侧。

<div>
    <div id="leftsidebar">
        <ul id="menulist">
          <li class="menuitem">Menu-item 1</li>
          <li class="menuitem">Menu-item 2</li>
          <li class="menuitem">Menu-item 3</li>
          <li class="menuitem">Menu-item 4</li>
          <li class="menuitem">Menu-item 5</li>
       </ul>
    </div>
    <div id="main">
        <h1>重置浏览器窗口查看效果!</h1>
        <p>在屏幕可视窗口尺寸大于 480 像素时将菜单浮动到页面左侧。</p>
    </div>
</div>
#main {
    margin-left: 4px;
}
#leftsidebar {
    float: none;
    width: auto;
}
#menulist {
    margin:0;padding:0;
}
​
.menuitem {
    background:#CDF0F6;
    border:1px solid #d4d4d4;
    border-radius:4px;
    list-style-type:none;
    margin:4px;
    padding:2px;
}
​
@media screen and (min-width: 480px) {
    #leftsidebar {
        width:200px;
        float:left;
    }
    #main {
        margin-left:216px;
    }
}

(4)媒体查询两种方式

第一种:link的方式:

<link rel="stylesheet" media="screen and (max-width:600px)" href="./css/blue.css">
<link rel="stylesheet" media="screen and (min-width:900px)" href="./css/red.css">
<link rel="stylesheet" media="screen and (min-width:1200px)" href="./css/yellow.css">
<link rel="stylesheet" media="screen and (min-width:600px) and (max-width:900px)" href="./css/green.css">

第二种:css的方式:

<style>
        @media screen and (max-width:600px) {
            body {
                background-color: blue;
            }
        }
​
        @media screen and (min-width:900px) {
            body {
                background-color: red;
            }
        }
​
        @media screen and (min-width:1200px) {
            body {
                background-color: yellow;
            }
        /*使用关键词"and"将多个媒体特性结合在一起*/
       @media screen and (min-width:600px) and (max-width:900px){
            body {
                background-color:green;
           }
        }
     
    </style>
1、<link rel="stylesheet" media="screen and (max-width:600px)" href="./css/blue.css">
     .css中:    
  body {
                background-color:green;
           }




2、<link rel="stylesheet" media="screen" 
.css文件中:

       @media screen and (min-width:600px) and (max-width:900px){
            body {
                background-color:green;
           }
        }

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值