html页面怎样能够自适应电脑屏幕宽度?

html页面怎样能够自适应电脑屏幕宽度?,第1张

在1024*768或者800*600的分辨率下可以自动调整成适用于该客户端分辨率的大小。

第一种方法:做一个网页解决问题(长了点)

如果只是因为浏览者改变了浏览器的设置,或者因为浏览器不兼容,使自己精心制作的网页变得"面目全非",那多令人沮丧!下面我们以网页爱好者的常用工具Dreamweaver(以下简称DW)为例,列出几个网页制作初学者较常见的网页布局问题以及解决方法,希望对初学者们有所帮助。

一、消除任意缩放浏览器窗口对网页的影响

一番辛苦做出来的网页,在全屏状态下浏览一切正常。但在改变浏览窗口大小之后,网页就变得"不堪入目"了,这是个很值得注意的问题。

问题的根源还得从网页的布局说起,在DW中,网页内容的定位一般是通过表格来实现的,解决表格的问题也就成功了大半。

大家应该注意到,在DW中表格属性面板的高宽设定选择上提供了两种不同类型:百分比和像素值。百分比的使用将会产生前面说到的那个毛病。这里所说的百分比是指表格的高或宽设置为上层标记所占区域高或宽的百分比,如在一个表格单元的宽度是600,在它里面嵌入了另外一个表格,表格宽度占表格单元的50%,则这个表格的宽度为300,依此类推,如果在一个表格不是嵌于另一个表格单元中,则其百分比是相对于当时窗口的宽度的。IE浏览器中,随便改动主页窗口的大小时,表格的内容也随之错位、变形,就是因为表格的百分比也要随着窗口的大小而改变成相应的百分比宽度。

自然,解决这个问题的办法就是将表格宽度设置成固定宽度(也就是像素值)。另外如果外层表格已做好固定宽度设置,内层表格也可以适当使用百分比设置。清楚这个原则以后,如果出现类似的问题大家也知道怎么解决。

二、让网页居中

说到了窗口大小就会顺着路子想到分辨率的问题,在800×600分辨率下制作的网页在1024×768分辨率的机器上打开,整个网页就会跑到左边;1024×768分辨率的网页在800×600分辨率的机器上有时也会变得"不堪入目"。两种分辨率各做一个吧?做起来费时,看起来也费劲。怎么办呢?

现在大多数网民都还在用800*600的分辨率,所以我们一般可以以此分辨率为主,要想让网页在1024*768时居中,只要在网页原代码的<body>后紧加一句<center>,</body>前加一句</center>就OK了。不过有几个问题这是要注意一下,第一个就是上面说到的百分比的问题,表格、单元格的宽度单位最好要使用像素单位,而不要用百分比。例如width=770。如果你的表格宽度设的是百分比,那么使用大于800×600的像素时,网页就会拉宽,这样网页可能会变形。在<body>中加入leftmargin=0,即<body leftmargin=0>这种情况下,800×600支持的表格宽度为780像素时不会出现滚动条。还有一点要注意的是不能用DW中的层来定位。

<html>

<head></head>

<body topmargin=0 leftmargin=0>

<center>

<table cellspacing cellpadding width=760><tr><td></td></tr></table>

</center>

</body>

</html>

 三、定义固定大小的文字

大家都知道,在IE浏览器的功能设置中,有一个可以自由设置窗口内容字体大小的功能,这样由于不同访问者的设置习惯不同,呈现在他们面前的网页有时也会不不相同。比如你可能本来设计时用的是2号字体,结果由于用户对浏览器的额外设定,变的更大了,这时你的网页也可能变得"不堪入目"。虽然不是你的错,但客户是上帝。

如果使用了网页中的CSS样式表技术,就不会出现上述情况了。使用快捷键"Shift+F11"打开样式表"CSS style"编辑器,在窗口中单击鼠标右键执行"New CSS style..."命令新建一个样式表,然后在给出的列表中选择"类型"选项,定义文字属性参数(一般文字的大小选择12px较为适宜)。完成后选择网页编辑窗中的文本,单击新的样式表名称,可以看到选中的文本发生了变化。预览时试试定义的文本字体尺寸还会不会随浏览器的选择字体大小而改变。

