原文:http://www.jb51.net/article/21831.htm

当我们让div居中时候,一般有两种方法,一种是固定左右宽度,也就是使用像素绝对定位;另一种是用百分比来相对定位,在这种两种方式下,绝对定位是不能让div随着屏幕而自适应的,而用百分比就可以,但是,是用百分比就会有一个新的问题,如果我们的页面中有这么一句 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
的时候,top的百分比将会失效,而删除这句话的时候,一切正常,都是不知道这句标准的声明为什么会带来如此的不便 
针对这个问题,我使用的下面的方法来实现div的自适应 
首先 我用的是绝对定位的方式,先设置好div的左右上下边距。在body中添加两个事件, 
<body bgcolor="#666666" onresize="test()" onload="getwah()"> 
getwah()用来获取屏幕的大小和div的各个边距,并计算出它们的差

代码如下:
var height,width,width_cha1,width_cha2; 
function getwah() 

if(document.documentElement && document.documentElement.clientWidth) 
{d_width = document.documentElement.clientWidth;} 
else if(document.body) 
{d_width = document.body.clientWidth;} 
width=parseInt(d_width); 
width_cha1=width-parseInt(document.getElementById("backi").style.left) 
width_cha2=width-parseInt(document.getElementById("massage_box").style.left) 

当屏幕大小变化的时候(onresize)触发test()函数,该函数就是用户根据之前获得屏幕与边距的差值重新设置div的边距,这样就可以实现党屏幕的大小改变后,div的边距也会相应地改变,从而实现div可以随着屏幕大小的改变而自适应

代码如下:
function test() 

if(document.documentElement && document.documentElement.clientWidth) 
{d_width = document.documentElement.clientWidth;} 
else if(document.body) 
{d_width = document.body.clientWidth;} 
var now_left1=parseInt(d_width )-width_cha1; 
var now_left2=parseInt(d_width )-width_cha2; 
document.getElementById("backi").style.left=now_left1 
document.getElementById("massage_box").style.left=now_left2 
}

最新文章

  1. Lua的string和string库总结
  2. Bash中各种以$开头的特殊变量的含义
  3. 解读(function($){...})(jQuery)
  4. 使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(八)-- 多环境开发
  5. C#获取汉字拼音
  6. ERROR&lt;53761&gt; - Plugins - conn=-1 op=-1 msgId=-1 - Connection Bind through PTA failed (91). Retrying...
  7. POJ2584 T-Shirt Gumbo【二分图多重匹配】
  8. php 数组对象之间的转换
  9. centos7配置consul
  10. MYSQL列表中常用语句代码块
  11. PEP8 规范
  12. 《转》vue 常用ui组件
  13. 第二次SDN上机作业
  14. JavaScript 中的 Map
  15. Scrum立会报告+燃尽图(Final阶段第二次)
  16. python之函数用法id(),了解即可
  17. Sql Server中使用存储过程来实现一些时间差的改变
  18. python学习笔记(六)— 模块
  19. Web大文件(夹)上传(断点续传)控件发布-Xproer.HttpUploader6
  20. sql查询字段中的值长度最大的记录

热门文章

  1. 用lua nginx module搭建一个二维码
  2. android-studio于java相关
  3. Linux 常用文件管理命令
  4. Java Web -- Servlet(1) 必备知识
  5. hdu 1078 FatMouse and Cheese【dp】
  6. 发现保存GIF格式后相素发生变化咋办
  7. 【ask】vmware(NAT)中的linux突然无法访问互联网网址,但是直接用ip可以访问。
  8. How to convert BigDecimal to Double in spring-data-mongodb framework
  9. 《从零开始学Swift》学习笔记(Day 36)——静态方法
  10. IIPP迷你项目(四)&quot;Pong&quot;