css 框模型要点

来源:互联网 发布:手机淘宝咋退货退款 编辑:程序博客网 时间:2024/06/06 06:48

框模型的概述
这里写图片描述
注意:外边距可以是负值,而且在很多情况下都要使用负值的外边距。
浏览器的兼容性
一旦页面设计了合适的DTD(文档类型定义:是一套为了进行程序间的数据交换而建立的关于标记符的语法规则)
问题
IE 5 和 6 的呈现却是不正确的。根据 W3C 的规范,元素内容占据的空间是由 width 属性设置的,而内容周围的 padding 和 border 值是另外计算的。不幸的是,IE5.X 和 6 在怪异模式中使用自己的非标准模型。这些浏览器的 width 属性不是内容的宽度,而是内容、内边距和边框的宽度的总和。
解决方案
回避这个问题。也就是,不要给元素添加具有指定宽度的内边距,而是尝试将内边距或外边距添加到元素的父元素和子元素。

padding

1.语法

padding:10px 2em 0.25ex 10%//上右下左

2.内边距的百分比
百分数值是相对于其父元素的 width 计算的
border
1.边框绘制于背景之上
border-style边框样式

p{border-style:solid solid solid none;}

border-width

border-width:thin,thick

**注意**border-style的默认值:none
透明边框

border-color:transparent;

注意:在 IE7 之前,IE/WIN 没有提供对 transparent 的支持。在以前的版本,IE 会根据元素的 color 值来设置边框颜色。

margin外边框
1.语法

margin(auto auto auto 1px);//value copy

问题:Netscape 和 IE 对 body 标签定义的默认边距(margin)值是 8px。而 Opera 不是这样。相反地,Opera 将内部填充(padding)的默认值定义为 8px,因此如果希望对整个网站的边缘部分进行调整,并将之正确显示于 Opera 中,那么必须对 body 的 padding 进行自定义。
解决方案

*{    padding:0;    margin:0;}htmlbody{    margin:0;    padding:0;}

外边距合并

定义:外边距合并指的是,当两个垂直外边距相遇时,它们将形成一个外边距。合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者。

当一个元素出现在另一个元素上面时,第一个元素的下外边距与第二个元素的上外边距会发生合并。请看下图:
这里写图片描述

当一个元素包含在另一个元素中时(假设没有内边距或边框把外边距分隔开),它们的上和/或下外边距也会发生合并。请看下图:
这里写图片描述
假设有一个空元素,它有外边距,但是没有边框或填充。在这种情况下,上外边距与下外边距就碰到了一起,它们会发生合并:
这里写图片描述
如果这个外边距遇到另一个元素的外边距,它还会发生合并:
这里写图片描述
这就是一系列的段落元素占用空间非常小的原因,因为它们的所有外边距都合并到一起,形成了一个小的外边距。

外边距合并初看上去可能有点奇怪,但是实际上,它是有意义的。以由几个段落组成的典型文本页面为例。第一个段落上面的空间等于段落的上外边距。如果没有外边距合并,后续所有段落之间的外边距都将是相邻上外边距和下外边距的和。这意味着段落之间的空间是页面顶部的两倍。如果发生外边距合并,段落之间的上外边距和下外边距就合并在一起,这样各处的距离就一致了。
这里写图片描述

注意:注释:只有普通文档流中块框的垂直外边距才会发生外边距合并。行内框、浮动框或绝对定位之间的外边距不会合并。

0 0
原创粉丝点击