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

关于footer的CSS样式中的margin外边距问题。第17行里的margin它的上边距不应该设为700px才能与main版块无缝对接吗?我的理解是:head-height:100px+main-height:600px,为什么中间有100px的间距?必须设为600px才能达到无缝对接。

<!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>
body{ margin:0; padding:0; font-size:30px; font-weight:bold}
div{ text-align:center; line-height:50px}
.top{ height:100px;background:#9CF}
.head,.main{ width:960px;margin:0 auto;}
.head{ height:100px; background:#F90}
.left{ width:220px; height:600px; background:#ccc;float:left;}
.right{ width:740px; height:600px;background:#FCC; float:right}
.r_sub_left{ width:540px; height:600px; background:#9C3; float:left}
.r_sub_right{ width:200px; height:600px; background:#9FC;float: right;}
.footer{ height:50px; background:#9F9;margin:700px 0 0 0;}
</style>
</head>

<body>
<div class="top">
    <div class="head">head</div>
</div>
<div class="main">
    <div class="left">left</div>
    <div class="right">
    	<div class="r_sub_left">sub_left
        </div>
        <div class=" r_sub_right">sub_right
        </div>
    </div>
</div>
<div class="footer">footer</div>
</body>
</html>


正在回答

3 回答

块级元素的垂直相邻外边距会合并,而行内元素实际上不占上下外边距。行内元素的的左右外边距不会合并。而

top head里的元素属于行内元素不占据外边距,而main里面是列元素要占据600px,所以footer的上边距=

head-height:0px+main-height:600px


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

slumdog 提问者

嗯嗯,看了你的回答有所理解了,非常感谢。
2017-04-09 回复 有任何疑惑可以回复我~

float元素是浮在空中的,并不影响块状元素在地面的布局

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

我的个人意见:首先,我觉得上面那个朋友说的不是很对,top head其实是块级元素,并不是行级元素。它的高度一直都在文本流中,也就是说100px肯定在的。然后我在回答你的问题:为什么是600px而不是700px,首先main并没有设置高度,它的高度来自于自适应,被内部的两个元素撑大的,内部两个元素是浮动的,所以它们其实不在文本流中占空间。我的意思是说:main的高度在文本流中不占位置,即为 0px,然后margin是指和相邻容器的距离,所以你的footer 的值实际上是从top head开始往下算的,因为你的目的是不留白,所以你的margin值和main的显示高度要一致,main的撑大高度是600px,所以你的margin值应该写600px正好合适。你可以自己将你的数字改为0px用盒子看一下。希望能帮到你

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

小白0913

看懂了,谢谢!
2017-07-11 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

关于footer的CSS样式中的margin外边距问题。第17行里的margin它的上边距不应该设为700px才能与main版块无缝对接吗?我的理解是:head-height:100px+main-height:600px,为什么中间有100px的间距?必须设为600px才能达到无缝对接。

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