[转]CSS3 Media Query实现响应布局_html/css_WEB-ITnose

讲到响应式布局, 相信大家都有一定的了解,响应式布局是今年很流行的一个设计理念,随着移动互联网的盛行,为解决如今各式各样的浏览器分辨率以及不同移动设备的显示效果, 设计师提出了响应式布局的设计方案。今天就和大家来讲讲响应式布局这件小事,包含什么是响应式布局、响应式布局的优点和缺点以及响应式布局该怎么设计(通 过css3 media query实现响应布局)。

一、什么是响应式布局?

响应式布局是Ethan Marcotte在2010年5月份提出的一个概念,简而言之,就是一个网站能够兼容多个终端??而不是为每个终端做一个特定的版本。这个概念是为解决移动互联网浏览而诞生的。

响应式布局可以为不同终端的用户提供更加舒适的界面和更好的用户体验,而且随着目前大屏幕移动设备的普及,用大势所趋来形容也不为过。随着越来越多的设计师采用这个技术,我们不仅看到很多的创新,还看到了一些成形的模式。

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

二、响应式布局有哪些优点和缺点?

优点:

面对不同分辨率设备灵活性强

能够快捷解决多设备显示适应问题

缺点:

兼容各种设备工作量大,效率低下

代码累赘,会出现隐藏无用的元素,加载时间加长

其实这是一种折衷性质的设计解决方案,多方面因素影响而达不到最佳效果

一定程度上改变了网站原有的布局结构,会出现用户混淆的情况

三、响应式布局该怎么设计?

我们在上面了解了什么是响应式布局,那在我们的实际项目中应该怎么去设计呢?在以往我们设计网站的时候都会受到不同浏览器的兼容性的困扰,现在还要来个不同尺寸设备,我们该怎么淡定下来呢?有需求就会有解决方案,呵呵,说到响应式布局,就不得不提起CSS3中的Media Query(媒介查询),这可是个好东西,易用、强大、快捷……Media Query是制作响应式布局的一个利器,使用这个工具,我们可以非常方便快捷的制造出各种丰富的实用性强的界面。接下来就一起来深入的了解Media Query。

1、CSS中的Media Query(媒介查询)是什么?

通过不同的媒体类型和条件定义样式表规则。媒体查询让CSS可以更精确作用于不同的媒体类型和同一媒体的不同条件。媒体查询的大部分媒体特性都接受min和max用于表达”大于或等于”和”小与或等于”。如:width会有min-width和max-width媒体查询可以被用在CSS中的@media和@import规则上,也可以被用在HTML和XML中。通过这个标签属性,我们可以很方便的在不同的设备下实现丰富的界面,特别是移动设备,将会运用更加的广泛。

2、media query能够获取哪些值?

设备的宽和高device-width,device-heigth显示屏幕/触觉设备。

渲染窗口的宽和高width,heigth显示屏幕/触觉设备。

设备的手持方向,横向还是竖向orientation(portrait|lanscape)和打印机等。

画面比例aspect-ratio点阵打印机等。

设备比例device-aspect-ratio-点阵打印机等。

对象颜色或颜色列表color,color-index显示屏幕。

设备的分辨率resolution。

3、语法结构及用法

@media 设备名 only (选取条件) not (选取条件) and(设备选取条件),设备二{sRules}

示例一:在link中使用@media:

上面使用中only可省略,限定于计算机显示器,第一个条件max-width是指渲染界面最大宽度,第二个条件max-device-width是指设备最大宽度。

示例二:在样式表中内嵌@media:

@media (min-device-width:1024px) and (max-width:989px),screen and (max-device-width:480px),(max-device-width:480px) and (orientation:landscape),(min-device-width:480px) and (max-device-width:1024px) and (orientation:portrait) {srules}

在示例二中,设置了电脑显示器分辨率(宽度)大于或等于1024px(并且最大可见宽度为989px);屏宽在480px及其以下手持设备;屏宽在480px以及横向(即480尺寸平行于地面)放置的手持设备;屏宽大于或等于480px小于1024px以及垂直放置设备的css样式。

从上面的例子可以看出,字符间以空格相连,选取条件包含在小括号内,srules为兼容设置的样式表,包含在中括号里面。only(限定某种设备,可省略),and(逻辑与),not(排除某种设备)为逻辑关键字,多种设备用逗号分隔,这一点继承了css基本语法。

4、可用设备名参数:

5、逻辑关键字:

6、可用设备名参数:

7、测试Media Queries

