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

求大神给个这章有批注的答案代码

同学代码和评论那里太多了答案了 不知道那个是对的o(╯□╰)o  而且还看不懂绝对定位和相对定位那里,为什么要填

正在回答

6 回答

<!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{;height:80px;background:#ccc;}


/*设置中间栏CSS样式,给.main块元素添加相对定位属性,由于没设置相对位置参数,其位置就不变动,.main块元素就处在.top块元素下方,即中间栏。添加相对定位属性的目的是使其子元素.left用绝对定位后是相对.main块来移动的*/

.main{height:600px; background:#f00; position:relative;}


/*.left块绝对定位,相对.main移动,在left:0; top:0的地方,即左边。定宽定高。由于.right先加载,且为块元素,会占满.main一行,如果不指定位置,则相当于不改变.left原先的位置,就会跑到.right所处行的下面去。*/

.left{width:200px;height:600px;background:#00f; position:absolute; left:0; top:0;}


/*给.right设置左边距210px,为.left预留位置和缝隙,由于未设定宽度,宽度自适应*/

.right{height:600px;background:#0da; margin-left:210px}

.foot{height:50px;background:#f31;}

</style>


</head>


<body>

<div class="top">top</div>

<div class="main">

<!--先加载right-->

    <div class="right">right</div>

    <!--后加载left-->

    <div class="left">left</div>

</div>

<div class="foot">foot</div>


</body>

</html>


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

小时候很捣蛋 提问者

题目给的是先加载right再加载left,那能不能先加载left再加载right呢?如果可以的话需要如何去修改?麻烦亲解释一下~
2016-03-30 回复 有任何疑惑可以回复我~
#2

Csunnnnn 回复 小时候很捣蛋 提问者

可以的,加载的顺序又语句顺序决定。浏览器会从上之下逐行读取代码显示到浏览器中,所以想要改变元素加载顺序,只需要相应调整对应元素在<body>标签内的先后顺序即可。即将 <div class="left">left</div>放置于<div class="right">right</div>前。 但值得注意的是改变加载顺序,有可能会影响到内容的板式布局。这一点要特别小心。 样例见 http://www.imooc.com/qadetail/125973 中采纳的回答。
2016-03-30 回复 有任何疑惑可以回复我~
#3

小时候很捣蛋 提问者 回复 Csunnnnn

好的~谢谢..
2016-03-31 回复 有任何疑惑可以回复我~
#4

qq_经6吴素文_03163701 回复 Csunnnnn

请问不能用float来实现这个效果吗
2016-04-20 回复 有任何疑惑可以回复我~
#5

Csunnnnn 回复 qq_经6吴素文_03163701

float只能在没有被占据的空间里浮动,已被占据的空间里是放不下float元素的。
2016-04-20 回复 有任何疑惑可以回复我~
查看2条回复
0 回复 有任何疑惑可以回复我~

这里为什么不能用浮动那,看你们都是用定位来实现,有大神能解释下吗

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

<style type="text/css">

body{ margin:0; padding:0; font-size:30px; color:#fff}

.top{height:100px; background:#ccc;} //宽度自适应时不需要设定宽度

.main{height:500px; background:red; position:relative;} //main中包含一左一右两个盒子,子级盒子需绝对定                                                                                                位,所以父级盒子要相对使用定位

.left{width:200px; height:500px; background:blue; position:absolute; top:0; left:0;}//左盒子上左紧贴main盒子

.right{height:500px; background:green; margin:0 0 0 220px;}margin四个值分别为上右下左,左盒子宽200px,多出20px是为了左右两个盒子的“图中红色”距离

.foot{height:50px; background:yellow;}

</style>

ps:颜色没有完全按照它的那个设置,但是整体效果出来了。希望可以帮到你。

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

使用 绝对定位position:absolute;需要 父级元素 相对定位position:relative;使用,否则绝对定位相对最外侧的定位元素定位(没有则相对body)

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

<!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{background:#999; height:200px;}

.main{background:red;position:relative;}

.left{display:block;width:200px;height:500px;background:blue; position:absolute;left:0;top:0px;}

.right{display:block; height:500px;margin:0 0 0 210px; background:green;}

.foot{background:orange;height:100px;}

</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

qincai

div本是块级元素,为什么还要写display:block;
2016-03-29 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

求大神给个这章有批注的答案代码

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