前言

 

改变容器尺寸

 

margin改变容器尺寸有以下两个限制条件:

  1. 使用于没有设置宽高的普通block元素
    float/absolute/fixed元素 以及 inlines水平 table-cell元素.

  2. 只试用于水平方向

 

margin百分比

 

1.普通元素的百分比margin值是相对于容器宽度计算的
2.绝对定位元素的百分比margin值是相对于第一个定位祖先元素的宽度计算

 

也就是说margin的宽度都是相对于其祖先元素计算的.

 

margin重叠

 

1.block水平元素(不包括float和absolute)
2.只发生在垂直方向(如果修改了writting-mode)

 

父子元素margin重叠条件

  1. 父元素非块状格式化上下文元素

  2. 父元素没有border值;

  3. 父元素没有padding值;

  4. 父元素与第一个子元素之间没有inline父元素分隔

  5. 父元素没有高度限制

 

我们可以通过设置;(添加overflow:hidden).设置border/padding/添加一个inline元素/添加高度等方法来解决margin重叠的问题;

 

margin重叠的规则,简而言之就是取两个值的和

 

margin auto属性

 

有时候,就算没有给元素设置宽高,他也会自动填满容器,那么如果我们设置宽高以及margin:auto后,就可以有自动margin填充了
图片是默认inlie的,所以不会自动居中,需要修改它的block值;
垂直居中 绝对定位元素在拉伸的情况下,设置一个宽高度,然后margin :auto,那么就可以实现自动居中了,也就是时候margin填充了拉伸后这只宽高留下的空白.

 

margin 无效的情形

 

1.inline水平元素垂直margin无效
2.display:table-cell/table-row等声明的margin无效

CSS深入理解之margin的更多相关文章

  1. CSS深入理解之overflow

    CSS深入理解之overflow 前言 这是跟着张鑫旭重学CSS的overflow篇 基本属性 overflow有以下五个基本属性: 1.visible : 默认值,具体表现为,应用此属性后,子元素超 ...

  2. CSS深入理解学习笔记之absolute

    1.absolute和float 拥有相同的特性表现: ①包裹性(容器应用之后,可以包裹里面的内容): <!doctype html> <html> <head> ...

  3. CSS深入理解之absolute(HTML/CSS)

    absolute和float是同父异母的兄弟,因为它们具有相同点:包裹性与破坏性 absolute的特点 1.独立的,并且可以摆脱overflow的限制,无论是滚动还是隐藏: 2.无依赖,不受rela ...

  4. CSS艺术之---负margin之美

    CSS中负边距(nagative margin)是布局中常常使用的一个技巧.仅仅要运用得当时常会产生奇异的效果.勘称CSS中的奇淫巧计,非常多CSS布局方法都依赖于负边距.掌握它对于前端童鞋来说还是非 ...

  5. CSS深入理解之line-height

    以下文字整理自慕课网——张鑫旭的<CSS深入理解之line-height>. line-height,又称行高,指的是两行文字基线之间的距离,又可以称为这行文字所占的高度. 定义三问: 什 ...

  6. CSS中padding和margin以及用法

    CSS中padding与margin 1.padding:内边距,表示控件内容相对于边缘的距离. 2.margin:外边距,表示控件边缘相对于父空间的边缘. 参考:http://www.studyof ...

  7. CSS深入理解学习笔记之margin

    1.margin与容器尺寸 元素尺寸:①可视尺寸 clientWidth(标准):②占据尺寸 margin与可视尺寸:①适用于没有设定width/height的普通block元素:②只适用于水平方向尺 ...

  8. 一些常用css技巧的为什么(一)我所理解的margin

    要用到的基本术语和概念: 正常流:HTML文档的文本布局,在非西方语言中流的方向可能不同.大多数元素都在正常流中,浮动或定位可以让元素脱离正常流. 块级元素:像p,div之类的元素在正常流中会在其框之 ...

  9. 【转】CSS深入理解流体特性和BFC特性下多栏自适应布局

    这篇文章发布于 2015年02月12日,星期四,23:36,归类于 css相关. 阅读 30873 次, 今日 63 次 by zhangxinxu from http://www.zhangxinx ...

随机推荐

  1. hdu2196 树形dp

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=2196 Problem Description A school bought the fi ...

  2. XCode6 生成prefix.pch文件

    XCode6里, 新建工程默认是没有pch文件的,苹果取消pch文件这一点肯定有它的道理,刚开始很多人可能不适应,如果我们想使用pch文件,需要手动添加,添加步骤如下:(依旧直接上图)

  3. java基础-泛型2

    浏览以下内容前,请点击并阅读 声明 6 类型推测 java编译器能够检查所有的方法调用和对应的声明来决定类型的实参,即类型推测,类型的推测算法推测满足所有参数的最具体类型,如下例所示: //泛型方法的 ...

  4. 一言不合敲代码(1)——DIV+CSS3制作哆啦A梦头像

    先展示一下我的头像吧. 作为一个前端ER,我的头像当然不能是绘画工具画出来的.没错,这个玩意是由HTML+CSS代码实现的,过年的某一天晚上无聊花了一个小时敲出来的.来看看它原本的样子: 为什么会变成 ...

  5. [BZOJ3874][AHOI2014] 宅男计划

    Description 外卖店一共有N种食物,分别有1到N编号.第i种食物有固定的价钱Pi和保质期Si.第i种食物会在Si天后过期.JYY是不会吃过期食物的.比如JYY如果今天点了一份保质期为1天的食 ...

  6. MySQL生成模型

    根据数据库表生成Model using System; using System.Collections.Generic; using System.Data; using System.Text; ...

  7. 爬虫, 获取登录者的外网IP

    笔者学习了一下用爬虫, 获取登录者的外网IP. 首先导入Jsoup的jar包 public class RetrivePage { private static String url="ht ...

  8. iOS文档注释

    Eclipse和IntelliJ IDEA系的IDE都有自动生成文档注释的功能,Xcode虽然安装了VVDocument,但是仍然感觉注释的功能不是很完善,于是今天整理了一下书写文档注释的一些用法. ...

  9. JavaScript 三级联动

    附件连接下载地址:http://files.cnblogs.com/files/CaktyRiven/js.zip <!DOCTYPE html> <html lang=" ...

  10. NSDecimalNumber用于精度准确的计算

    在处理金额计算时,往往会涉及到小数,由于Double类型不准确,无法做到产品的要求.为了保证金额计算的准确性,建议使用NSDecimalNumber. 1.创建对象(常用的方法) // mantiss ...