一、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的,这时可以不加!怕出现意外时,只管加上就可以了!
分享到:
相关推荐
margin属性的值可以是像素(px)、英寸(in)、毫米(mm)、em单位,或者使用百分比(%)。百分比值是相对于其父元素的width计算得出的,这一点在普通流中的元素和绝对定位元素计算方式上存在差异。当使用百分比值时...
理解margin的特性和使用方法对于创建具有良好布局的网页至关重要。 首先,margin属性可以独立设置上、右、下、左四个方向的外边距,分别对应margin-top、margin-right、margin-bottom和margin-left。同时,CSS允许...
《CSS中的margin属性详解》 ...总的来说,理解CSS中的margin属性,掌握其特性和用法,对于提升网页布局的精确度和美感至关重要。在实践中不断探索和积累,才能更好地驾驭这个强大的工具,创造出更加优秀的网页设计。
在实际使用中,`margin`属性可以采用简写形式,根据提供的值的数量来自动填充缺少的部分。例如: - 一个值:所有边距都设置为该值。 - 两个值:第一个值设为上和下,第二个值设为左和右。 - 三个值:第一个值设为上...
### CSS中的Padding与Margin属性详解 #### 一、引言 在前端开发中,CSS(层叠样式表)是用于定义HTML文档外观的核心技术之一。其中,`padding`与`margin`是两个至关重要的属性,它们直接影响着网页元素的空间布局...
`margin`属性的使用非常灵活,可以接受多种类型的值,包括长度单位(如像素、英寸、毫米、em)、百分比以及特殊值`auto`。 长度单位在`margin`属性中用来指定明确的距离,例如`0.25in`表示1/4英寸,`10px`表示10...
CSS提供了多种方法来实现元素的水平居中,而使用margin属性是一种非常流行且简单的方法。在给定的文件内容中,通过编写HTML和CSS代码演示了如何利用margin属性将一个div元素水平居中显示。 ### 知识点解释 #### 1....
#### Margin属性的基本用法 首先,让我们回顾一下`margin`属性的基本用法。`margin`属性可以接受一个、两个、三个或四个值来分别定义元素四边的外边距大小。当指定多个值时,这些值按顺时针方向对应于上、右、下、...
CSS 属性查询是指在 HTML 标记语言中使用的样式表语言 CSS 的各种属性的查询和使用方法。该查询包含了绝大多数常用的 HTML 标签,以及其对应的属性和用法。 字体属性(Font) * font-family:定义文本的字体系列...
在XML应用开发中,使用CSS来美化和布局XML文档是一种常见的方法。在4.9课堂实践中,主要关注的是如何利用CSS的容器属性——边距属性`margin`和补白属性`padding`来调整XML数据的显示效果。这两个属性在创建清晰、有...
文章还探讨了margin负值的使用方法和效果。负值可以将元素向相反的方向移动,这在进行元素居中布局时非常有用,例如可以通过设置负的margin-top和margin-left来实现绝对定位元素的居中。 最后,文章讨论了margin和...
在CSS(层叠样式表)中,`margin`属性是一个非常重要的布局工具,它用于设置元素周围的外边距,也就是元素与其他元素或容器边界的...通过熟练掌握`margin`属性的使用,开发者能够更高效地设计出美观且响应式的网页。
CSS中的`margin`属性是一个非常...理解并熟练掌握`margin`属性的特性和用法,对于优化页面布局和提升用户体验至关重要。在实际开发中,还需要注意浏览器兼容性问题,确保在不同的设备和浏览器上都能得到预期的效果。
### IE6下出现双倍margin的解决方法 #### 背景与问题描述 在进行网页设计时,尤其是在处理老旧浏览器兼容性问题时,经常会遇到一些棘手的技术挑战。其中,“IE6双倍margin”问题就是一个典型的例子。该问题不仅困扰...
在网页设计和开发中,`margin` 是一个非常重要的CSS属性,用于设置元素与周围元素的距离,即内外边距。而“margin负值之美”这个主题则深入探讨了如何巧妙利用负值`margin`来实现一些特殊的布局效果和设计创新。在...
接下来,为了获取这些属性的值,我们可以使用JavaScript的`document.getElementById`方法来选择`iframe`元素,然后通过`.marginHeight`和`.marginWidth`属性来访问它们。如下所示: ```html document.write...
在进行网页设计时,尤其是在使用Mozilla Firefox浏览器环境下,开发者可能会遇到一个常见的布局问题:当尝试通过CSS中的`margin-top`属性来调整某个元素的位置时,发现不仅目标元素发生了位移,其父级或兄弟元素的...
要实现理想的布局效果,除了选择合适的布局容器之外,还需要深入理解这些定位属性的使用方法。 #### 2. HorizontalAlignment 和 VerticalAlignment - **HorizontalAlignment**: 此属性用于指定元素在其容器中的...
以下是一些常见的CSS属性及其用法: 1. `!important`:这个关键字用于提高CSS规则的优先级,确保该规则在其他规则冲突时仍然生效。 2. `:active`、`:hover`、`:link`、`:visited`:这些都是CSS伪类,分别用于定义...