使用CSS媒体查询创建响应式布局_html/css_WEB-ITnose

php中文网
发布: 2016-06-24 11:22:20
原创
1954人浏览过

  现如今在web前端领域,bootstrap是一个最流行的ui库,其12列的栅栏系统为响应式布局提供了一种对程序员来说很好操作的模式。

  追究Bootstrap的内在原理,其实就是通过媒体查询来完成对不同屏幕大小、不同分辨率、不同设备导致的不同场景下的Css样式的选择。今天我就对媒体查询这一工具或者说方法来进行一个总结。

  从 CSS 版本 2 开始,就可以通过媒体类型在 CSS 中获得媒体支持。

  1、如何使用媒体查询:

<link rel="stylesheet" type="text/css" href="site.css" media="screen" /><link rel="stylesheet" type="text/css" href="print.css" media="print" />
登录后复制

  以上的两句引入Css样式表的语句,比一般的Css引入语句就多了一个关键字“media”,media 属性定义了应该用于指定每种媒体类型的样式表:

立即学习前端免费学习笔记(深入)”;

  • screen 适用于计算机彩色屏幕。
  • print 适用于打印预览模式下查看的内容或者打印机打印的内容。
  •   *这里是将media属性放在了Css引入的语句中,所以在以下查询语句中就可以省略screen或者print。

      2、一般的媒体查询语法:

    @media “media type” condition {/*CSS样式表*/}
    登录后复制

      其中“@media”也可以有另一中写法,“media=”;

      “media type”是应用媒体查询的媒体类型,例如“all”,意思是所有媒体都使用接下来的css样式表;或者“(min-width:800px)”,意思是屏幕最小宽度为800px时使用接下来的CSS样式表,如果屏幕宽度大于800px则不会应用此CSS。

      也就是说,媒体查询包含一个媒体类型,后跟一个或多个检查特定条件(如最小的屏幕宽度)的表达式。通过评估条件的真假,如果改条件为true则应用Css,否则不应用。

      由此我们可以扩展出很多的媒体查询类型。

      3、在Css的媒体查询中,可以使用三种逻辑运算,也即“and”,“or”,“not”,意思我当然不用解释。举几个例子一眼就明白了:

    /*在将某个媒体查询应用于所有媒体类型时,会省略 all*/@media (min-width:800px) { ... }/*宽度在800~1200px之间时激活*/@media (min-width:800px) and (max-width:1200px) { ... }/*可以使用多个and运算符,这里添加了第三个判断方向为纵向*/@media (min-width:800px) and (max-width:1200px) and (orientation:portrait) { ... }/*宽度为800px或者方向为纵向时激活*/@media (min-width:800px) or (orientation:portrait) { ... }/*宽度不是800px时激活*/@media (not min-width:800px) { ... }
    登录后复制

      4、宽度和高度非常相似,所以二者的条件可以在一起使用:

    @media (min-width:800px) and (min-height:400px) { ... }
    登录后复制

      orientation查询:

    AI新媒体文章
    AI新媒体文章

    专为新媒体人打造的AI写作工具,提供“选题创作”、“文章重写”、“爆款标题”等功能

    AI新媒体文章 75
    查看详情 AI新媒体文章

    @media (orientation:portrait) { ... }
    登录后复制

      不带max-或min-的查询,当然这种查询的的可用性不是很大:

    @media (width:800px) and (height:400px) { ... }
    登录后复制

      5、常见媒体查询

      因为 Apple 首次向市场推出了用户智能手机和平板电脑产品,所以下列大多数媒体查询都是基于这些型号的设备。

      如果目标是横向模式智能手机,则使用: @media (min-width: 321px) { ... }

      如果目标是纵向模式智能手机,则使用: @media (max-width: 320px) { ... }

      如果目标是横向模式 Apple iPad,则使用: @media (orientation: landscape) { ... }

      如果目标是纵向模式 iPad,则使用: @media (orientation: portrait) { ... }

      您可能已经注意到了,iPad 上使用的是 orientation 媒体特性,而 width 用于 Apple iPhone 之上。主要是因为 iPhone 不支持orientation 媒体特性。您必须使用 width 模拟这些方向断点。

      6、嵌套的媒体查询:

    #header {  width: 400px;  @media (min-width: 800px) {    width: 100%;  }}
    登录后复制

      以上代码编译后为以下的结果:

    #header {  width: 400px;}@media (min-width: 800px) {  #header {    width: 100%;  }}
    登录后复制

      以上以宽度为例来对媒体查询进行一个小结, 管中窥豹,可见一斑。width和height只是两种可以用媒体查询来进行控制的属性,还有颜色(color)、颜色索引(integer)、宽高比(ratio)等属性都是也可以使用的。

      

    HTML速学教程(入门课程)
    HTML速学教程(入门课程)

    HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

    下载
    来源:php中文网
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
    最新问题
    开源免费商场系统广告
    热门教程
    更多>
    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送
    PHP中文网APP
    随时随地碎片化学习

    Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号