关于float 一些思考

关于float 一些思考

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title></title>
  <style type="text/css">
  *{margin:0;
      padding:0;
  }

     .red{
       width:510px;
       height:100px;
       background:red
   }
 img{float:left;}
  
  </style>
</head>
<body>
  
<img src="http://img1.sycdn.imooc.com/climg//58c0f808000129a303600215.jpg" />
      <div class="red">sagasgasgagasgahfdgddsfagasg</div>
      
     
      

</body>
</html>

这个情况!我理解是浮动元素会被块级元素忽略的元素(就像图中的div 不知道左边有个float元素,依然会铺满整个宽度,div里面的内容为啥跑到下面来了),就是老师说脱离正常文档流,漂浮在标准流智商。但是行内元素知道浮动元素的边界在哪里,会给它让位置。

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title></title>
  <style type="text/css">
  *{margin:0;
      padding:0;
  }

     .red{
       width:510px;
       height:100px;
       background:red;
       float:left;
   }

  
  </style>
</head>
<body>
  
<img src="http://img1.sycdn.imooc.com/climg//58c0f808000129a303600215.jpg" />
      <div class="red">sagasgasgagasgahfdgddsfagasg</div>
      
     
      

</body>
</html>


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

5回答
小于飞飞 2018-05-27 13:47:19
  1. div 块元素,独占一行,span 行元素。注意虽然 span设置了 padding值,但是上下不起作用。可以看到文字在黑色下方。http://img1.sycdn.imooc.com//climg/5b0a44bb00019a5907850452.jpg

  2. 调整 span 的padding ,还是在黑色下方 

http://img1.sycdn.imooc.com//climg/5b0a44df00014cb708180369.jpg

3. 同时多加几个,上下不起作用,重叠。

http://img1.sycdn.imooc.com//climg/5b0a460a0001e00007300489.jpg

http://img1.sycdn.imooc.com//climg/5b0a45e10001de6e07140319.jpg

这因为,span上下,padding和margin 不起作用。希望解答你的疑惑,动手实践,加油!


提问者 破晓小哥哥 2018-05-26 11:50:10
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body style="margin: 0;padding: 0">


    <div style="width:70%; height:200px; background-color:black;color: white">
        513516313213131asfasfasfasfasgsagasgasfdasdasfassafasddkjashusahfksafsgfsfjg
    </div>
    <span style="background-color:red; width:50% ;padding: 200px">
       asgasgasasgasga
    </span>

</body>
</html>

请老师再分析下这个。。谢谢老师!!!!

  • 提问者 破晓小哥哥 #1
    span这个padding 也会覆盖div 中文字加背景
    2018-05-26 11:52:19
好帮手慕星星 2018-05-02 17:41:07

1、在没有设置浮动,没有给三个span设置padding值的情况下,显示如下:

http://img1.sycdn.imooc.com//climg/5ae9810e0001a1c006260095.jpg

因为span标签为内联元素(inline),不能设置宽高,所以设置的100px和300px并没有生效。

2、给span添加上padding值30px之后,显示如下:

http://img1.sycdn.imooc.com//climg/5ae981560001d80706710200.jpg

3、给左边添加左浮动,显示如下:

http://img1.sycdn.imooc.com//climg/5ae982460001b94606120168.jpg

浮动之后就自动变成了块状元素(block),可以设置宽高了,看起来就比没有浮动的大了一点点,浮动到了元素的最左边。右边两个没有浮动的就在右边剩余的地方居中显示。

3、给右边设置了右浮动之后,显示如下:

http://img1.sycdn.imooc.com//climg/5ae9834d000143f306660210.jpg

右边设置右浮动之后变成块状元素,宽度也就生效了,但是因为右边的元素太宽了剩余的位置不够中间无浮动占据,也就是这个位置:

http://img1.sycdn.imooc.com//climg/5ae9874d0001cbf106370197.jpg

所以会把右浮动的给挤下来,只要文字有地方就可以了,padding的空间时不用的。,你可以把右侧的宽度缩小一点,比如100px,就会显示如下:

http://img1.sycdn.imooc.com//climg/5ae9879b00018fb106490183.jpg

这样就好理解了。



  • 提问者 破晓小哥哥 #1
    行内 元素设置 padding 四个方向都可以。 margin只有左右 对吗? 右边设置右浮动之后变成块状元素,宽度也就生效了,但是因为右边的元素太宽了剩余的位置不够中间无浮动占据,也就是这个位置: ,就是这里 为什么无浮动的span 会覆盖右浮动的span
    2018-05-08 21:52:57
  • 好帮手慕星星 回复 提问者 破晓小哥哥 #2
    行内元素设置 padding 四个方向都可以。margin只有左右值生效是对的。无浮动的span 会覆盖右浮动的span 是因为span是一个行内元素,只有中间的文字占据空间,padding值是不占据空间的,所以会覆盖,你可以给中间的无浮动span设置成行内块状元素(inline-block),这样就不会覆盖了,自己测试下。
    2018-05-09 09:42:25
  • 提问者 破晓小哥哥 回复 好帮手慕星星 #3
    我觉得加了float 浮动之后更 像 inline-block行内块状元素
    2018-05-13 15:36:48
提问者 破晓小哥哥 2018-05-02 17:01:54
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<div style="width:600px; height:600px; background-color: #d03642;margin:50px auto;text-align: center">
    <!--左浮动-->
    <span style="color:#fff;font-size: 30px; height:50px;padding:30px;width: 100px; background-color: lightseagreen;float: left">左浮动</span>
    <!--未设置浮动(父级设置了text-align:center)-->
    <span style="color:#fff;font-size: 30px; height:50px;padding:30px;width: 100px; background-color:green">无浮动</span>
    <!--右浮动-->
    <span style="color:#fff;font-size: 30px; height:50px;padding:30px;width: 300px; background-color: lightseagreen;float: right;">右浮动</span>
</div>
</body>
</html>

跪求 老师 分析下 这个效果!!!!!!!

  • 浮动元素有时候也会被同级元素覆盖的 . 设置右浮动的元素虽然脱离了文档流 , 在同一行上由于宽度太大 没有位置 会自动移到下一行
    2018-05-25 15:22:59
好帮手慕星星 2018-05-02 16:37:54

第一个代码,文字下来了,是因为图片脱离文档流覆盖住了一部分红色的div,但是文字是不会被遮盖住了,会显示出来。

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师