3-2 编程问题,请问我这样设置崩坍处理不了怎么解决?

3-2 编程问题,请问我这样设置崩坍处理不了怎么解决?

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

        <style type="text/css">

            

            .content{width:100%;

                height:auto;

                border:1px solid #ccc;

                padding:10px;

            }

            .part1{

             float:left; 

             clear: both;

            }

            .test1,.test2,.test3{border:1px solid #ccc;

                width:250px;

                height:auto;

                float:left;

            }

        </style>

</head>

<body>   

         <div class="content">

             <div class="part1">

                 <div class="test1">

                     <img src="http://img1.sycdn.imooc.com/climg//590fe9770001e63102400135.jpg">

                     <p>欢迎来到慕课网学习新知识!</p>

                 </div>

                 <div class="test2">

                     <img src="http://img1.sycdn.imooc.com/climg//590fe97d00011bda02400135.jpg">

                     <p>欢迎来到慕课网学习新知识!</p>

                 </div>

                 <div class="test3">

                     <img src="http://img1.sycdn.imooc.com/climg//590fe982000150ba02400135.jpg">

                     <p>欢迎来到慕课网学习新知识!</p>

                 </div>

                 

             </div>

             

         </div>

</body>

</html>


正在回答

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

4回答

什么part1为父元素,你发的代码里,为什么content的高度还是坍陷的呢?是因为他的子元素part1使用了浮动,浮动脱离了文本流,不在文本流中占据空间了,而content的高度是自适应的,也就是说他是靠里面的内容来撑开高度。所以他的高度由于内部的浮动导致了坍陷。

解决的方法:第一种给父级设定固定高度或者你也可以设置个最小的高度(不建议)

解决方法:第二种可以在content的最后添加一个空的div div的css样式里使用clear:both(不建议)

解决方法:第三中可以在content的最后添加一个空标签<br> 设置他的自身自带属性clear ='all';(不建议)

解决方法:用after方法,就是上面的那个,意思是在父级的最后添加一个块级元素,并且该块级块级元素设置了清除浮动(建议)

解决方法:给父级content添加overflow:hidden来触发bfc

其实你在part1中设置了清除浮动为什么还是没有解决content的高度坍陷呢?

清除浮动他清除的是他前面的浮动,是在同一容器中的在使用了浮动的元素,后面的元素使用清除浮动,这样的话,使用了清除浮动的元素,就不会因为前面元素使用了浮动,脱离文本流,而跑到前面去,也就不会会导致该元素被浮动元素所遮挡,因为浮动元素的层级会相对高一点,还有就是浮动是为了做文字环绕效果而产生的,所以如果该元素内部的内容为纯文本内容的话,他的空间虽然会被遮挡,当时里面的文字会自动的围绕浮动元素,不会被他盖住

希望可以帮助到你

  • 慕勒7132189 提问者 #1
    首先很感谢你这么详细的解答,还有请问一下就是我这样设置,part1不应该是test1-3的父元素吗?我之前测试过在part1是没变化的,content就能正常显示了。
    2017-10-04 22:42:16
  • 慕勒7132189 提问者 #2
    非常感谢!
    2017-10-07 08:59:32
小丸子爱吃菜 2017-10-06 13:42:56

给父元素content设置overflow:hidden就可以了。

给它自己本事身设置clear是不起作用的。

祝学习愉快!


提问者 慕勒7132189 2017-10-04 16:01:03

我设置了<part1>为父元素为什么不起效果,在<content>设置就可以?那这个怎么理解?这个相对文本框吗?还是什么?

qq_天天_66 2017-10-04 15:24:09

解决高度坍陷最常用的方法是用伪元素after

::after{
    content:'';
    display:block;
    clear:both
}


  • 提问者 慕勒7132189 #1
    这个好像暂时还没学过吧,
    2017-10-04 15:51:57
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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