关于web中的自适应布局

一、”自适应网页设计”的概念 
2010年,Ethan
Marcotte提出了“自适应网页设计”(Responsive Web
Design)--这个名词,指可以自动识别屏幕宽度、并做出相应调整的网页设计。

二、允许网页宽度自动调整 
“自适应网页设计”到底是怎么做到的?其实并不难。 
首先,在网页代码的头部,加入一行viewport元标签。

  1. <meta name=”viewport” content=”width=device-width, initial-scale=1″
    />

viewport是网页默认的宽度和高度,上面这行代码的意思是,网页宽度默认等于屏幕宽度(width=device-width),原始缩放比例(initial-scale=1)为1.0,即网页初始大小占屏幕面积的100%。
所有主流浏览器都支持这个设置,包括IE9。对于那些老式浏览器(主要是IE6、7、8),需要使用css3-mediaqueries.js

  1. <!–[if lt IE 9]> <script src=”http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js”></script>
    <![endif]–>


三、不使用绝对宽度 
由于网页会根据屏幕宽度调整布局,所以不能使用绝对宽度的布局,也不能使用具有绝对宽度的元素。这一条非常重要。 
具体说,CSS代码不能指定像素宽度: 
width:xxx
px; 
只能指定百分比宽度: 
width:
xx%; 
或者 
width:auto; 

