CSS:使用CSS媒体查询创建响应式布局
现如今在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查询:
@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)等属性都是也可以使用的。
CSS:使用CSS媒体查询创建响应式布局的更多相关文章
- CSS 媒体查询创建响应式网站
使用 CSS 媒体查询创建响应式网站 适用于所有屏幕大小的设计 固定宽度的静态网站很快被灵活的响应式设计所取代,该设计可以根据屏幕大小进行上扩和下扩.利用响应式设计,无论您采用什么设备或屏幕来访问网 ...
- 使用 CSS 媒体查询创建响应式网站
简介 现今每天都有更多的手机和平板电脑问市.消费者能够拥有可想象到的各种规格和形状的设备,但是网站开发人员却面临一个挑战:如何使他们的网站在传统浏览器.手机和平板电脑浏览器上有很好的效果,如何在各种大 ...
- 关于css3媒体查询和响应式布局
响应式设计 响应式设计可根据所显示的屏幕大小而改变, 它呈现的每个屏幕看起来并不相同.按照可用的屏幕属性,响应式设计提供了 UI 的最佳效果. 例如,如果网站布局上有一个占据 25% 的屏幕宽度的侧边 ...
- Flex、Grid、媒体查询实现响应式布局
本篇文章主要讲述使用Flex布局.Grid布局以及媒体查询三种方式来实现响应式布局. 文章涉及代码在线coding地址 效果图: 文字描述: 屏幕大小不同,展示列数不同,1-5号按照屏幕大小可展示2到 ...
- css媒体查询:响应式网站
css媒体查询:响应式网站 媒体查询 包含了一个媒体类型和至少一个使用如宽度.高度和颜色等媒体属性来限制样式表范围的表达式.CSS3加入的媒体查询使得无需修改内容便可以使样式应用于某些特定的设备范围. ...
- Power Apps 创建响应式布局
前言 我们都知道Power Apps作为低代码平台,最大的优势就是各个设备之间的兼容性,尤其是自带的响应式布局,非常好用. 这不,我们就为大家分享一下,如何使用Power Apps画布应用,创建响应式 ...
- 【css】25个漂亮的响应式布局的web设计【转】
响应的web设计的做法是提高用户的浏览质量,并在不同设备上能够完美的浏览使用,就像大前端推出的D7主题.看看下面美丽的响应的网站布局,通过本文你会在以后的设计中找到响应的web设计的灵感. 1.Mar ...
- CSS3---媒体查询与响应式布局
1. 值 设备类型 All 所有设备 Braille 盲人用点字法触觉回馈设备 Embossed 盲文打印机 Handheld 便携设备 Print 打印用纸或打印预览视图 Projection 各种 ...
- CSS3 媒体查询@media 查询(响应式布局)
例:如果文档宽度小于 300 像素则修改背景颜色(background-color): @media screen and (max-width: 300px) { body { background ...
随机推荐
- angularjs的$filter使用
angularjs的$filter使用 $filter服务可以在js中对数据进行过滤处理,ng有几个内建的filter,其中有一个叫filter的filter,可方便的实现属性的过滤. 详细的API参 ...
- 【转载】经典SQL语句大全
[原文地址]http://www.cnblogs.com/yubinfeng/archive/2010/11/02/1867386.html 一.基础 1.说明:创建数据库CREATE DATABAS ...
- 基于Metronic的Bootstrap开发框架经验总结(3)--下拉列表Select2插件的使用
在上篇<基于Metronic的Bootstrap开发框架经验总结(2)--列表分页处理和插件JSTree的使用>介绍了数据的分页处理,使用了Bootstrap Paginator插件,另外 ...
- Java多线程系列--“JUC原子类”05之 AtomicLongFieldUpdater原子类
概要 AtomicIntegerFieldUpdater, AtomicLongFieldUpdater和AtomicReferenceFieldUpdater这3个修改类的成员的原子类型的原理和用法 ...
- 打开都是“Smart Adobe CC Blocker v1.0”已损坏,打不开。 您应该将它移到废纸篓。
安全设置里允许任意来源打开就可以了 “系统偏好设置”->“安全性与隐私”->“允许从以下位置下载的应用程序”->任何来源.
- JS中的原型继承机制
转载 http://blog.csdn.net/niuyongjie/article/details/4810835 在学习JS的面向对象过程中,一直对constructor与prototype感到很 ...
- Windows Azure Web Site (13) Azure Web Site备份
<Windows Azure Platform 系列文章目录> 我们在使用Windows Azure Web Site的时候,经常会遇到需要对Web Site进行备份的情况.在这里笔者简单 ...
- 精美素材:40个漂亮的 PSD 贴纸模板《上篇》
贴纸经常被网页设计师用于为标注网站中的不同元素,以此吸引访客的注意.此外,使用贴纸也使网站更具吸引力.虽然设计者可以使用 Photoshop 制作贴纸,但他们也可以利用从互联网上下载现成的模板.这些模 ...
- Windows 8.1 系统ISO镜像下载或自Win8应用商店升级方法
1)下载 -- 面向全体用户的Win8.1预览版ISO镜像下载(28日开放): 安装时请输入微软官方提供给大家的产品密钥:NTTX3-RV7VB-T7X7F-WQYYY-9Y92F. 64位简体中文版 ...
- vim黏贴自动增加tab的毛病
vim在ctrl + p的时候有可能会自动给你增加了个tab 很是郁闷 解决方法如下: :set noautoindent :set nosmartindent