CSS根据屏幕分辨率宽度⾃动适应的办法
CSS根据屏幕分辨率宽度⾃动适应的办法
第⼀种办法是选择CSS
<SCRIPT language=>
<!-- Begin
if (screen.width == 640)
{
document.write('<link href="/Css/Style.css" rel="stylesheet" type="text/css" />');
}
if (screen.width == 800)
{
document.write('<link href="/Css/Style.css" rel="stylesheet" type="text/css" />');
}
if (screen.width == 1024)
{
document.write('<link href="/Css/Style.css" rel="stylesheet" type="text/css" />');
}
if (screen.width == 1280)
{
document.write('<link href="/Css/Style.css" rel="stylesheet" type="text/css" />');
}
if (screen.width == 1600)
{
document.write('<link href="/Css/Style.css" rel="stylesheet" type="text/css" />');
} // End -->
</SCRIPT>
第⼆种办法是选择CSS
允许⽹页宽度⾃动调整
“⾃适应⽹页设计”到底是怎么做到的?其实并不难。
⾸先,在⽹页代码的头部,加⼊⼀⾏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),需要使⽤-mediaqueries.js。
1.<!–[if lt IE 9]>
2.<script src=”lecode/svn/trunk/css3-mediaqueries.js”></script>
3.<![endif]–>
三、不使⽤绝对宽度
由于⽹页会根据屏幕宽度调整布局,所以不能使⽤绝对宽度的布局,也不能使⽤具有绝对宽度的元素。这⼀条⾮常重要。
具体说,CSS代码不能指定像素宽度:
1.width:300px;
只能指定百分⽐宽度:
1.width:  98%;
或者
1.width:auto;
四、相对⼤⼩的字体
字体也不能使⽤绝对⼤⼩(px),⽽只能使⽤相对⼤⼩(em)。
1. body {
2.    font: normal 100% Helvetica, Arial, sans-serif;
3. }
上⾯的代码指定,字体⼤⼩是页⾯默认⼤⼩的100%,即16像素。
1.h1 {
2.  font-size: 1.5em;
3.}
然后,h1的⼤⼩是默认⼤⼩的1.5倍,即24像素(24/16=1.5)。
1.  small {
2.    font-size: 0.875em;
3.  }
small元素的⼤⼩是默认⼤⼩的0.875倍,即14像素(14/16=0.875)。
五、流动布局(fluid grid)
“流动布局”的含义是,各个区块的位置都是浮动的,不是固定不变的。
2.  float: rightright;
3.  width: 70%;
4.}
5..leftBar {
6.  float: left;
7.  width: 25%;
8.}
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”
2.    media=”screen and (min-width: 400px) and (max-device-width: 600px)”
3.    href=”smallScreen.css” />
如果屏幕宽度在400像素到600像素之间,则加载smallScreen.css⽂件。
除了⽤html标签加载CSS⽂件,还可以在现有CSS⽂件中加载。
url(“tinyScreen.css”) screen and (max-device-width: 400px);
七、CSS的@media规则
同⼀个CSS⽂件中,也可以根据不同的屏幕分辨率,选择应⽤不同的CSS规则。
screen and (max-device-width: 400px) {
2.  .column {
3.    float: none;
4.    width:auto;
5.  }
6.  #sidebar {
7.    display:none;
8.  }
9.}
上⾯的代码意思是,如果屏幕宽度⼩于400像素,则column块取消浮动(float:none)、宽度⾃动调节(width:auto),sidebar块不显⽰(display:none)。
⼋、图⽚的⾃适应(fluid image)
除了布局和⽂本,”⾃适应⽹页设计”还必须实现图⽚的⾃动缩放。
这只要⼀⾏CSS代码:
网页float是什么意思
1.img { max-width: 100%;}
这⾏代码对于⼤多数嵌⼊⽹页的视频也有效,所以可以写成:
1.img, object { max-width: 100%;}
⽼版本的IE不⽀持max-width,所以只好写成:
1.img { width: 100%; }
此外,windows平台缩放图⽚时,可能出现图像失真现象。这时,可以尝试使⽤IE的专有命令:
1.img { -ms-interpolation-mode: bicubic; }
或者,Ethan Marcotte的imgSizer.js。
1.addLoadEvent(function() {
2.  var imgs = ElementById(“content”).getElementsByTagName(“img”);
3.  llate(imgs);
4.});
不过,有条件的话,最好还是根据不同⼤⼩的屏幕,加载不同分辨率的图⽚。有很多⽅法可以做到这⼀条,服务器端和客户端都可以实现。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。