如何让网页自适应所有屏幕宽度

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何让网页自适应所有屏幕宽度相关的知识,希望对你有一定的参考价值。

“自适应网页设计”到底是怎么做到的?其实并不难。

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

2、不使用绝对宽度由于网页会根据屏幕宽度调整布局,所以不能使用绝对宽度的布局,也不能使用具有绝对宽度的元素。这一条非常重要。具体说,CSS代码
不能指定像素宽度:width:xxx px;
只能指定百分比宽度:
width: xx%;
或者
width:auto;
3、相对大小的字体
字体也不能使用绝对大小(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)
“流动布局”的含义是,各个区块的位置都是浮动的,不是固定不变的。
.main
float: right;
width: 70%;

.leftBar
float: left;
width: 25%;

float的好处是,如果宽度太小,放不下两个元素,后面的元素会自动滚动到前面元素的下方,不会在水平方向overflow(溢出),避免了水平滚动条的出现。
另外,绝对定位(position: absolute)的使用,也要非常小心。
四、选择加载CSS
“自适应网页设计”的核心,就是CSS3引入的Media Query模块。
它的意思就是,自动探测屏幕宽度,然后加载相应的CSS文件。

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

如果屏幕宽度在400像素到600像素之间,则加载smallScreen.css文件。
除了用html标签加载CSS文件,还可以在现有CSS文件中加载。
五、CSS的@media规则
同一个CSS文件中,也可以根据不同的屏幕分辨率,选择应用不同的CSS规则。
@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代码:
img max-width: 100%;
这行代码对于大多数嵌入网页的视频也有效,所以可以写成:
img, object max-width: 100%;
老版本的IE不支持max-width,所以只好写成:
img width: 100%;
此外,windows平台缩放图片时,可能出现图像失真现象。这时,可以尝试使用IE的专有命令:
img -ms-interpolation-mode: bicubic;
或者,Ethan Marcotte的imgSizer.js。
addLoadEvent(function()
var imgs = document.getElementById(“content”).getElementsByTagName(“img”);
imgSizer.collate(imgs);
);
参考技术A 1.首先,在网页代码的头部,加入一行viewport元标签。
viewport是网页默认的宽度和高度,上面这行代码的意思是,网页宽度默认等于屏幕宽度(width=device-width),原始缩放比例(initial-scale=1)为1.0,即网页初始大小占屏幕面积的100%。
所有主流浏览器都支持这个设置,包括IE9,对于那些老式浏览器(主要是IE6、7、8),需要使用css3-mediaqueries.js。
2、不使用绝对宽度由于网页会根据屏幕宽度调整布局,所以不能使用绝对宽度的布局,也不能使用具有绝对宽度的元素。这一条非常重要。具体说,CSS代码不能指定像素宽度:width:xxx px;
只能指定百分比宽度:width: xx%;或者width:auto;
3、相对大小的字体
字体也不能使用绝对大小(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)。
参考技术B 在1024*768或者800*600的分辨率下可以自动调整成适用于该客户端分辨率的大小。
  方法:做一个网页解决问题
  如果只是因为浏览者改变了浏览器的设置,或者因为浏览器不兼容,使自己精心制作的网页变得"面目全非",那多令人沮丧!下面我们以网页爱好者的常用工具Dreamweaver(以下简称DW)为例,列出几个网页制作初学者较常见的网页布局问题以及解决方法,希望对初学者们有所帮助。
  一、消除任意缩放浏览器窗口对网页的影响
  一番辛苦做出来的网页,在全屏状态下浏览一切正常。但在改变浏览窗口大小之后,网页就变得"不堪入目"了,这是个很值得注意的问题。
  问题的根源还得从网页的布局说起,在DW中,网页内容的定位一般是通过表格来实现的,解决表格的问题也就成功了大半。本回答被提问者和网友采纳
参考技术C 1、在网页头部加上这样一条meta标签:<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=0.5, maximum-scale=2.0, user-scalable=yes" />
解释:
width=device-width :宽度等于设备屏幕的宽度
initial-scale=1.0:表示:初始的缩放比例
minimum-scale=0.5:表示:最小的缩放比例
maximum-scale=2.0:表示:最大的缩放比例
user-scalable=yes:表示:用户是否可以调整缩放比例
另外:如果想控制字体的大小的话,应该使用相对大小,可以用下面这段代码,一般不用也可,这里只是说明一种方法。
相对大小的字体
字体也不能使用绝对大小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)。
2、让网页适应不同的浏览器
浏览器的格局现在是两分天下,一分是IE,另一分是NetScape,在国内Ie有绝对的占有率,在这种情况下我们设计的网页只要兼容它就行了,但NetScape在国外还是有很多人使用,毕竟它是浏览器的元老。
虽然没有办法做出让所有浏览器都兼容的网站,但只要注意以下几点,做出来的网页在各个浏览器都中能达到比较好的显示效果:
a、不要混合使用层和表格排版,如果是父子关系,如层中表格,不在此原则范围内。
b、内联式的 CSS 在 Netscape Navigator 中经常会出现问题,使用链式或内嵌式。
c、有时需要在空层插入表格或者透明图片,以保证在 Netscape Navigator 里的效果。
d、对于只有几个像素宽度或高度的层,改用图片来实现。
e、避免使用 W3C 组织不推荐的排版属性,用 CSS 代替。
参考技术D 用html5+css 3,或者用百分比 来计算

CSS背景图片自适应屏幕大小

如何控制bodybackground:url(bglogo.gif);
在不同的分辨率显示下 保持背景图片始终全屏显示
不要设置图片的wight 和height 属性值
因为我的笔记本是14寸 而测试机器是17寸
我想让图片不管在多大的屏幕上 总是呈现100%
屏幕小 自动缩小 屏幕大 自动放大
并且始终是maggin:0 auto;的效果

使用滤镜就可以了
<style type="text/css">
body
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='bglogo.gif',sizingMethod='scale');
background-repeat: no-repeat;
background-positon: 100%, 100%;

</style>
参考技术A 你可以准备多个尺寸的背景图,用javascript检查浏览器的分辨率,然后根据不同的分辨率调用不同的背景图片做背景。 参考技术B bodybackground:url(bglogo.gif);
默认自动上下左右平铺的。不是拉伸追问

我现在的背景太大了 显示不了全部
因为我的笔记本屏幕小
但是又不能用DIV固定他
固定了换了别的大屏幕的就又会觉得小
所以想他可以自动
图片和屏幕永远保持100%
简单的道理就不用讲解给我了

追答

1、首先你要明白背景图片没法100%。只能通过平铺的方式达到100%
2、你的背景图片超过了笔记本屏幕的大小,就没法显示全部。
3、body background:url("bglogo.gif") repeat fixed!important;
代码说明: fixed 固定,大背景不会因为你拉动滚动条而滚动
4、你反过来想一想,假如显示器有30“,你的图片100%实现了效果,图片是不是被拉伸,是不是会失真。

本回答被提问者采纳
参考技术C background-size:100%;

以上是关于如何让网页自适应所有屏幕宽度的主要内容,如果未能解决你的问题,请参考以下文章

如何让网页在浏览器自适应屏幕大小?

Grid形式的RecyclerView屏幕宽度自适应

css3怎么实现屏幕自适应

如何添加CSS让页面自适应手机屏幕

使用WKWebView自适应屏幕遇到的问题以及最后解决的方法

轮播图如何自适应高度、宽度