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

为什么right这里在css设置中float:right就不能实现自适应了,像我这样的不知道哪里错了

<!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:grey;height:200px;}

.main{height:600px;background:red;}

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

.right{float:right;background:green;height:600px;margin-left:300px;width:100%;}

.foot{height:200px;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 回答

.right不要去设置浮动了;用margin去自适应;

你的代码:

.right{float:right;background:green;height:600px;margin-left:300px;width:100%;}

修改后的代码:

.right{
    margin:0 0 0 210px;
    height:600px;
    background-color:#546aaa;
}

效果图:

http://img1.sycdn.imooc.com//56de7ed90001d14a18740927.jpg

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

错了 你把.right中float浮动改为left 就可以了!

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

余生4 提问者

不能right吗?为什么
2016-03-05 回复 有任何疑惑可以回复我~
#2

编号20159527 回复 余生4 提问者

因为.left定义为了绝对定位 他脱离了标准文本流,不会影响后面的元素。。。你也可以在前面的div中假如一个width的具体值试试 我不确定
2016-03-05 回复 有任何疑惑可以回复我~
#3

qq_苔上雪_04205930 回复 余生4 提问者

这个问题 我也发现了,你弄懂了吗,为什么不能用float:right,
2016-11-07 回复 有任何疑惑可以回复我~
#4

emily973 回复 qq_苔上雪_04205930

楼上就是正解!因为.left定义为了绝对定位 他脱离了标准文本流,所以当.right的width设为100%就占据了整个层,而.left只是覆盖在它上面。要float:right也可以,但是要设置一个宽度值,但是就不能自适应了。
2017-02-19 回复 有任何疑惑可以回复我~
查看1条回复

举报

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

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

进入课程

为什么right这里在css设置中float:right就不能实现自适应了,像我这样的不知道哪里错了

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