CSS核心(二十八)外边距 margin精讲 并解决margin-top影响父盒子的问题

[复制链接]
查看: 1149|回复: 31
发表于 2023-2-1 09:42:44 | 显示全部楼层 | 阅读模式
margin和padding的使用方法完全相同,但margin是给一个元素添加外边距。
如果想要让子盒子和父盒子之间产生边距,通过边距设置的话,有两种方法:
1、给父盒子添加内边距。
2、给子盒子添加外边距。

margin有三个重要知识点
1、使用margin-auto:0 auto;可以让指定的行内块元素横向居中。
2、使用margin的四个属性值。
3、margin不会扩大盒子本身的尺寸,但会增加盒子的占位尺寸。

下面我们先看到代码(margin-auto:0 auto):
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>外边距 margin精讲 并解决margin-top影响父盒子的问题</title>
</head>
<style>
        .wai{
                width: 400px;
                height: 400px;
                background-color: aquamarine;
        }
        .nei{
                width:200px;
                height:200px;
                background:#f00;
                margin:0 auto;/* 让盒子横向居中 */
                /* margin-left:50px; */
                /* margin-top:50px; */
                /* margin-right:50px; */
                /* margin-bottom:50px; */
                /*margin:10px 20px 30px 40px;*/
        }
</style>
<body>
<div class="wai">
        <div class="nei"></div>
</div>
</body>
</html>


CSS核心(二十八)外边距 margin精讲 并解决margin-top影响父盒子的问题


以上代码实现了子盒子的横向居中。

下面再看外边距的设置方法,它与内边距padding的设置方法完全一样

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>外边距 margin精讲 并解决margin-top影响父盒子的问题</title>
</head>
<style>
        .wai{
                width: 400px;
                height: 400px;
                background-color: aquamarine;
        }
        .nei{
                width:200px;
                height:200px;
                background:#f00;
                /* margin:0 auto;/* 让盒子横向居中 */
                /* margin-left:50px; */
                /* margin-top:50px; */
                /* margin-right:50px; */
                /* margin-bottom:50px; */
                margin:20px 20px 30px 40px;/* 顺序为:上右下左 */
        }
</style>

<body>
<div class="wai">
        <div class="nei"></div>
</div>
</body>
</html>


CSS核心(二十八)外边距 margin精讲 并解决margin-top影响父盒子的问题

需要注意的是:我们给子盒子的上外边距设置了20像素,可是发现子盒子和父盒子顶边的距离并未发生变化,而是父盒子的顶边产生了20像素的外边距。

这其实是CSS中的一个BUG:
该BUG的症状是:当两个div嵌套时,如果给子盒子设置margin-top属性时,如果父盒子的margin-top的值大,那就父盒子的margin-top生效,否则是子盒子的margin-top生效,而且margin-top设定始终相对于父盒子的上一个元素
以上代码中,由于父盒子没有设置margin-top,所以父盒子的外边距为0,而子盒子的外边距为20px,所以结果父盒子的外边距为20px,如果不能理解也没关系,反正这是一个bug。
那么如何解决margin-top影响父盒子的问题呢?

请看下面的代码:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>外边距 margin精讲 并解决margin-top影响父盒子的问题</title>
</head>
<style>
        .wai{
                width: 400px;
                height: 400px;
                background-color: aquamarine;
                overflow: hidden
        }
        .nei{
                width:200px;
                height:200px;
                background:#f00;
                /* margin:0 auto;/* 让盒子横向居中 */
                /* margin-left:50px; */
                /* margin-top:50px; */
                /* margin-right:50px; */
                /* margin-bottom:50px; */
                margin:20px 20px 30px 40px;/* 顺序为:上右下左 */
        }
</style>

<body>
<div class="wai">
        <div class="nei"></div>
</div>
</body>
</html>


CSS核心(二十八)外边距 margin精讲 并解决margin-top影响父盒子的问题

上面的代码中,我们给父盒子添加了一个overflow:hidden;属性,发现margin-top正常了,至于这是个什么原理,说起来比较抽象,暂时不说了,大家只要记住margin-top要和overflow: hidden;配合使用即可。
还可以通过给父盒子设置padding-top的方式解决,但设置padding-top后,父盒子的宽度要减去padding-top的尺寸,否则盒子会变大。
在后面的课程中还会有更多的解决办法。



易博软件介绍

0

主题

13

帖子

7

积分

营销入门

Rank: 2

积分
7
发表于 2023-2-17 18:13:24 | 显示全部楼层
^精华啊,虚心学习

0

主题

15

帖子

8

积分

营销入门

Rank: 2

积分
8
发表于 2023-2-24 06:21:50 | 显示全部楼层
^很受启发!谢谢您的佳文!

0

主题

20

帖子

11

积分

营销入门

Rank: 2

积分
11
发表于 2023-2-28 10:53:35 | 显示全部楼层
对初学者来说指明了方向和方法!不错!!!

0

主题

15

帖子

8

积分

营销入门

Rank: 2

积分
8
发表于 2023-3-5 22:26:42 | 显示全部楼层
只要是发现了自己的问题   那就是好样的

0

主题

14

帖子

8

积分

营销入门

Rank: 2

积分
8
发表于 2023-3-11 22:27:26 | 显示全部楼层
ai~~受不了。。一个怕麻烦的人。。唉。。。

0

主题

15

帖子

8

积分

营销入门

Rank: 2

积分
8
发表于 2023-3-18 08:30:47 | 显示全部楼层
我作为初学者,更是应该先把基础打牢固

0

主题

17

帖子

9

积分

营销入门

Rank: 2

积分
9
发表于 2023-3-22 18:07:56 | 显示全部楼层
电脑是用来费电的不是叫人用的
发表于 2023-3-28 00:01:15 | 显示全部楼层
^中国的程序员要努力呀!  楼主的话很是受用  中国的程序员要努力呀!  我想应该更多的人把他们的经写出来,这样好让咋们中国人少走一些弯路  希望我们共同奋斗,为了自己的理想,拼了!呵呵

0

主题

15

帖子

8

积分

营销入门

Rank: 2

积分
8
发表于 2023-3-30 18:37:27 | 显示全部楼层
站在那里不重要,重要的是走向那里  
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1、请认真发帖,禁止回复纯表情,纯数字等无意义的内容!帖子内容不要太简单!
2、提倡文明上网,净化网络环境!抵制低俗不良违法有害信息。
3、如果你对主帖作者的帖子不屑一顾的话,请勿回帖。谢谢合作!
3、问答求助区发帖求助后,如有其他用户热心帮您解决问题后,请自觉点击设为最佳答案按钮。

 
 
QQ在线客服
QQ技术支持
工作时间:
8:00-18:00
软著登字:
1361266号
官方微信扫一扫
weixin

QQ|小黑屋|慈众营销 ( 粤ICP备15049986号 )|网站地图

自动发帖软件 | 自动发帖器 | 营销推广软件 | 网络营销工具 | 网络营销软件 | 网站推广工具 | 网络推广软件 | 网络推广工具 | 网页推广软件 | 信息发布软件 | 网站推广工具 | 网页推广软件

Powered by Discuz! X3.4   © 2012-2020 Comsenz Inc.  慈众科技 - Collect from 深圳吉宝泰佛文化有限公司 公司地址:罗湖区黄贝街道深南东路集浩大厦A1403

返回顶部 返回列表