四、让网页适应不同的浏览器

浏览器的格局现在是两分天下,一分是IE,另一分是NetScape,在国内Ie有绝对的占有率,在这种情况下我们设计的网页只要兼容它就行了,但NetScape在国外还是有很多人使用,毕竟它是浏览器的元老。

虽然没有办法做出让所有浏览器都兼容的网站,但只要注意以下几点,做出来的网页在各个浏览器都中能达到比较好的显示效果:

不要混合使用层和表格排版,如果是父子关系,如层中表格,不在此原则范围内。

内联式的 CSS 在 Netscape Navigator 中经常会出现问题,使用链式或内嵌式。

有时需要在空层插入表格或者透明图片,以保证在 Netscape Navigator 里的效果。

对于只有几个像素宽度或高度的层,改用图片来实现。

避免使用 W3C 组织不推荐的排版属性,用 CSS 代替。

第二种方法:做两个适合不同分辨率的页面,一个是800×600,一个是1024×768,在800×600的页面中加入一下代码就可以实现跳转了:

 

解决分辨率问题在Dreamweaver中没有此项功能,我们只能手动加入一段Javascript代码。首先在change-ie.html或change-nc.html页面代码中的<head>和</head>中加入以下代码:

<script language=JavaScript>

<!--

function redirectPage(){

var url800x600=〃index-ie.html〃//定义两个页面,此处假设index-ex.html和1024-ie.html同change-ie.html在同一个目录下

var url1024x768=〃1024-ie.html〃

if ((screen.width==800) && (screen.height==600)) //在此处添加screen.width、screen.height的值可以检测更多的分辨率

window.location.href= url800x600

else if ((screen.width==1024) && (screen.height==768))

window.location.href=url1024x768

else window.location.href=url800x600

}

// -->

</script>

然后再在<body…>内加入onLoad=〃redirectPage()〃

最后,同样地,在<body>和</body>之间加入以下代码来显示网页的工作信息:

<script language=JavaScript>

<!--

var w=screen.width

var h=screen.height

document.write(〃系统已检测到您的分辨率为:〃)

document.write(〃<font size=3 color=red>〃)

document.write(w+〃×〃+h)

document.write(〃</font>〃)

document.write(〃正在进入页面转换,请稍候…〃)

// -->

</script>

判断读者浏览器类型和屏幕分辨率,自动调用不同CSS

我们在设计网页的时候一个比较头痛的问题是究竟我们的浏览者的分辨率是多少?如果使我们的浏览者能够更好的去浏览到我的网页,这个是我们设计前必须思考的问题。所以Leying在设计网页的时候第一个想的是兼容现在大多数浏览者的屏幕分辨率,这里头有几种最常用的方法:

1、硬行把网页先用表格框起来,框的分辨率应该是在760-780象素,其余的空间可以给一个背景图或者空白.

2、用自动缩放的方法也可以实现,这种方法比较古老,而且很简单,这个不多说了;

3、用自动判断的方法。

今天,就第三种方法来说说,如何来判断出浏览者的屏幕分辨率,根据不同的分辨率给予读者不同的浏览内容:

网络上也有一些能自动判断出你的浏览器是什么类型或者什么版本的代码,集成过来。

一、既判断分辨率,也判断浏览器,使之成为判断浏览器类型屏幕分辨率自动调用不同CSS的代码。

<SCRIPT LANGUAGE="JavaScript">

<!--

if (window.navigator.userAgent.indexOf("MSIE")>=1)

{

var IE1024=""

var IE800=""

var IE1152=""

var IEother=""

ScreenWidth(IE1024,IE800,IE1152,IEother)

}else{

if (window.navigator.userAgent.indexOf("Firefox")>=1)

{

//如果浏览器为Firefox

var Firefox1024=""

var Firefox800=""

var Firefox1152=""

var Firefoxother=""

ScreenWidth(Firefox1024,Firefox800,Firefox1152,Firefoxother)

}else{

//如果浏览器为其他

var Other1024=""

var Other800=""

var Other1152=""

var Otherother=""

ScreenWidth(Other1024,Other800,Other1152,Otherother)

}

}

