手记

实用javascript解决float(浮动)导致margin:0 auto自动居中失效的问题

先把代码贴出来(同时实现了改变浏览器大小<div>能响应上下左右居中的效果):

css部分:

*{

margin: 0;

padding: 0;

}

#content{

width: 100px;

height: 100px;

background: red;

margin: 0 auto;

float: left;

}

html部分:

<div id="content"></div>


js部分:

var content = document.getElementById("content");

content.style.position="relative";

//document.documentElement 返回的是文档的根结点

content.style.left=(document.documentElement.clientWidth - content.offsetWidth)/2+"px";

content.style.top=(document.documentElement.clientHeight - content.offsetHeight)/2+"px";


//onresize事件会在窗口或框架被调整大小时发生

window.onresize=function(){

content.style.left=(document.documentElement.clientWidth - content.offsetWidth)/2+"px";

content.style.top=(document.documentElement.clientHeight - content.offsetHeight)/2+"px";

}


在做响应式开发的时候发现<div>在被float以后div脱离了文档流无法使用margin:0 auto来实现左右居中,于是使用了javascript来进行解决这个问题。


1人推荐
随时随地看视频
慕课网APP