margin特性深入分析与总结
今天写了个小demo,总体不难,但一些细节需要注意:

1)如下图所示,蓝色区域为白色box的padding,橙色区域为每条数据项的margin-bottom,那么如何解决最后一条记录margin-bottom占位的问题?
2)如下图所示,设置外层box border为1px,设置每一行的border-bottom为1px,那么如何解决最后一行border-bottom与box border-bottom紧贴,显示2px border的问题?
为解决上面的问题,需要理解margin自身的一些特性,下面对margin进行总结,以便以后回顾与查找。
块级元素外边距
行内元素外边距
负margin
- margin参考线:即margin移动的基准线,此基准线相对于box是静止的,而margin的数值,就是box相对于参考线的位移量
- 1、top、left参考线:
设置了margin的元素:(1)以父级元素content的上(左)边为参考线,自身向下(右)移动(2)以相邻元素margin的下(右)边为参考线,自身向下(右)移动
- 2、bottom、right参考线:
设置了margin的元素:(1)以元素本身border的下(右)边为参考线,与其相邻的元素向下(右)移动
- 以上的位移方向为margin数值为正值时的情况,如果margin是负值,则位移方向相反
- 更多负margin使用案例,推荐阅读:负值之美:负margin在页面布局中的应用
※修改橙色元素的margin-top,会影响橙色元素相对于Container1向上或向下移动;
※修改橙色元素的margin-bottom,会影响黄色元素相对于橙色元素向上或向下移动
同时注意:DOM结构中后面的元素会叠加在前面元素的上面
※修改橙色元素的margin-left,会影响橙色元素相对于Container2向左或向右移动;
※修改橙色元素的margin-right,会影响黄色元素相对于橙色元素向左或向右移动
百分比margin
- 元素margin为百分比时,会根据其父元素的【宽或高】来计算margin的四个具体值
- 1、横向显示(默认):基于父元素的【宽度】的百分比计算外边距
- 2、纵向显示:基于父元素的【高度】的百分比计算外边距(测试writing-mode这玩意只有IE能使,IE5就有,并且到IE11还坚挺的支持着)
margin-left、margin-right=$Demo1.width()*5% = 25px;
margin-top、margin-bottom= $Demo1.width()*10% = 50px
margin-left、margin-right=$Demo1.height()*5% = 10px;
margin-top、margin-bottom= $Demo1.height()*10% = 20px
margin特性深入分析与总结的更多相关文章
- margin折叠及hasLayout && Block Formatting Contexts
margin折叠的产生有几个条件: 这些margin都处于普通流中,并在同一个BFC中: 这些margin没有被非空内容.padding.border 或 clear 分隔开: 这些margin在垂直 ...
- 利用负margin实现元素居中
原理就是对当前元素的position设置为absolute并且相对于父元素定位,先设置left:50%;top:50%使当前元素的左上角处于父元素的中心位置,之后再应用负margin特性使其中心位于父 ...
- 我对BFC的理解
最初这篇文章打算回答寒冬大神的第一问,谈谈CSS布局.本来呢我以为布局主要涉及float跟display相关属性,以及他们的包含框.静态位置等等.后来看了大神的一片面试文章,嗯?这里怎么还有个BFC, ...
- CSS3与页面布局学习总结(二)——Box Model、边距折叠、内联与块标签、CSSReset
一.盒子模型(Box Model) 盒子模型也有人称为框模型,HTML中的多数元素都会在浏览器中生成一个矩形的区域,每个区域包含四个组成部分,从外向内依次是:外边距(Margin).边框(Border ...
- 【干货分享】前端面试知识点锦集02(CSS篇)——附答案
二.CSS部分 1.解释一下CSS的盒子模型? 回答一:a.标准的css盒子模型:宽度=内容的宽度+边框的宽度+加上内边具的宽度b.网页设计中常听的属性名:内容(content).填充(padding ...
- Box Model,边距折叠,内联和块标签,CSSReset
一.盒子模型(Box Model) 1.1.宽度测试 1.2.溢出测试 1.3.box-sizing属性 1.4.利用CSS画图 二.边距折叠 2.1.概要 2.2.垂直方向外边距合并计算 三.内联与 ...
- hasLayout && Block Formatting Contexts
转自:http://www.smallni.com/haslayout-block-formatting-contexts/ 因为本人脑子不好使,自己打印出了一张hasLayout和Block For ...
- @寒冬winter 大神的css作业问题
块级元素 ①总是在新行上开始: ②高度,行高以及外边距和内边距都可控制: ③宽度缺省是它的容器的100%,除非设定一个宽度. ④它可以容纳内联元素和其他块元素 行内级元素 ①和其他元素都在一行 ...
- BFC与CFC
1.在创建了 Block Formatting Context 的元素中,其子元素按文档流一个接一个地放置.垂直方向上他们的起点是一个包含块的顶部,两个相邻的元素之间的垂直距离取决于 ‘margin’ ...
随机推荐
- php strtotime 函数UNIX时间戳
int strtotime ( string time [, int now]) 本函数预期接受一个包含英文日期格式的字符串并尝试将其解析为 UNIX 时间戳. 如果 time 的格式是绝对时间则 n ...
- C/C++中浮点数输出格式问题
在C语言中,浮点数的输出格式有三种:%g, %f, %e 首先要说的是%e是采用科学计数法来显示. %g与后两者有一个重要的差别,就是设置输出精度的时候,(C中默认浮点输出精度是6),%g认为,包括整 ...
- SQL 函数以及SQL 编程
1.数学函数:操作一个数据,返回一个结果 --去上限: ceiling ☆select --去下限:floor ☆select floor(price) from car --ABS 绝对值 --PI ...
- 浏览器 Event对象 及 属性 的兼容处理
摘自: http://blog.csdn.net/jiachunfeng/article/details/6448186 event对象 IE 中可以直接使用 event 对象,而 FF 中则不可以, ...
- Javascript作用域详解。
javascript的作用域 是按照 函数来划分的. 网址:http://www.cnblogs.com/rubylouvre/archive/2009/08/21/1551270.html
- Sybase:delete与truncate、drop区别
Sybase:delete与truncate.drop区别 区别: TRUNCATE TABLE TABLENAME:删除内容.释放空间但不删除定义. DELETE FROM TABLENAME:删除 ...
- 自定义Checkbox和Radiobox
在线演示 本地下载
- 20145219 《Java程序设计》实验四 Android开发基础设计实验报告
20145219 <Java程序设计>实验四 Android开发基础设计实验报告 实验内容 安装Andriod Studio并配置软件 使用Andriod Studio软件实现Hello ...
- zabbix 邮件报警
一.设置sendmail 安装sendmail yum install -y sendmail systemctl start sendmail.service 配置 cd /usr/lib/zab ...
- [BZOJ2717]迷路的兔子[构造]
构造题…当然需要推(看)一推(看)规(题)律(解)啦... 其实是在Discuss那个CA的一句话题解里面翻到这个东西的... 用奇怪的姿势枚举一下...先贴代码 #include<bits/s ...