html06 盒子模型 margin border padding

一、margin

①含义:外边距

②使用说明

检索或设置对象四边的外补丁。默认值为 0 0。如果提供全部四个参数值,将按上-右-下-左的顺序作用于四边。如果只提供一个,将用于全部的四边。如果提供两个,第一个用于上-下,第二个用于左-右。如果提供三个,第一个用于上,第二个用于左-右,第三个用于下。

:如果在css中这样使用会发生的情况,

margin:17px auto;
margin-top:-50px;
连续使用margin属性,后一个margin-top属性会替换前一个margin-top属性,最终的效果是:margin:-50px auto 17px

③探讨

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<style>
    #div1 {
        width: 50px;
        height: 50px;
        background: red;
        float: left;
        margin: 10px 10px;
    }

    #div2 {
        width: 50px;
        height: 50px;
        background: #2b25ff;
        float: left;
        margin: 15px 15px;
    }

    #div3 {
        width: 100px;
        height: 50px;
        background: #23ff51;
        clear: both;
    }
</style>
<body>

<div id="div1">div1</div>
<div id="div2">div2</div>
<div id="div3">div3</div>

</body>
</html>

④应用

利用margin中auto实现水平居中,竖直方向没有效果;auto会自动适应各种宽度的屏幕。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<style>
    #div1 {
        width: 150px;
        height: 150px;
        background: red;
        border: 5px solid black;
        margin: 10px auto;
        padding: 10px 10px;
    }
</style>
<body>
<div id="div1">div1</div>
</body>
</html>
⑤margin重叠现象

1>竖直方向

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<style>
    #div1 {
        width: 50px;
        height: 50px;
        background: red;
        margin-bottom: 15px;
    }
    #div2 {
        width: 50px;
        height: 50px;
        background: orange;
        margin-top: 15px;
    }
</style>
<body>
<div id="div1">div1</div>
<div id="div2">div2</div>
</body>
</html>
效果图:


2>水平方向

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<style>
    #div1 {
        width: 50px;
        height: 50px;
        background: red;
        margin-right: 15px;
        float: left;
    }
    #div2 {
        width: 50px;
        height: 50px;
        background: orange;
        margin-left: 15px;
        float: left;
    }
</style>
<body>
<div id="div1">div1</div>
<div id="div2">div2</div>
</body>
</html>
效果图:


综上可得出结论:

1.上下/左右相邻的普通元素margin,不是两者相加之和,而是取最大值,这个现象叫做margin重叠。 
2. 普通元素才会发生margin重叠,如果是float元素,就不会发生。margin是两者相加之和。


二、border

①含义:边框

②常用 border:1px solid red;红色实线边框


三、padding

①含义:内边距,相对于margin的外边距

②定义元素边框与元素内容之间的空白区域

③使用:padding接受长度和百分比,但不允许出现负值

④padding与背景,背景色一直铺到边框处

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<style>
    #div1 {
        width: 150px;
        height: 150px;
        background: red;
        border: 5px solid black;
        margin: 10px 10px;
        padding: 10px 10px;
    }
</style>
<body>
<div id="div1">div1</div>
</body>
</html>
当padding值增大时,背景色面积也增大,但文字面积不变,它跟width和height有关;


四、盒子模型实占多大空间

一个盒子有margin,border,padding时,实占空间?

竖直方向:height + padding-top + padding-bottom + border-top + border-bottom + margin-top + margin-bottom

水平方向:width + padding-left + padding-right + border-left + border-right + margin-right + margin-left 




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值