`

margin属性的用法

    博客分类:
  • html
阅读更多
一、margin的基本写法

外边距的margin-width的值类型有:auto | length | percentage

percentage:百分比是由被应用box的containing block(注:一个元素的containing block是该元素产生的box(es)在计算位置和大小时参考的一个矩形,详细阅读可看:《Containing Block》)的大小所决定。对于margin-top和margin-bottom也同样成立。

margin的默认值为0,并且margin支持负值。

上面我们曾提到属性margin可以用来同时指定box的四边外边距。如果属性margin有四个值,那么值将按照上-右-下-左的顺序作用于四边,即从元素的上边开始,按照顺时针的顺序围绕元素。表达式如下:

margin:top right bottom left;

四个数值中间以空格分隔。效果等同于:

margin-top:value;
margin-right:value;
margin-bottom:value;
margin-left:value;

并且规范还提供了省略的数值写法,基本原则如下:

引用:
1.如果没有left值,则使用right代替;
2.如果没有bottom值,则使用top代替;
3.如果没有right值,则使用top值代替。

根据这些基本原则,我们可以有三种省略方式,但不管怎样省略margin的数值都会大于等于一个,而margin的默认数值是从top开始至left结束,那么对于省略的具体情况,我们可以从left反推理回去。

1.如果margin只有三个值,按照值的顺序为margin:top right bottom; 缺少了left,根据原则,则left的值有right来代替。

margin:10px 20px 30px;就等于margin:10px 20px 30px 20px;



2.如果margin只有两个值,按照值的顺序为margin:top right; 缺少了bottom和left,根据原则left的值由right来代替,bottm的值由top来代替。

margin:10px 20px;就等于margin:10px 20px 10px 20px;



3.如果margin只有一个值,按照值的顺序为margin:top; 缺少了bottom、left和right,根据原则left的值由right来代替,bottom的值由top来代替,right的值右top来代替,也就是说left的值也由top来代替。

margin:10px;就等于margin:10px 10px 10px 10px;









二。margin默认值

margin只是一个CSS的属性,可以说本身不存在默认值的!但你可以认为默认值是0,这种说法不受官方支持的!说一个不恰当的例子吧,你能说体重的默认值是60吗?只能说一个成年男子的默认体重是60,而不是体重默认为60。这样,你就可以理解了。

body是视浏览器的不同而有不同的margin默认值。也就是说在IE中body默认margin是20px,这就是为什么body在不设置margin时,总有内补白的,宽度是20px左右。而table除用padding之外还有一个特别的属性是cellpadding,除了margin还有一个cellspacing属性一样,但两个属性可以同时设置。其实是没有冲突的,一般的table的cellpadding与cellspacing都是5px,如果你设置了这个属性后margin变为0了,这时你可以说table的margin默认是0,但事实上在CSS格式中是没有cellpadding与cellspacing这两个属性的。它们用其他和来代替了,比如对一个table进行margin约束时,如果设置了margin为0的话,内白也是0的。这时你可以说margin的默认值不为0,或者干脆说table不太支持margin。事实上,不同的浏览器对table的确有不支持margin的现象。

但对于div等,其实内补白也是不为0的。但不会说margin的默认值为多少的。也就是说不同的HTML区块元素有不同的margin默认值的。显然不说margin有默认值,只有说是区块元素有默认的margin值。

如果使用了标签提供的样式时,不需要对margin进行定义的,也就是说这是一个隐式的定义。如果所使用的标签内补白不合你的要求时,可以对也是必须对margin进行一个显式的定义。所以使用与否对你的浏览器解析时不会浪费空间代价的。也就是说不管是显式或是隐式的定义,浏览器都是要按要求找出了margin的值而进行重现的!

所以,你不必太关心什么时候使用。如果你觉得麻烦,可以对每一个区块元素进行margin的合适赋值的!至于什么时间使用margin:0,那就更好答了,只有要求不要内补白时才有可能要加的!因为<img>等元的margin默认值是0的,这时可以不加!怕出现意外时,只管加上就可以了!
分享到:
评论

相关推荐

    css margin 属性 详细使用说明

    设置外边距的最简单的方法就是使用 margin 属性。 margin 属性接受任何长度单位,可以是像素、英寸、毫米或 em。 margin 可以设置为 auto。更常见的做法是为外边距设置长度值。下面的声明在 h1 元素的各个边上设置了...

    CSS margin属性介绍与用法(附margin解剖图)

    margin 属性是css用于在一个声明中设置所有 margin 属性的简写属性,包含了margin left/top/right/bottom/元素块距离,详细使用方法如下,感兴趣的朋友可以了解下哈

    利用margin属性将一个div水平居中

    将一个div水平居中的方法有很多,不过在使用过程中margin的频率还是比较高的,下面有个不错的示例,不知道的朋友可以参考下

    零基础学HTML CSS源代码

    示例描述:本章演示背景属性用法。 背景的基本语法.html 属性背景的基本语法。 设置背景图像.html 设置背景图像。 设置背景图像滚动.html 设置背景图像滚动。 设置背景图像铺排.html 设置背景图像...

    IE7、IE8、ff下的margin-top问题 折叠margin

    “collapsing margins”(折叠margin)的意思是:2个或以上盒模型之间(关系可以是相邻或嵌套)相邻的margin属性(这之间不能有非空内容、padding区域、border边框或使用清除分离方法)结合表示为一个单独的margin。...

    div标签中的元素margin-top失效的解决方法

    如题。...元素上级标签是div,已经设置了width和height等的属性,可是,在对元素使用margin进行调整的时候,无法生效。同学经验提示,对该元素的父元素属性设置成 overflow:hidden; 问题就解决了。

    CSS3中Transform动画属性用法详解

    需要注意的是这三个属性都是css3新增的属性,各大浏览器支持方面还不是特别好,使用时要特别注意浏览器的兼容性,本文重点介绍Transform的使用方法,具体内容如下 浏览器支持情况: Internet Explorer 10、Firefox、...

    CSS中提升优先级属性!important的用法问题总结

    本文介绍了CSS中提升优先级属性!important的用法问题总结,分享给大家,具体如下: 一、语法 ...important属性,也就是说他们会默认让margin-left:20px!important; 这条语句生效,下面的不带!importa

    css常见定位属性的使用

    对定位属性值进行详解,和常见用法的分享。在CSS中关于定位的内容是:position:relative | absolute | static | fixed。static 没有特别的设定,遵循基本的定位规定,不能通过z-index进行层次分级。在本文中,任何一...

    CSS网页布局教程:绝对定位和相对定位

    以及使用CSS的Left、Right、Top、Bottom属性(偏移属性)和Margin属性(外边距)对定位块级元素进行布局的方法。 CSS网页布局教程:绝对定位和相对定位。通过本文你绝对能理解绝对定位和相对定位了,如果你看完本篇...

    使用HTML开发商业网站-CSS控制单元格边距课件.pptx

    使用HTML开发商业网站 ...行标签无内边距属性padding和外边距属性margin。 外边距属性margin对单元格无效,要想设置相邻单元格边框之间的距离,只能对标签应用HTML标签属性cellspacing。 A B 谢谢大家

    CSS中不为人知Zoom属性的使用介绍(IE私有属性)

    Zoom的使用方法: zoom : normal | number normal : 默认值。使用对象的实际尺寸 number : 百分数 | 无符号浮点实数。浮点实数值为1.0或百分数为100%时相当于此属性的 normal 值用白话讲解就是zoom:后面的...

    Jquery css函数用法(判断标签是否拥有某属性)

    判断一个层是否隐藏: 代码如下:$(“#id”).css(“display”)==”none” ; 在所有匹配的元素中,设置... 如果属性名包含 “-“的话,必须使用引号: 代码如下: $(“p”).css({ “margin-left”: “10px”, “background-

    html、css最全知识点总结

    10、锚点的使用方法 11、精灵图的使用及其优点(所谓精灵图就是把网页中一些png的小图标放在一张图片上,使用背景定位属性去调整图片的位置,一般使用负值 目的:减轻服务器的压力,静态资源(图片)在加载的时候是...

    前端布局-Position详解

    本文主要描述XHTML中相对定位和绝对定位各自的本质、用法、区别和两者之间的关系。以及使用CSS的Left、Right、Top、Bottom属性(偏移属性)和Margin属性(外边距)对定位块级元素进行布局的方法。

    jQuery Selectors(选择器)的使用(九、表单对象属性篇)

    本系列文章分为:基本篇、层次篇、简单篇、内容篇、可见性篇、属性篇、子元素篇、表单篇、表单对象属性篇共9篇文章。 本篇讲解::enabled,:disabled,:checked,:selected的用法。 您对本系列文章有任何建议或意见请...

    postcss-merge-longhand:使用PostCSS将速记属性合并为速记

    使用PostCSS将速记属性合并为速记。 安装 使用可以: npm install postcss-merge-longhand --save 例子 将速记属性合并为速记; 使用margin , padding和border 。 有关更多示例,请参见。 输入 h1 { margin-top ...

    javascript css float属性的特殊写法

    1、对于没有中划线的css属性一般直接使用style.属性名即可。 如:obj.style.margin,obj.style.width,obj.style.left,obj.style....对在css中有一个特殊的属性其js使用方法确比较特殊。 这个特殊的属性就是:flo

Global site tag (gtag.js) - Google Analytics