function ScreenWidth(CSS1,CSS2,CSS3,CSS4){

if ((screen.width == 1024) &&(screen.height == 768)){

setActiveStyleSheet(CSS1)

}else{

if ((screen.width == 800) &&(screen.height == 600)){

setActiveStyleSheet(CSS2)

}else{

if ((screen.width == 1152) &&(screen.height == 864)){

setActiveStyleSheet(CSS3)

}else{

setActiveStyleSheet(CSS4)

}}}

}

function setActiveStyleSheet(title){

document.getElementsByTagName("link")[0].href="style/"+title

}

//-->

</SCRIPT>

为了大家明白,这里简单解析一下:

引用内容

var IE1024=""

var IE800=""

var IE1152=""

var IEother=""

引号里面分别填写,用户使用IE的时候并且分辨率为1024*768,800*600,1152*864要使用的css文件名。

var Firefox1024=""

var Firefox800=""

var Firefox1152=""

var Firefoxother=""

引号里面分别填写,用户使用FireFox(一个也很流行的浏览器)的时候并且分辨率为1024*768,800*600,1152*864要使用的css文件名。

var Other1024=""

var Other800=""

var Other1152=""

var Otherother=""

引号里面分别填写,用户使用其他浏览器的时候并且分辨率为1024*768,800*600,1152*864要使用的css文件名。

二、不判断分辨率,只判断浏览器实现根据浏览器类型自动调用不同CSS。

<SCRIPT LANGUAGE="JavaScript">

<!--

if (window.navigator.userAgent.indexOf("MSIE")>=1)

{

//如果浏览器为IE

setActiveStyleSheet("default.css")

}else{

if (window.navigator.userAgent.indexOf("Firefox")>=1)

{

//如果浏览器为Firefox

setActiveStyleSheet("default2.css")

}else{

//如果浏览器为其他

setActiveStyleSheet("newsky.css")

}

}

function setActiveStyleSheet(title){

document.getElementsByTagName("link")[0].href="style/"+title

}

//-->

</SCRIPT>

解释:(和前面的差不多)

如果浏览器为IE,则调用default.css

如果浏览器为Firefox,则调用default2.css

如果浏览器为其他,则调用newsky.css

使用方法:

很简单,放在 “</head>” 前面即可。

页面在不同屏幕分辨率下存在的问题及解决办法

(未考虑800*600或更低分辨率的情况)

一 问题

在不同分辨率下,页面布局存在不同程度的差异,特别是页面上的表单控件,其宽度默认是固定值“width:150px”,当分辨率较高时,表格中的空白显得过多,页面布局显得很不协调,在宽屏显示器上尤为明显。

二 解决办法

方法1. 为不同分辨率单独做样式文件,在页面头部用js判断分辨率后动态加载定义好的样式文件。样式文件命名格式如:forms[_屏幕宽度].css,样式文件中只需重新定义文本框和下拉框的宽度即可。

在包含的头文件headr.inc中加入js代码:

if(screen.width >1024){

document.write('<link rel="stylesheet" type="text/css" href="${path}/nrmus/etc/css/forms_'+ screen.width +'.css">')

}

forms_1280.css文件内容:

/* 分辨率宽度为1280的时候,文本框和下拉框的宽度属性(width)单独定义

* 参考计算方法为:(分辨率宽度-174)/4 * 0.7

* 左侧菜单栏宽度为174px;右侧页面表格是4列;控件宽度为单元格的70%

* (1280-174)/4*0.7 = 193

*/

input.text

{

background:#FFFFFF

border:1px solid #B5B8C8

padding:3px 3px

height:22px

line-height:18px

vertical-align:middle

padding-bottom:0pt

padding-top:2px

width: 193px

color: #333

}

select.select{

width: 193px

}

优点:实现很简单,代码量少;并且可针对不同分辨率做更细粒度的页面控制。

缺点:无明显缺点。

方法2 将整个页面的宽度设置为固定值,并使其居中显示。

优点:可以很大程度的消除不同分辨率下的显示差异。

缺点:分辨率宽度大于这个固定值的时候,页面两边会出现空白。

方法3 用js判断分辨率,修改body的zoom属性(IE特性),即可实现对整个页面进行缩放,类似IE8或其它浏览器提供的缩放功能。