最后,我们需要对我们刚刚设计的Media Queries进行测试,想要在不同设备上测试Media Queries的效果,可以使用一个浏览工具来检验不同尺寸屏幕下的显示效果,在这里为大家介绍一个不错的在线工具 ? Responsivator,它可以模拟iPhone等各种不同设备,并且还可以自定义不同尺寸屏幕的显示效果,只需要输入一个url甚至是本地的一个url(如:http://127.0.0.1/),就可以看到网站在不同尺寸屏幕下的显示效果。

8、通过Media Queries实现响应式布局设计

好了,我们明白了什么是Media Query,那我们一起来运用到响应式布局的设计项目中去。设计思路很简单,首先先定义在标准浏览器下的固定宽度(假如标准浏览器的分辨率为1024px,那么我们设置宽为980px),然后用Media Query来监测浏览器的尺寸变化,当浏览器的分辨率小于1024px的时候,则通过Media Query预设的样式表来将页面的宽度设置为百分比显示,这样子页面的结构元素就会根据浏览器的的尺寸来进行相对应的调整。同理,当浏览器的可视区域改变到某个值(假如为650px)的时候,页面的结构元素根据Media Query预设的层叠样式表来进行相对应的调整。看看我们的例子:

/* 当浏览器的可视区域小于980px */

@media screen and (max-width: 980px) {

#wrap {width: 90%; margin:0 auto;}

#content {width: 60%;padding: 5%;}

#sidebar {width: 30%;}

#footer {padding: 8% 5%;margin-bottom: 10px;}

}

/* 当浏览器的可视区域小于650px */

@media screen and (max-width: 650px) {

#header {height: auto;}

#searchform {position: absolute;top: 5px;right: 0;}

#content {width: auto; float: none; margin: 20px 0;}

#sidebar {width: 100%; float: none; margin: 0;}

}

通过上面我们就可以监测浏览器的可视区域变化的是时候我们的页面结构元素也会相对应的变化,当然你可以再多设置几个尺寸的监测层叠样式表,这样子就可以根据不同尺寸设备来进行响应式的布局。为了更好的显示效果,我们往往还要格式化一些CSS属性的初始值:

/* 禁用iPhone中Safari的字号自动调整 */

html {

-webkit-text-size-adjust: none;

}

/* 设置HTML5元素为块 */

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {

display: block;

}

/* 设置图片视频等自适应调整 */

img {

max-width: 100%;

height: auto;

width: auto9; /* ie8 */

}

.video embed, .video object, .video iframe {

width: 100%;

height: auto;

}

最后要注意的是在页面的头部

之间加上下面这句∶

meta viewport这个属性是在移动设备上设置原始大小显示和是否缩放的声明。

参数设置∶

width ? viewport的宽度

height ? viewport的高度

initial-scale ? 初始的缩放比例

minimum-scale ? 允许用户缩放到的最小比例

maximum-scale ? 允许用户缩放到的最大比例

user-scalable ? 用户是否可以手动缩放

最后对于在IE浏览器中不支持media query的情况,我们可以使用Media Query JavaScript来解决,只需要在页面头部引用css3-mediaqueries.js即可。示例:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2839373.html

(0)
上一篇 2025年3月9日 13:51:32
下一篇 2025年3月9日 13:51:42

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • HTML九宫格布局实现方法

    网站布局多样化是我们前端的拿手菜!最近看到uc浏览器的默认标签页使用的就是九宫格布局。就研究了下,在这里,我就分享一下代码,共同学习下!效果如下: nbsp;html>        全兼容的HTML九宫格布局            …

    2025年3月9日
    200
  • HTML表格布局实例讲解

    html 文档中的元素是一个接着一个排列的,只是简单地在在块级元素的前后加上拆行,是一种流水布局。但是,我们所见到的 web 页面按照一定的规则布局排版的(通常是多列的),所以就要借助一定的方法来实现这种布局,通常的解决方案是:使用区块元素…

    2025年3月9日
    200
  • textarea布局时文字在左下边且不能改变大小尺寸的解决

    textarea文本域左边的文字一直都是在textarea的左下边,看起来不美观;textarea文本域明明设置好的cols和rows但是还是能改变大小,以上这些问题,可以参考本文的解决方法两个小问题,但是困扰了很久 第一个问题 texta…

    编程技术 2025年3月9日
    200
  • HTML元素内联元素、块级元素的布局介绍

    html元素布局展示  默认展示(未添加width和height属性) ①HTML元素在浏览器展示的方式是:从上到下,从左到右。 ②内联元素,是根据浏览器的宽度及自身的width宽度来填充。若当前行剩余空白区域不够,就会换至下一行。 ③块级…

    2025年3月9日
    200
  • HTML5和CSS3 实现灵动画的切换效果

    本文给大家分享一个demo基于html5+css3 实现灵动的动画 tab 切换效果,非常不错,具有参考借鉴价值,需要的朋友参考下吧 设计师给了一个 tab 切换的效果图。虽然是一个很小的功能,但是前端工程师在实现的时候还是有很多细节需要注…

    2025年3月9日
    200
  • 浅析HTML Table表格的使用方法

    这篇文章给大家介绍的文章内容是关于浅析html table表格的使用方法,有很好的参考价值,希望可以帮助到有需要的朋友。 定义和用法 table标签定义 HTML 表格。 创建表格的四要素:table、tr、th、td 整个表格以 标记开始…

    2025年3月9日
    200
  • HTML和CSS3中的2D、3D结合实现动画效果

    这篇文章给大家介绍的内容是关于HTML和CSS3中的2D、3D结合实现动画效果,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 虽然我们我们在前端工作中,对于2d、3d动画效果一般来说都用不上,基本上都是用js或jq来完成这…

    2025年3月9日
    200
  • html css3是什么

    css3是css(层叠样式表)技术的升级版本,于1999年开始制订,2001年5月23日w3c完成了css3的工作草案,主要包括盒子模型、列表模块、超链接方式、语言模块、背景和边框、文字特效、多栏布局等模块  。 CSS演进的一个主要变化就…

    2025年3月9日
    200
  • html中的三种布局分别是什么

    流动布局(html网页默认的布局方式) (视频教程分享:html视频教程) 特点: 1、块状元素都会在所处的包含元素内自上而下按顺序垂直延伸分布,因为在默认状态下,块状元素的宽度都为100%。 立即学习“前端免费学习笔记(深入)”; 2、内…

    2025年3月9日
    200
  • HTML教程:如何使用Flexbox进行平均分配布局

    HTML教程:如何使用Flexbox进行平均分配布局 引言:在网页设计中,经常需要对元素进行布局。传统的布局方法存在一些局限性,而Flexbox(弹性盒子布局)是一种能够提供更灵活、更强大的布局方式。本文将介绍如何使用Flexbox来实现平…

    2025年3月9日
    200

发表回复

登录后才能评论