页面清除浮动的五种方法

简介: 页面清除浮动的五种方法

为什么要清除浮动?因为往往浮动后的子元素因为脱离了标准流,不能自动撑起父元素的高度,所以会对后续布局产生影响,对此清除浮动不如理解为清除浮动产生的影响更为合理。


例如:我们设置了两个盒子如图所示,粉色为父盒子,只有宽度没有高度,蓝色盒子有宽有高,粉色盒子的高由蓝盒子的高度撑开。




但是给蓝色的子盒子设置了左浮动后,脱离了标准流,无法再撑开粉盒子,可以看到粉盒子高度变成了0;





清除浮动有五种方法:

直接设置父元素的高度

额外标签法

单伪元素法

双伪元素法

overflow-hidden

一:直接设置父元素的高度

因为子元素设置了浮动产生的影响就是父元素的高度无法被子元素撑开,所以直接给父元素设置高度是一个非常简便的做法。但是这种方法也有缺点,就是父元素不再是被子元素撑开的,高度有了限制,如果子元素内容较多,则会溢出父元素


<style>

       .father{

           width: 600px;

           height: 500px;  //直接设置父元素的高度

           background-color: rgb(255, 152, 152);

       }

       .son{

           float: left;

           width: 300px;

           height: 500px;

           background-color: rgb(105, 133, 255);

       }

   </style>

</head>

<body>

   <div class='father'>

       <div class="son"></div>

   </div>

</body>


二:额外标签法

额外标签法即在父元素内容末尾添加一个块级元素,然后给该块级元素设置 clear:both;  缺点为会使代码内容添加很多不必要地标签,看起来较为混乱


<style>

       .father{

           width: 600px;

           background-color: rgb(255, 152, 152);

       }

       .son{

           float: left;

           width: 300px;

           height: 500px;

           background-color: rgb(105, 133, 255);

       }

       .clear{  //给添加的块级元素添加属性

           clear: both;

       }

   </style>

</head>

<body>

   <div class='father'>

       <div class="son"></div>

       <div class="clear"></div>  //在父元素内容末尾添加一个块级元素,多为div

   </div>

</body>


三:单伪元素法

该方法与添加额外标签相似,只不过是在父元素内容最后天添加了一个伪元素,给其 display 设置为块级元素,并设置必需的 content 属性 ,最后设置 clear:both;   此方法优点为不会让代码内容乱糟糟,不会出现多余的标签,使用较多 。


<style>

       .father{

           width: 600px;

           background-color: rgb(255, 152, 152);

       }

       .son{

           float: left;

           width: 300px;

           height: 500px;

           background-color: rgb(105, 133, 255);

       }

      .father::after{  //给父元素内容末尾添加了伪元素

          content: '';

          display: block;

          clear: both;

      }

   </style>

</head>

<body>

   <div class='father'>

       <div class="son"></div>

   </div>

</body>


为了避免一些较小众的浏览器也可以兼容此方法,往往会补充一些代码:作用为让网页看不到伪元素


.father::after{

          content: '.';

          display: block;

          clear: both;

          height: 0;

          visibility: hidden;

      }

四:双伪元素法:

此方法多用于清除盒子塌陷问题,另一个文章讲到过,也可以用于清除浮动,但是使用单伪元素更多


<style>

       .father{

           width: 600px;

           background-color: rgb(255, 152, 152);

       }

       .son{

           float: left;

           width: 300px;

           height: 500px;

           background-color: rgb(105, 133, 255);

       }

      .father::before,  //双伪元素

      .father::after{

          content: '';

          display: table;

      }

      .father::after{

          clear:both;

      }

   </style>

</head>

<body>

   <div class='father'>

       <div class="son"></div>

   </div>

</body>


五:overflow-hidden

直接给父元素设置 overflow-hidden 即可,十分方便;


<style>

       .father{

           overflow: hidden;  //直接给父元素设置 overflow:hidden 即可

           width: 600px;

           background-color: rgb(255, 152, 152);

       }

       .son{

           float: left;

           width: 300px;

           height: 500px;

           background-color: rgb(105, 133, 255);

       }

   </style>

</head>

<body>

   <div class='father'>

       <div class="son"></div>

   </div>

</body>


相关文章
|
15天前
|
前端开发
除了伪元素清除法,还有哪些方法可以解决浮动布局的高度塌陷问题
【10月更文挑战第27天】不同的方法适用于不同的场景和布局需求,在实际开发中,需要根据具体情况选择最合适的方法来解决浮动布局的高度塌陷问题。
|
15天前
|
前端开发 UED
在响应式布局中,如何避免 overflow 属性法导致的滚动条显示问题?
【10月更文挑战第27天】可以在响应式布局中有效地避免因`overflow`属性法导致的滚动条显示问题,提高页面的布局美观度和用户体验,使页面在不同的设备和屏幕尺寸下都能够呈现出良好的视觉效果和交互性能。
|
6月前
|
前端开发 容器
css样式元素的相对定位,绝对定位,固定定位等元素定位运用技巧详解
css样式元素的相对定位,绝对定位,固定定位等元素定位运用技巧详解
|
6月前
|
前端开发
CSS元素隐藏的多种方式:让你轻松实现页面布局
CSS元素隐藏的多种方式:让你轻松实现页面布局
|
前端开发
CSS中有哪些隐藏页面元素的方法?
CSS中有哪些隐藏页面元素的方法?
103 0
|
前端开发 容器
【清除浮动的 5 种方法】
【清除浮动的 5 种方法】
|
前端开发
Web前端学习:CSS基础-小终结【布局和文本常用样式、常用属性、外边距和内边距】
Web前端学习:CSS基础-小终结【布局和文本常用样式、常用属性、外边距和内边距】
139 0
Web前端学习:CSS基础-小终结【布局和文本常用样式、常用属性、外边距和内边距】
|
前端开发
CSS的三种布局机制 浮动 清除浮动
CSS的三种布局机制 浮动 清除浮动
179 0
CSS的三种布局机制 浮动 清除浮动
如何清除浮动的四种方法
清除浮动的四种方法
102 0