博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【CSS】【10】CSS盒子clear属性和高度
阅读量:6076 次
发布时间:2019-06-20

本文共 1324 字,大约阅读时间需要 4 分钟。

从《
【CSS】【9】CSS盒子的浮动
》知道,当盒子设置为浮动时,也意味着它从标准流脱离出来,后面在标准流的元素会占据原盒子所在的空间,如下图所示:

一、盒子的clear属性:

   上图中Box-1和Box-2均设置为向左浮动,Box-3设置为向右浮动,由于三个盒子均设置了浮动,所以三者均从标准流中脱离出来,所以文本(粉红色背景的文字)段落占据了原来Box-1、Box-2和Box-3盒子的空间,形成文字围绕着蓝色盒子布局。但有时候我们不想让文本受到浮动盒子的影响,想达到下面的效果,该如何办呢?

   上图可以看出文本(粉红色背景的文字)不再围绕着Box-1和Box-2排列,但依旧围绕着Box-3排列,实现其实很简单,只需要对P标记选择器的clear属性值设置为left即可。

.father p

{
    border:1px dashed #111111;
    background-color:#ffbaff;
clear:left;
}

由于文本所属的盒子在P标记中,所以clear设置为left就意味着文本不再受向左浮动盒子的影响,从而P标记内的文本不再围绕着Box-1和Box-2排列。若同时也想使文本不再围绕着Box-3排列该如何办呢?只需要把clear设置为both即可。

.father p

{
    border:1px dashed #111111;
    background-color:#ffbaff;
clear:both;
}

效果如下:

二、盒子的高度问题:

1、存在如下的HTML

<div class="father">

  <div class="son1">Box-1<br/>Box-1</div>
  <div class="son2">Box-2</div>
  <div class="son3">Box-3<br/>Box-3<br/>Box-3</div>
</div>

父块div中包括三个子div,这三个子div均设置为浮动,效果图如下:

从图中明显可以看出三个子div由于浮动都脱离出标准流,所以没有在父div中显示。但我们希望父div能自动适应子div的高度,即如下效果:

2、如何做到的呢?

其实这里没有一个标准的方法,使用clear属性也可以做到这点。

<div class="father">

   <div class="son1">Box-1<br/>Box-1</div>
   <div class="son2">Box-2</div>
   <div class="son3">Box-3<br/>Box-3<br/>Box-3</div>
<div class="clear"></div>
</div>

增加一个子div,该div并无内容显示,同时为其设置clear类别选择器,使其clear属性消除左右浮动影响:

.father .clear

{
    margin:0px;
    padding:0px;
    border:0px;
clear:both;
}

3、可以这样理解,相当于把文本(粉红色背景的文字)去掉,只剩下一个空盒子,同时这个空盒子消除了左右浮动的影响,把父div容器撑大了,从而可以容纳三个蓝色的子div盒子。

转载地址:http://tetgx.baihongyu.com/

你可能感兴趣的文章
如何在sumbline运行python文件
查看>>
[转] babel的使用
查看>>
jquery对话框插件
查看>>
IE去掉链接虚线框的几个方法
查看>>
[Linux]ubuntu16.04 nginx彻底删除与重新安装
查看>>
Snackbar
查看>>
1074 Reversing Linked List
查看>>
织梦标签教程
查看>>
React Native 集成code push
查看>>
Android启动页重复启动问题
查看>>
c++ MFC 利用组码 自己生成DXF
查看>>
MVP模式在Android实际项目中的应用和优化
查看>>
3016: [Usaco2012 Nov]Clumsy Cows
查看>>
React 深度学习:ReactSideEffectTags
查看>>
dmidecode输出详解
查看>>
统计单词个数
查看>>
Vue.js 第二天: 组件
查看>>
Django - Celery异步任务队列
查看>>
Android自定义View全解
查看>>
<HTTP权威指南>记录 ---- HTTP连接管理
查看>>