CSS盒模型、标准文档流、浮动

一、盒模型

无论是div、span、a都是盒子,一个图片、表单元素一律看做文本看待。

二、标准文档流

1、块级元素

  • 霸占一行,不能和其他元素并列一行。
  • 能接收宽高,设置宽高有效。
  • 如果不设置宽高,宽高默认为父布局的100%。

2、行内元素

  • 可以和其他元素并排一行。
  • 不能设置宽高,默认宽高就是内容宽高。

3、标签分类

  • 文本级:p、span、a。
  • 容器级:div、li、dl、dt、dd。

4、行内和块级元素转换

块级-->行内display: inline;宽高无效,显示在一行
内元-->块级display: block宽高有效,不设置宽高的话充满父元素,和div无异

5、脱离标准流

使用浮动

三、浮动

  • float: left  左浮动
  • float: right 右浮动

浮动的性质:

  1. 浮动的元素脱标。
  2. 元素浮动之后不区分块级元素和行内元素,即不能写display和float并存。
  3. 元素浮动后就可以设置宽高了。
  4. 浮动的元素互相贴靠。 
  5. 浮动的元素有自围效果。
  6. 一个父元素是不能被浮动的元素撑出高度的。

四、清除浮动

<body>
<div class="box1">
    <ul>
        <li>语文</li>
        <li>数学</li>
        <li>英语</li>
    </ul>
</div>
<div class="box2">
    <ul>
        <li>JAVA</li>
        <li>JavaScript</li>
        <li>Python</li>
    </ul>
</div>
</body>

<style>
    li {
        background: aquamarine;
        float: left;
        width: 100px;
        height: 30px;
    }
 
</style>

效果:

原因是div没有高度,不能给孩子一个高度,要清除浮动,需要给父元素设置高度。 

1、固定高度

给父元素的div添加固定高度。 

ul {
    height: 50px;
}

现实开发中高度很少出现,因为父布局会被内容撑高,很多没有高度设置。 

2、clear:both

子类div自己添加clear:both。

.box2 {
    clear: both;
}

clear:both:清除左右浮动对自己的影响,这种方式有一个问题,margin失效。两个div之间没有任何间隙了,设置margin属性不生效。

3、隔墙法

 在box1和box2之前插入一个新的div。

<div class="c1"></div>

.c1 {
    clear: both;
    height: 5px;
}

隔墙法好用,但是第一个div还是没有高度,想让第一个div撑出高度,用到内墙法,在盒子内部添加一个div:

<div class="box1">
    <ul>
        <li>语文</li>
        <li>数学</li>
        <li>英语</li>
    </ul>
    <div class="c1"></div>
</div>

<div>
	……
</div>
.c1 {
    clear: both;
    height: 5px;
}

不仅仅使其后面的div不追到前面的div,而且可以把第一个内容撑出高度,这样第一个div的背景、边框根据p的高度撑开,第二个依然不能撑开,背景也无效。

总结:

4、overflow:hidden

溢出盒子隐藏,父容器设置样式overflow:auto。

div1 {
    overflow: hidden;
}

浮动被清除,同时有了高,margin也生效了。

浮动总结:

 实际开发中灵活运用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值