1.1属性为给定元素设置所有四个(上下左右)方向的外边距属性。
length:固定值
percentage:相对于包含块的宽度,以百分比值为外边距(百分比相当于是取得父元素宽度的百分比)。
auto让浏览器自己选择一个合适的外边距。有时,在一些特殊情况下,该值可以使元素居 中。
1.2如何设置外边距为零,代码如下:
在body进行设置,style=“margin:0;”
- <body style="margin: 0;">
- <div>
- div>
- body>
1.3设置水平居中,代码如下:
margin:0 auto;
注意点:外边距的重叠性问题:
1.设置子元素的magin时,带动父元素一起下拉,父元素与子元素并未分离:
原因分析:主要是因为父元素未设置外边框
父元素与后代元素:父元素时没有上边框和padding,后代元素的margin-top会溢出,溢出后父元素的margin-top会与后代元素取最大值。
解决方案:
方案一:设置padding或border -top
- div-father{
- border-top:1px soild;
- }
- div-father{
- padding-top:1px;
- }
方案二:设置overflow的属性(缺点:在想要单独使用overflow时,会比较不方便)
- div-father{
- overflow:hidden;
-
- }
方案三:在父元素上方加一个空元素----最优解法
- .div-father::before{
- content:"";
- display:table;
-
- }
2.两个div在上下margin边距设置时,如果上边元素的margin-bottom为x1,下边的元素的margin-top为x2,则两个div的竖直间隔将会为:x1和x2的最大值:
另外设置左右时,将不会出现这种情况
可以分别指明四个方向:padding-top、padding-right、padding-bottom、padding-left
可取值
width=content+margin+padding(这是默认的情况,content-box盒子模型)
此外,还可以对box-sizing的属性设置为border-box,这样,盒子模型的宽度就不会受到margin和padding的影响了。
CSS 中的 box-sizing 属性定义了 user agent 应该如何计算一个元素的总宽度和总高度。
(默认是都是内容的盒子)
取值L:
float
float CSS属性指定一个元素应沿其容器的左侧或右侧放置,允许文本和内联元素环绕它。该元素从网页的正常流动(文档流)中移除,尽管仍然保持部分的流动性(与绝对定位相反)。
由于float意味着使用块布局,它在某些情况下修改display 值的计算值:
display为inline或inline-block时,使用float后会统一变成block。
取值:
left:表明元素必须浮动在其所在的块容器左侧的关键字。
right:表明元素必须浮动在其所在的块容器右侧的关键字。
clear
有时,你可能想要强制元素移至任何浮动元素下方。比如说,你可能希望某个段落与浮动元素保持相邻的位置,但又希望这个段落从头开始强制独占一行。此时可以使用clear。
取值:
left:清除左侧浮动。
right:清除右侧浮动。
both:清除左右两侧浮动