开发者社区> 问答> 正文

css布局问题:在IE7下显示正常,chrome,firefox,IE10下不正常?

<!DOCTYPE html>
<html>
<head>
<meta charset="GBK"/>
<title></title>
<style>
body, ul, li, div {
padding: 0;
margin: 0;
}

ul {
list-style: none;
}

#center {
margin: 20px auto;
width: 600px;
height: 600px;
}

#nav {
float: left;
width: 100px;
height: 600px;
}

#nav li {
width: 100px;
font-size: 24px;
line-height: 100px;
border:1px solid black;
}

#center div {
position: relative;
right:0;
width: 500px;
height: 500px;
text-align:center;
font-size: 30px;
line-height: 500px;
}

#d1 {
top: 0;
background: #ff0000;
}

#d2 {
top: 500px;
display:none;
background: #0000ff;
}

#d3 {
top: 500px;
display:none;
background: #00ffff;
}

#d4 {
top: 500px;
display:none;
background: #00ff00;
}

</style>
</head>
<body>


<div id="center">
<ul id="nav">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
<div id="d1">div1</div>
<div id="d2">div2</div>
<div id="d3">div3</div>
<div id="d4">div4</div>
</div>


<script></script>
</body>
</html>

screenshot

展开
收起
a123456678 2016-03-25 17:26:36 2080 0
1 条回答
写回答
取消 提交回答
  • 我来分析下:
    首先,题主对ul施展了float:left魔法使之脱离了正常文档流漂浮在想要的位置,这使得div元素贴靠在父元素的左边界...不过,这些都不重要
    重点是这个

      #center div {
        position: relative;

    查阅资料得知,relative 生成相对定位的元素,相对于其正常位置进行定位。注意,是正常位置,这与position的生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位是不同的。然后,题主华丽丽的给了一个right: 0;意思就是,你给我乖乖的呆在原地不要动,所以,DIV元素还是紧紧的贴着父元素的左边界,没有向右移动一步(想不通的话,可以给right赋值试试看)。
    至于IE7的显示问题,我们知道,IE6/7中的表现,是不能称之为正常的,所以也不能拿来当做标准...只能说,IE7误打误撞的解析方式刚好温暖了题主受伤的心灵....

    2019-07-17 19:14:47
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
零基础CSS入门教程 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载