css之margin
参考地址:http://www.imooc.com/learn/680
标准盒模型

元素尺寸
可视尺寸-clientWidth(标准)——就是上图中的border box包含的尺寸。
占据尺寸-outerWidth(YY,jQuery里面是有这个方法的)——就是上图中的margin box包含的尺寸
一、margin与可视区域
1、适用于没有设定width/height的普通block水平元素,(float元素,absolute/fixed元素,inline元素,table-ceil元素,这些都不行)
2、只适用于水平元素尺寸

代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
div {
overflow: hidden;
background: #000;
}
p {
height: 200px;
margin: 50px 50px;
background: #4794ea;
}
</style>
</head>
<body>
<div>
<p>通过改变p元素的margin-[left|right]值,即可看到p元素水平方向的可视尺寸的改变;通过改变p元素的margin-[top|bottom],p元素垂直方向上的可视尺寸丝毫不会变化,改变的是p元素在垂直方向上的占据尺寸。<br />可以借助Chrome dev面板的来观测:一边改变p元素的margin值,一边观测面板中的盒子模型数值就能够明白了。</p>
</div>
</body>
</html>
注意,上面代码改变的是中间蓝色的部分
原理:没有设置宽高的普通块属性,元素的宽(content)可以是任意值(可以缩成一点),即可以随着文字伸缩,也可以由于margin值水平伸缩,即margin值改变影响的是宽(content)尺寸,对padding值没有影响,可以设置background-clip:content-box验证;而height高由于先受文本内容的自适应影响,所以改变margin就只是改变margin值而已。
为什么设置了float和绝对定位后尺寸就不受margin的影响呢,因为设置这两个任意属性后,元素就成了inline-block,宽度尺寸仅随着文本的变化而变化。这就解释了inline也是如此。
实际应用:
1、一侧定宽的自适应布局

二、margin与占据尺寸(元素所占据的空间)
1、block与inlne-block水平元素均适用
2、与有没有设定width/height值无关
3、适用于水平方向和垂直方向

实际应用:
1、实现滚动区域上下留白的效果

代码:
<div style="height: 100px;background-color: #1AA094;overflow:auto;padding: 50px 0">
<img height="200" src="../img/1.jpg">
</div> <div style="height: 100px;background-color: #1AA094;overflow:auto;">
<img height="200" style="margin: 50px 0" src="../img/1.jpg">
</div>
第一个,火狐浏览器里面,底部没有留白。第二个,正常
二、margin与百分比单位
普通元素的百分比margin都是相对于容器的宽度计算的

代码:
<div style="background-color: #1AA094;width: 200px;height: 300px">
<img style="margin: 10%" src="../img/1.jpg">
</div>
绝对定位元素的百分比margin

代码:
<div style="background-color: #1AA094;width: 200px;height: 300px;position: relative">
<img style="margin: 10%;position: absolute" src="../img/1.jpg">
</div>
三、margin重叠
1、相邻兄弟元素margin重叠


这三个效果是一样的

2、空block元素margin重叠


重叠规则计算:
1、正正取最大值
2、正负值相加
3、负负最负值
实例之一:

css之margin的更多相关文章
- CSS中margin和padding的区别
在CSS中margin是指从自身边框到另一个容器边框之间的距离,就是容器外距离.在CSS中padding是指自身边框到自身内部另一个容器边框之间的距离,就是容器内距离. 下面讲解 padding和ma ...
- CSS中margin边界叠加问题及解决方案
你对CSS的margin边界叠加的概念是否了解,这里和大家分享一下,当一个元素出现在另一个元素上面时,第一个元素的底边界与第二个元素的顶边界发生叠加. CSS的margin边界叠加深度剖析 边界叠加简 ...
- CSS中margin边界叠加问题及解决方案(转)
边界叠加简介 边界叠加是一个相当简单的概念.但是,在实践中对网页进行布局时,它会造成许多混淆.简单地说,当两个垂直边界相遇时,它们将形成一个边界.这个边界的高度等于两个发生叠加的边界的高度中的较大者. ...
- CSS中margin属性
css中margin块级元素的垂直相邻外边距会合并,比如 方框的上下外边距并不是2px,而是合并为1px了. 设置float属性就可以避免这种同级元素边距合并
- css & no margin & print pdf
css & no margin & print pdf no header & no footer https://stackoverflow.com/questions/46 ...
- CSS的margin塌陷(collapse)
<!DOCTYPEHTML PUBLIC"-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head&g ...
- CSS padding margin border属性详解
图解CSS padding.margin.border属性W3C组织建议把所有网页上的对像都放在一个盒(box)中,设计师可以通过创建定义来控制这个盒的属性,这些对像包括段落.列表.标题.图片以及层. ...
- CSS 百分比 margin & padding
前段时间我同事对于margin和padding应用百分比值似乎有些误解,觉得可能是个普遍问题,所以觉得有必要拿出来单独写一下. margin和padding都可以使用百分比值的,但有一点可能和通常的想 ...
- DIV+CSS:Margin和Padding属性[转载]
margin和padding用来隔开元素,margin是隔开元素与外边,padding是隔开元素里边. margin: 包括margin-top.margin-right.margin-bottom. ...
- CSS中margin与padding的区别
CSS边距属性定义元素周围的空间.通过使用单独的属性,可以对上.右.下.左的外边距进行设置.也可以使用简写的外边距属性同时改变所有的外边距.——W3School 边界(margin):元素周围生成额外 ...
随机推荐
- BRIEF特征简介
引言 该文是由EPFL的Calonder在ECCV2010上提出了一种可以快速计算且表达方式为二进制编码的描述子.主要思路就是在特征点附近随机选取若干点对,将这些点对的灰度值的大小,组合成一个二进制串 ...
- pthread_cleanup_push()/pthread_cleanup_pop()的详解
一般来说,Posix的线程终止有两种情况:正常终止和非正常终止.线程主动调用pthread_exit()或者从线程函数中return都将使线程正常退出,这是可预见的退出方式:非正常终止是线程在其他线程 ...
- (string find) 亲和串 hdu2203
亲和串 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- WCF开发实战系列一:创建第一个WCF服务
WCF开发实战系列一:创建第一个WCF服务 (原创:灰灰虫的家http://hi.baidu.com/grayworm) 在这个实战中我们将使用DataContract,ServiceContract ...
- ev的offsetX,pageX,clientX和screenX
event.offsetX.event.offsetY(相对事件发生的具体元素左上角的定位) 鼠标相对于事件源元素(srcElement)的X,Y坐标,只有IE事件有这2个属性,标准事件没有对应的属性 ...
- zabbix3.x添加H3C网络设备详解
zabbix3.x添加H3C网络设备详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 前言: 欢迎加入:高级运维工程师之路 598432640 相信大家在看我的文章之前,也看过其 ...
- xen 配置vm 跟随xen server一起启动
查看Xen Server 信息 (1)查看pool信息 [root@xenserver-243 ~]# xe pool-list uuid ( RO) : e29037aa-0dca-f95a-193 ...
- FastDFS整合nginx后,nginx一直报错
FastDFS整合nginx后,nginx一直报错: 报错内容: [2018-06-11 09:41:21] ERROR - file: ../common/fdfs_http_shared.c, l ...
- python---web框架本质(2)
目录 controllers //存放控制方法 models //存放模型方法 views //存放视图模板 index.html new.html show.html index.py //用户访问 ...
- CM记录-集群主机存储情况