为了账号安全,请及时绑定邮箱和手机立即绑定

为什么main加position:relative和不加会有很大的差别

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>混合布局编程挑战</title>
<style type="text/css">
body{ margin:0; padding:0; font-size:30px; color:#fff}
.top{width:100%; height:100px; background:grey; }
.main{width:100%; height:600px; background:red; position:relative;}
.left{width:200px; height:600px; top:0; left:0; position:absolute; float:left; background:blue;}
.right{width:100%; height:600px; margin:0 0 0 210px;  background:green;}
.foot{width:100%; height:100px;  background:orange;}
</style>

</head>

<body>
<div class="top">top</div>
<div class="main">
    <div class="right">right</div>
    <div class="left">left</div>
</div>
<div class="foot">foot</div>

</body>
</html>


正在回答

2 回答

加了相对定位啊,效果当然会不一样了......................效果恰好一样而已

0 回复 有任何疑惑可以回复我~
#1

慕斯卡9626126 提问者

main的相对定位在这里具体什么作用啊
2015-08-04 回复 有任何疑惑可以回复我~
#2

六月时光 回复 慕斯卡9626126 提问者

200就能看到效果了。怎么说呢,相对定位的在哪里的作用都是只有一个的,就是拿来布局定位的,移动相应的块状元素。上面你说的实现相同效果是有可能的,因为他们都是拿来布局的,但如果你把那个.left{top:100px}改了就效果不同的。而且你代码里left里面用了绝对定位的话,就不要用左浮动了,因为绝对定位是脱离文档流的,用左浮动是没有效果的。
2015-08-04 回复 有任何疑惑可以回复我~
#3

六月时光 回复 慕斯卡9626126 提问者

相对定位是相对元素本身会出现的地方来定位,移动后,原来位置还是会占有位置,并没有脱离普通文档流,绝对定位是相对浏览器的,是会脱离文档流的。http://www.w3school.com.cn/css/css_positioning_relative.asp这里面有相对定位的详细讲解,http://www.w3school.com.cn/css/css_positioning_absolute.asp这里有绝对定位的详解。 定位和浮动都是拿来布局的,是可以实现相同效果的,但什么时候用哪个是有区别的,这个要看你自己了
2015-08-04 回复 有任何疑惑可以回复我~
#4

慕斯卡9626126 提问者 回复 六月时光

太赞了,谢谢
2015-08-04 回复 有任何疑惑可以回复我~
#5

六月时光 回复 慕斯卡9626126 提问者

这里用的是绝对定位和相对定位的组合用法,我记得你学的那个课程是有说到的。父元素用了相对定位,子元素用绝对定位的话,子元素绝对定位的参考对象就不是浏览器了,而是它的父元素了。这里这个相对定位的作用不是调整父元素的位置,而是改变子元素绝对定位的参考对象。如果没有这个的话,left标签就会覆盖top标签,因为没有这个,它的绝对定位是浏览器,是从浏览器的左上角开始的。参考对象改成父元素的话,就会从父元素main的左上角开始,这样的话,就不会覆盖top标签了。刚刚在忙,都没有仔细看你的代码
2015-08-04 回复 有任何疑惑可以回复我~
查看2条回复
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>混合布局编程挑战</title>
<style type="text/css">
body{ margin:0; padding:0; font-size:30px; color:#fff}
.top{width:100%; height:100px; background:grey; }
.main{width:100%; height:600px; background:red; }
.left{width:200px; height:600px; top:100px; left:0; position:absolute; float:left; background:blue;}
.right{width:100%; height:600px; margin:0 0 0 210px;  background:green;}
.foot{width:100%; height:100px;  background:orange;}
</style>

</head>

<body>
<div class="top">top</div>
<div class="main">
    <div class="right">right</div>
    <div class="left">left</div>
</div>
<div class="foot">foot</div>

</body>
</html>


0 回复 有任何疑惑可以回复我~
#1

慕斯卡9626126 提问者

.left{top:100px;}竟然和.main{position:relative;}实现了相同的效果
2015-08-02 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
如何用CSS进行网页布局
  • 参与学习       209624    人
  • 解答问题       1153    个

用最简洁的案例教你布局的那些知识,这是前端工程师基本技能

进入课程

为什么main加position:relative和不加会有很大的差别

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信