@media 详细介绍

首先看看官方释义:


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

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

也就是说我们可以通过使用 screen 来获取手机设备及电脑屏幕,平板电脑的屏幕信息

and|not|only 相当于条件约束,例如:
@media screen and (内容) 表示获取手机设备及电脑屏幕,平板电脑的屏幕信息,并且该屏幕满足于()中的条件

@media screen not (内容) 表示获取手机设备及电脑屏幕,平板电脑的屏幕信息,除了该屏幕满足于()中的条件

only用来定某种特定的媒体类型 ,这个约束主要是针对不支持css3 的浏览器。在实际开发中很少用到,我们就不多介绍。

此时,我们就需要填写 @media mediatype and|not|only (media feature) 中的 media feature部分, media feature官方释义为 媒体功能,通俗的说 就是 我们通过获取到设备了。那么具体是能够获取到哪些信息呢?

image.png
image.png

由于属性过多,这里就不一个个解释每个属性的用法。 如果读者真想死磕,建议跳转到https://cloud.tencent.com/developer/section/1072197
查看每个属性的用法。本文重点介绍 min-width ,max-width 两个属性,这两个属性在我们开发移动端WEB页面时是最常用的。
min-width : 表示最小宽度(在实际代码中,我们要理解为:当设备屏幕大于min-width的值时,则满足条件)
max-width : 表示最大宽度(在实际代码中,我们要理解为:当设备屏幕小于max-width的值时,则满足条件)
例如:

        @media screen and (min-width: 640px) {
            div {
                background: yellow;
            }
        }

        div{
            width: 100px;
            height: 100px;
        }
屏幕录制 2019-12-16 时间 下午2.50.01 2.gif

意思就是当设备宽度要大于640px 的时候 则设置div 的背景颜色为黄色
需要注意的是 and 两边一定要有空格

        @media screen and (min-width: 640px) and (max-width:960px) {
            div {
                background: yellow;
            }
        }

        div{
            width: 100px;
            height: 100px;
        }

意思就是设备宽度既要大于640px 同时也要小于 960px,使用这种方式需要注意条件要明确,例如:

        @media screen and (min-width: 640px) and (max-width:640px) {
            div {
                background: yellow;
            }
        }

这段代码将不起任何作用,也是无意义代码

针对多种设备需要设置多个判断。 可以写多个媒体判断。例如:

//当屏幕宽度大于640px 且 小于960px 则div背景色为黄色
        @media screen and (min-width: 640px) and (max-width: 960px) {
            div {
                background: yellow;
            }
        }
//当屏幕宽度大于960px则div背景色为红色
        @media screen and (min-width: 960px) {
            div {
                background: red;
            }
        }

        div{
            width: 100px;
            height: 100px;
        }

运行效果:


2.gif

那么此时,读者可能已经发现一个疑惑,假设我们设置了很多个条件。其中存在不少冲突的那么浏览器会做什么样的选择呢。 例如:

        @media screen and (min-width: 640px) and (max-width: 960px) {
            div {
                background: yellow;
            }
        }

        @media screen and (min-width: 960px) {
            div {
                background: red;
            }
        }

        @media screen and (max-width: 960px) {
            div {
                background: blue;
            }
        }

执行效果:


3.gif

我们发现,此时div 是不会变为黄色的。很明显,如果出现冲突,那么最后一个会覆盖前面的。

但是实际开发中,可能会存在非常多判断条件。稍微不注意就很容易让我们看晕。这里我向大家推荐使用坐标图的方式理清思路。
就拿上一个案例,我们做一个坐标图。

image.png

根据顺序一一罗列出每个条件的条件覆盖区域,左边表示min 右边表示max 如果存在冲突区域,则以最靠近底线的颜色区域为准。

就此本文已经介绍了什么是rem 以及如何判断当前设备宽度。聪明的读者即可通过这两点针对不同的设备设置不同的字体,宽度,高度等数据。

下文我将继续介绍如何通过@media 来实现 根据不同的屏幕让浏览器选择不同的css样式表。同时,也会向各位介绍如果在css 的各个属性中 去做条件判断。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 210,978评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 89,954评论 2 384
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,623评论 0 345
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,324评论 1 282
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,390评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,741评论 1 289
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,892评论 3 405
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,655评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,104评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,451评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,569评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,254评论 4 328
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,834评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,725评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,950评论 1 264
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,260评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,446评论 2 348

推荐阅读更多精彩内容

  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,304评论 0 11
  • media type -- 媒体类型 media type是css2中的一个非常有用的属性,通过media typ...
    D_R_M阅读 921评论 0 0
  • 一、使用真实手机测试未发布网页的方法 方法① 在虚拟机中搭建xampp,将文件通过FTP传到虚拟机,在一个局域网中...
    fastwe阅读 718评论 0 0
  • Media Queries——媒体类型(一) 随着科学技术不断的向前发展,网页的浏览终端越来越多样化,用户可以通过...
    _双眸阅读 464评论 0 0
  • 随着科学技术不断的向前发展,网页的浏览终端越来越多样化,用户可以通过:宽屏电视、台式电脑、笔记本电脑、平板电脑和智...
    晨曦诗雨阅读 728评论 0 0