优点:实现简单,页面能进行缩放。

缺点:缩放是宽度和高度的等比缩放,高分辨率下字体、图片看起来会变小,问题解决的不彻底。

三 总结

推荐方法1。页面布局的变化和分辨率的宽度有密切关系,和高度关系不大;常用的分辨率宽度也就几种,做几个简单的css文件即可。

你是想要个点击后d出个固定大小的窗口吗?

【1、最基本的d出窗口代码】

<SCRIPT LANGUAGE="javascript">

<!--

window.open ('page.html')

-->

</SCRIPT>

因为这是一段javascripts代码,所以它们应该放在<SCRIPT LANGUAGE="javascript">标签和</script>之间。<!-- 和 -->是对一些版本低的浏览器起作用,在这些老浏览器中不会将标签中的代码作为文本显示出来。要养成这个好习惯啊。window.open ('page.html') 用于控制d出新的窗口page.html,如果page.html不与主窗口在同一路径下,前面应写明路径,绝对路径(http://)和相对路径(../)均可。用单引号和双引号都可以,只是不要混用。这一段代码可以加入HTML的任意位置,<head>和</head>之间可以,<body>间</body>也可以,越前越早执行,尤其是页面代码长,又想使页面早点d出就尽量往前放。

【2、经过设置后的d出窗口】

下面再说一说d出窗口的设置。只要再往上面的代码中加一点东西就可以了。我们来定制这个d出的窗口的外观,尺寸大小,d出的位置以适应该页面的具体情况。

<SCRIPT LANGUAGE="javascript">

<!--

window.open ('page.html', 'newwindow', 'height=100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=n o, status=no') //这句要写成一行

-->

</SCRIPT>

参数解释:

<SCRIPT LANGUAGE="javascript">js脚本开始;

window.open d出新窗口的命令;

'page.html' d出窗口的文件名;

'newwindow' d出窗口的名字(不是文件名),非必须,可用空''代替;

height=100 窗口高度;

width=400 窗口宽度;

top=0 窗口距离屏幕上方的象素值;

left=0 窗口距离屏幕左侧的象素值;

toolbar=no 是否显示工具栏,yes为显示;

menubar,scrollbars 表示菜单栏和滚动栏。

resizable=no 是否允许改变窗口大小,yes为允许;

location=no 是否显示地址栏,yes为允许;

status=no 是否显示状态栏内的信息(通常是文件已经打开),yes为允许;

</SCRIPT>js脚本结束

【3、用函数控制d出窗口】

下面是一个完整的代码。

<html>

<head>

<script LANGUAGE="JavaScript">

<!--

function openwin() {

window.open ("page.html", "newwindow", "height=100, width=400, toolbar =no, menubar=no, scrollbars=no, resizable=no, location=no, status=no") //写成一行

}

//-->

</script>

</head>

<body onload="openwin()">

任意的页面内容...

</body>

</html>

这里定义了一个函数openwin(),函数内容就是打开一个窗口。在调用它之前没有任何用途。怎么调用呢?

方法一:<body onload="openwin()">浏览器读页面时d出窗口;

方法二:<body onunload="openwin()">浏览器离开页面时d出窗口;

方法三:用一个连接调用:

<a href="#" onclick="openwin()">打开一个窗口</a>

注意:使用的“#”是虚连接。

方法四:用一个按钮调用:

<input type="button" onclick="openwin()" value="打开窗口">

【4、同时d出2个窗口】

对源代码稍微改动一下:

<script LANGUAGE="JavaScript">

<!--

function openwin() {

window.open ("page.html", "newwindow", "height=100, width=100, top=0, left=0,toolbar=no, menubar=no, scrollbars=no, resizable=no, location=n o, status=no")//写成一行

window.open ("page2.html", "newwindow2", "height=100, width=100, top=1 00, left=100,toolbar=no, menubar=no, scrollbars=no, resizable=no, loca tion=no, status=no")//写成一行

}

//-->

</script>

为避免d出的2个窗口覆盖,用top和left控制一下d出的位置不要相互覆盖即可 。最后用上面说过的四种方法调用即可。

注意:2个窗口的name(newwindows和newwindow2)不要相同,或者干脆全部为空。

【5、主窗口打开文件1.htm,同时d出小窗口page.html】

如下代码加入主窗口<head>区:

<script language="javascript">

<!--

function openwin() {

window.open("page.html","","width=200,height=200")

}

//-->

</script>

加入<body>区:

<a href="1.htm" onclick="openwin()">open</a>即可。

【6、d出的窗口之定时关闭控制】

下面我们再对d出的窗口进行一些控制,效果就更好了。如果我们再将一小段 代码加入d出的页面(注意是加入page.html的HTML中,不是主页面中),让它10秒后自动关闭是不是更酷了?

首先,将如下代码加入page.html文件的<head>区:

<script language="JavaScript">

function closeit()

{

setTimeout("self.close()",10000) //毫秒

}

</script>

然后�儆?ltbody onload="closeit()">这一句话代替page.html中原有的<BODY>这一句就可以了。(这一句话千万不要忘记写啊!这一句的作用是调用关闭窗口的代码,10秒钟后就自行关闭该窗口。)

【7、在d出窗口中加上一个关闭按钮】

<FORM>

<INPUT TYPE='BUTTON' VALUE='关闭' onClick='window.close()'>

</FORM>

呵呵,现在更加完美了!

【8、内包含的d出窗口-一个页面两个窗口】

上面的例子都包含两个窗口,一个是主窗口,另一个是d出的小窗口。通过下面的例子,你可以在一个页面内完成上面的效果。

<html>

<head>

<SCRIPT LANGUAGE="JavaScript">

function openwin()

{

OpenWindow=window.open("", "newwin", "height=250, width=250,toolbar=no ,scrollbars="+scroll+",menubar=no")

//写成一行

OpenWindow.document.write("<TITLE>例子</TITLE>")

OpenWindow.document.write("<BODY BGCOLOR=#ffffff>")

OpenWindow.document.write("<h1>Hello!</h1>")

OpenWindow.document.write("New window opened!")

OpenWindow.document.write("</BODY>")

OpenWindow.document.write("</HTML>")

OpenWindow.document.close()

}

</SCRIPT>

</head>

<body>

<a href="#" onclick="openwin()">打开一个窗口</a>

<input type="button" onclick="openwin()" value="打开窗口">

</body>

</html>

看看OpenWindow.document.write()里面的代码不就是标准的HTML吗?只要按照格式写更多的行即可。千万注意多一个标签或少一个标签就会出现错误。记得用 OpenWindow.document.close()结束啊。

【9、终极应用--d出的窗口之Cookie控制】

回想一下,上面的d出窗口虽然酷,但是有一点小毛病,比如你将上面的脚本放在一个需要频繁经过的页面里(例如首页),那么每次刷新这个页面,窗口都会d出一次,我们使用cookie来控制一下就可以了。

首先,将如下代码加入主页面HTML的<HEAD>区:

<script>

function openwin(){

window.open("page.html","","width=200,height=200")

}

function get_cookie(Name) {

var search = Name + "="

var returnvalue = ""

if (document.cookie.length >0) {

offset = document.cookie.indexOf(search)

if (offset != -1) {

offset += search.length

end = document.cookie.indexOf("", offset)

if (end == -1)

end = document.cookie.length

returnvalue=unescape(document.cookie.substring(offset, end))

}

}

return returnvalue

}

function loadpopup(){

if (get_cookie('popped')==''){

openwin()

document.cookie="popped=yes"

}

}

</script>

然后,用<body onload="loadpopup()">(注意不是openwin而是loadpop啊!)替换主页面中原有的<BODY>这一句即可。你可以试着刷新一下这个页面或重新进入该页面,窗口再也不会d出了。真正的Pop-Only-Once!

用table的话,宽度采用百分比,比如width=“98%”,表格居中align=“center”就可以了。

用div的话,宽度仍然采用百分比,样式margin: 0 auto就可以自动居中了。

采用百分比能够自动适应窗口,但不会小于页面元素中最宽的固定宽度。

一般页面宽度可以设置为1002px。1024的分辨率下刚好满屏,不出现横向滚动条。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/7452977.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-05
下一篇2023-04-05

发表评论

登录后才能评论

评论列表(0条)

    保存