博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
16-margin的用法
阅读量:7216 次
发布时间:2019-06-29

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

margin塌陷问题

当时说到了盒模型,盒模型包含着margin,为什么要在这里说margin呢?因为元素和元素在垂直方向上margin里面有坑。

我们来看一个例子:

html结构:

 

 

css样式:

*{            padding: 0;            margin: 0;        }        .father{            width: 400px;            overflow: hidden;            border: 1px solid gray;        }        .box1{            width: 300px;            height: 200px;            background-color: red;            margin-bottom: 20px;}        .box2{            width: 400px;            height: 300px;            background-color: green;            margin-top: 50px;        }

当给两个标准流下兄弟盒子 设置垂直方向上的margin时,那么以较大的为准,那么我们称这种现象叫塌陷。没法解决,我们称为这种技巧叫“奇淫技巧”。记住这种现象,在布局垂直方向盒子的时候主要margin的用法。

当我们给两个标准流下的兄弟盒子设置浮动之后,就不会出现margin塌陷的问题。

margin:0 auto;

div{            width: 780px;            height: 50px;            background-color: red;            /*水平居中盒子*/            margin: 0px auto;                        /*水平居中文字*/            text-align: center;        }

当一个div元素设置margin:0 auto;时就会居中盒子,那我们知道margin:0 auto;表示上下外边距离为0,左右为auto的距离,那么auto是什么意思呢?

设置margin-left:auto;我们发现盒子尽可能大的右边有很大的距离,没有什么意义。当设置margin-right:auto;我们发现盒子尽可能大的左边有很大的距离。当两条语句并存的时候,我们发现盒子尽可能大的左右两边有很大的距离。此时我们就发现盒子居中了。

 

另外如何给盒子设置浮动,那么margin:0 auto失效。

 

使用margin:0 auto;注意点:

1.使用margin: 0 auto;水平居中盒子必须有width,要有明确width,文字水平居中使用text-align: center;

2.只有标准流下的盒子 才能使用margin:0 auto; 

当一个盒子浮动了,固定定位,绝对定位(后面会讲),margin:0 auto; 不能用了

3.margin:0 auto;居中盒子。而不是居中文本,文字水平居中使用text-align: center;

 

另外大家一定要知道margin属性是描述兄弟盒子的关系,而padding描述的是父子盒子的关系

善于使用父亲的padding,而不是margin

如果让大家实现如图的效果,应该有不少的同学做不出来。

那么我们来看看这个案例,它的坑在哪里?

下面这个代码应该是大家都会去写的代码。

*{            padding: 0;            margin: 0;        }        .father{            width: 300px;            height: 300px;            background-color: blue;        }        .xiongda{            width: 100px;            height: 100px;            background-color: orange;                        margin-top: 30px;        }

因为父亲没有border,那么儿子margin-top实际上踹的是“流” 踹的是行,所以父亲掉下来了,一旦给父亲一个border发现就好了。

那么问题来了,我们不可能在页面中无缘无故的去给盒子加一个border,所以此时的解决方案只有一种。就是使用父亲的padding。让子盒子挤下来。

转载于:https://www.cnblogs.com/bai-max/p/9133799.html

你可能感兴趣的文章
MapReduce1和Yarn的工作机制
查看>>
awk 以列为域提取文件内容
查看>>
NEC中标里斯本智慧城市项目 助力城市整体数字化变革
查看>>
[转] 大规模服务设计部署经验谈
查看>>
Debian手动修改ip地址
查看>>
Realm的简单使用
查看>>
zabbix使用zabbix 数据库做数据分表
查看>>
Oracle 11g dataguard三种模式以及实时查询(Real-time query)功能设置
查看>>
exchange 2013 lesson 6 CAS HA installing
查看>>
Groovy中的闭包
查看>>
Alibaba Cloud Launches Dual-mode SSD to Optimize Hyper-scale Infrastructure Performance
查看>>
数字签名和数字证书详解
查看>>
用来代替SQUID的软件VARNISH
查看>>
每天学一点Scala之 伴生类和伴生对象
查看>>
http反向代理调度算法追朔
查看>>
做门户网站 个人站长的新好出路
查看>>
sql中exists,not exists的用法
查看>>
CentOS6.5更改ssh端口问题
查看>>
11g默认审计选项
查看>>
Where Did That New Exchange 2010 Mailbox Go?
查看>>