display:inline和display:block, display:inline-block区别,清除浮动的方法

display:inline和display:block, display:inline-block区别,清除浮动的方法

实现简单的div并排

在这里插入图片描述

inline:

使元素变成行内元素,拥有行内元素的特性,即可以与其他行内元素共享一行,不会独占一行. 不能更改元素的height,width的值,大小由内容撑开.
可以使用padding,margin的left和right产生边距效果,但是top和bottom就不行.

block:

使元素变成块级元素,独占一行,在不设置自己的宽度的情况下,块级元素会默认填满父级元素的宽度. 能够改变元素的height,width的值.
可以设置padding,margin的各个属性值,top,left,bottom,right都能够产生边距效果.

inline-block:

结合了inline与block的一些特点,结合了上述inline的第1个特点和block的第2,3个特点.用通俗的话讲,就是不独占一行的块级元素。

设置div的宽高,display:inline

    <div style="position: relative; background-color: blue;height: 200px; ">
        <div style="display: block; width: 50%; height: 30px; background-color: rebeccapurple;  ">1</div>
        <div style="display: block; width: 50%; height: 30px; background-color: red;  ">2</div>
        <div style="display: block; width: 50%; height: 30px; background-color: black;  ">3</div>
        <div style="display: block; width: 50%; height: 30px; background-color: gold;  ">4</div>
    </div>

在这里插入图片描述

若取消div的宽高,div大小由内容撑开

若取消内容则div将不会显示,因为div不设置宽高 是由子元素撑开
并且在不设置自己的宽度的情况下,块级元素会默认填满父级元素的宽度.

    <div style="position: relative; background-color: blue;height: 200px; ">
        <div style="display: block;    background-color: rebeccapurple;  ">1</div>
        <div style="display: block;    background-color: red;  "> 2<br>2</div>
        <div style="display: block;    background-color: black;  ">3</div>
        <div style="display: block;    background-color: gold;  ">4</div>
    </div>

在这里插入图片描述

若改为display:inline

子元素的宽高则不会占满父元素
在这里插入图片描述

同样使用float也能达到相同的效果但会造成父元素高度塌陷。

父元素塌陷:在文档流中,父元素的高度是默认被子元素撑开的,子元素有多高,父元素就有多高。但是当子元素设置浮动后,子元素会完全脱离文档流,导致子元素无法撑起父元素的高度,造成父元素高度高度塌陷。

若不给父元素设置高度,使用display:inline

    <div style="position: relative; background-color: blue;  ">
        <div style="display: inline-block;    background-color: rebeccapurple;  "> 1</div>
        <div style="display: inline-block;    background-color: red;  ">  2</div>
        <div style="display: inline-block;    background-color: green;  "> 3</div>
        <div style="display: inline-block;    background-color: gold;  ">4 </div>
    </div>

在这里插入图片描述

使用float造成父元素高度塌陷,则父元素的背景颜色没有了。

在这里插入图片描述

解决办法

让父元素也浮动

<div style="position: relative; background-color: blue; width: 900px; height: 500ox; float: left;  ">
        <div style="float: left; height: 200px; background-color: rebeccapurple;  "> 1</div>
        <div style="float: left; height: 200px; background-color: red;  ">  2</div>
        <div style="float: left; height: 200px; background-color: green;  "> 3</div>
        <div style="float: left; height: 200px; background-color: gold;  ">4 </div>
        <!-- <p style="clear: both;"></p> -->
    </div>

在这里插入图片描述

缺点:影响整体页面布局,若父元素也有父元素呢,总不能一直浮动到body…

更多清除浮动的方法

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值