四、相对大小的字体 字体也不能使用绝对大小(px),而只能使用相对大小(em)。 
body
{ font: normal 100% Helvetica, Arial, sans-serif;


上面的代码指定,字体大小是页面默认大小的100%,即16像素。 
h1
{ font-size: 1.5em;


然后,h1的大小是默认大小的1.5倍,即24像素(24/16=1.5)。 
small
{ font-size: 0.875em;

small元素的大小是默认大小的0.875倍,即14像素(14/16=0.875)。 

五、流动布局(fluid
grid)
 

“流动布局”的含义是,各个区块的位置都是浮动的,不是固定不变的。

  1. .main { float: right; width: 70%; }

  2. .leftBar { float: left; width: 25%; }

float的好处是,如果宽度太小,放不下两个元素,后面的元素会自动滚动到前面元素的下方,不会在水平方向overflow(溢出),避免了水平滚动条的出现。
另外,绝对定位(position: absolute)的使用,也要非常小心。 

六、选择加载CSS 
“自适应网页设计”的核心,就是CSS3引入的Media
Query模块。 它的意思就是,自动探测屏幕宽度,然后加载相应的CSS文件。

  1. <link rel=”stylesheet” type=”text/css
    media=”screen and (max-device-width: 400px)” href=”tinyScreen.css
    />

上面的代码意思是,如果屏幕宽度小于400像素(max-device-width:
400px),就加载tinyScreen.css文件。

  1. <link rel=”stylesheet” type=”text/css
    media=”screen and (min-width: 400px) and (max-device-width: 600px)”
    href=”smallScreen.css
    />

如果屏幕宽度在400像素到600像素之间,则加载smallScreen.css文件。
除了用html标签加载CSS文件,还可以在现有CSS文件中加载。

  1. @import url(“tinyScreen.css”)
    screen and (max-device-width: 400px);


七、CSS的@media规则 同一个CSS文件中,也可以根据不同的屏幕分辨率,选择应用不同的CSS规则。

  1. @media screen and (max-device-width: 400px) { .column { float: none;
    width:auto; } #sidebar { display:none; } }

上面的代码意思是,如果屏幕宽度小于400像素,则column块取消浮动(float:none)、宽度自动调节(width:auto),sidebar块不显示(display:none)。 

八、图片的自适应(fluid
image) 

除了布局和文本,”自适应网页设计”还必须实现图片的自动缩放。 
这只要一行CSS代码:

  1. img { max-width: 100%;}

这行代码对于大多数嵌入网页的视频也有效,所以可以写成: img, object { max-width:
100%;} 
老版本的IE不支持max-width,所以只好写成: 
img
{ width: 100%;

此外,windows平台缩放图片时,可能出现图像失真现象。这时,可以尝试使用IE的专有命令:

    1. img { -ms-interpolation-mode: bicubic; }

    2. 或者,Ethan Marcotte的imgSizer.js

    3. addLoadEvent(function() { var imgs =
      document.getElementById(“content”).getElementsByTagName(“img”);
      imgSizer.collate(imgs); });

时间: 2024-10-08 01:38:45

关于web中的自适应布局的相关文章

构建Android自适应布局应用方案解析

由于目前在做的一款app需要适配手机和平板,所以我在研究怎么构建可适应所有屏幕尺寸的布局方法.     在web的自适应布局上我有很多经验,比如使用网格流,CSS3中的media queries属性等等,这些都可以实现web上的自适应布局,所以我想在Android上试试看.     在Android上,是通过configuration qualifiers的方式来加载不同的资源,基于不同的手机屏幕尺寸或者屏幕的朝向(竖直还是水平),而我最大的目标就是创建一个可以自动缩放的布局,而不用根据不同的屏

微信小程序新单位rpx与自适应布局

rpx是微信小程序新推出的一个单位,按官方的定义,rpx可以根据屏幕宽度进行自适应,在rpx出现之前,web页面的自适应布局已经有了多种解决方案,为什么微信还捣鼓出新的rpx单位?在解释这个单位前,我们先简单了解一下目前的主流的自适应布局解决方案: 响应式(Responsive web design) rem 流式布局 scale伸缩布局 响应式 响应式布局的问题在于需要维护多个样式文件,维护成本太大,一般的移动H5页面都不会优先考虑. rem rem是近几年比较流行的方案,淘宝移动web端就是

移动应用开发之自适应布局与单位(px、em)选择

移动应用开发中自适应布局是非常重要的,因为不同设备分辨率不一样,大小也不一样,不采用自适应布局在不同的设备中显示会出现各种问题 能够起到自适应布局的方法 CSS3中的自适应布局 百分比布局法:即大小,位置,边距等用百分比来限制,能够在不同的设备中占据总体的布局一致 webkit-box结合-webkit-box-flex布局法:使用webkit-box能够实现弹性盒子模式布局,结合-webkit-box-flex能够实现将屏幕完全分割的布局,与半分比不同的是:百分比布局在存在border的时候不

web前端响应式布局,自适应全部分辨率

写phpd的我. 近期公司要弄个app关键是没有web开发,而我有比較闲,那就扛枪上阵吧. 响应式布局,web端的?php我一直都是用tp框架,对于web首先想到的是bootstrap框架.仅仅是简单了解过,没真正实践啊.bootstrap比我想象的要好用的多.关键是.关键来了-- app端是仅仅有手机的,pc基本上木有.那就是说仅仅能依照手机端开发,那么boostrap响应式布局就不适用于app了(反正我是做了一套半成品,被推翻了).不能愉快的工作了.好不淡定的时间. .百度.百又问问同事.发

两列布局中单列定宽单列自适应布局的5种思路

× 目录 [1]float [2]inline-block [3]table[4]absolute[5]flex 前面的话 说起自适应布局方式,单列定宽单列自适应布局是最基本的布局形式.本文将从float.inline-block.table.absolute和flex这五种思路来详细说明如何巧妙地实现布局 思路一: float 说起两列布局,最常见的就是使用float来实现.float浮动布局的缺点是浮动后会造成文本环绕等效果,以及需要及时清除浮动.如果各浮动元素的高度不同时,可能会出犬牙交错

如何在ASP.NET Web站点中统一页面布局[Creating a Consistent Layout in ASP.NET Web Pages(Razor) Sites]

如何在ASP.NET Web站点中统一页面布局[Creating a Consistent Layout in ASP.NET Web Pages(Razor) Sites] 一.布局页面介绍[About Layout Pages] 很多网站有些内容需要显示在各个页面中,比如Header,Footer或者告诉用户已经登录的部分.ASP.NET允许你创建一个单独的文件来包含文本.标签和代码的内容块,从而搭建一个风格整齐的网站.接下来你就可以将这个内容块插入到任何你想要让它展示的页面中.采用这种方法

css3中webkit-box的实现多栏自适应布局

我们经常会在手机端看到这种布局,要适应各种分辨率: 之前要实现横列的web布局,通常就是float或者display:inline-block; 但是都不能做到真正的流体布局.至少width要自己去算百分比.但是用flexible box 就可以实现真正意义上的流体布局.只要给出相应属性,浏览器会帮我们做额外的计算. 关于盒模型的几个属性: box-orient           子元素排列 vertical or horizontalbox-flex             兄弟元素之间比例

ASP.NET MVC 4中如何为不同的浏览器自适应布局和视图

在ASP.NET MVC 4中,可以很简单地实现针对不同的浏览器自适应布局和视图.这个得归功于MVC中的"约定甚于配置"的设计理念. 默认的自适应 MVC 4自动地为移动设备浏览器和PC设备浏览器进行自适应.针对布局页面,默认的文件名为_Layout.cshtml,这个默认会被所有的浏览器使用.但如果我们希望在移动设备上面,呈现一个不同的布局,只需要添加一个名称为_Layout.Mobile.cshtml的布局页面就可以了.同样的规则,也适用于普通的视图页面.例如Index.cshtm

css 两列布局中单列定宽单列自适应布局的6种思路

前面的话 说起自适应布局方式,单列定宽单列自适应布局是最基本的布局形式.本文将从float.inline-block.table.absolute.flex和grid这六种思路来详细说明如何巧妙地实现布局 float [思路一]float 说起两列布局,最常见的就是使用float来实现.float浮动布局的缺点是浮动后会造成文本环绕等效果,以及需要及时清除浮动.如果各浮动元素的高度不同时,可能会出犬牙交错的效果 [1]float + margin 将定宽的一列使用float,而自适应的一列使用计