设为首页
收藏本站
最新电影
> 子栏目 Asp | Jsp | XML | XSL | Div+Css | 自定义函数 | 数据库 | 脚本特效
您现在的位置: 首页=>后台技术=>div+css 订阅本栏目  
精辟 margin属性
时间: 2007-09-26 16:59:43 阅读次数:4403

第 1 页 精辟 margin属性[1]
第 2 页 精辟 margin属性[2]




三、margin的解析逻辑

目前我们已经了解到了margin的基本特性和基本写法但对元素margin的基本解析逻辑还是很模糊到底margin的top、right、bottom、left都是以什么为基准来促使box model形成为了形象易懂的对margin的逻辑进行说明下面讲解的过程中将引入W3C上没有的参考线的说法何谓参考线?参考线就是margin移动的基准点此基准点相对于box是静止的而margin的数值就是box相对于参考线的位移量

在margin中top、right、bottom、left的参考线并不一致为一类而是分为了两类参考线top和left的参考线属于一类right和bottom的参考线属于另一类那他们到底各以什么为参考线呢?top以containing block的content上边或者垂直上方相连元素margin的下边为参考线垂直向下位移;left以containing block的content左边或者水平左方相连元素margin的右边为参考线水平向右位移right以元素本身的border右边为参考线水平向右位移;bottom以元素本身的border下边为参考线垂直向下位移从上我们可以看到top和left都是以外元素为参考而right和bottom以本元素为参考上面的位移方向是指margin数值为正值时候的情形如果是负值则位移方向相反



或许理论听起来比较枯燥我们举例说明一下:



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style type="text/css">
div {width:200px; height:200px; background:#ccc;}
</style>
</head>

<body>
<div>外边距的margin-width的值类型有:auto | length | percentage</div>
</body>
</html>

如上代码很简单为了方便我们看到效果我们给div设置了宽度和高度以及背景色

现在我们给div的样式加上margin属性比如:

margin:-10px 20px -30px 40px;

这时候margin的解析逻辑是怎样的呢?首先我们要搞清div的和周边元素的关系div没有相连元素而此时div的containing block是body产生的block box则根据上面介绍的参考线原理div的左外边距以containing block的content左边为参考线及此时以body的content左边为参考线进行水平向右位移位移的大小为40px同理上边距以body的content上边为参考线进行垂直向上位移10px(负值和正值的方向相反)下边距依照现在div的borer下边(此时的div已经经过上边距位移过了)垂直向上位移30px(此时margin不会改变box的border内的物理大小但会改变box的逻辑大小即:以此box的margin的下边为参考的元素不是从box的物理位置开始的而是从逻辑位置开始)右边距依照现在div的borer右边(此时的div已经经过左边距位移过了)水平向右位移20px或许有朋友问你分析的顺序怎么和margin表达式中出现的顺序不一样?如果按照margin表达式中出现的顺序来分析飞!飞Asp技术乐园结果是一样的只是为了更好的方便大家的理解而没有按照表达式的顺序来分析



用margin最后的显示大小到底是怎么样的或许有朋友也比较疑惑我暂时用逻辑大小和物理大小来区分(其实上面已用到此概念)到底什么是逻辑大小什么是物理大小呢?!具体可以看图物理大小指的是除去margin也就是包含border以内的box大小而逻辑大小则是box通过margin解析规则解析后得到的大小(这或许可以解释为什么IE5会错误解析盒模型)当逻辑大小小于物理大小时飞飞Asp技术乐,园则不会影响实际box的显示也就是说此时显示的是box的物理大小而当逻辑大小大于物理大小时飞飞Asp技.术乐园则此时显示逻辑大小这仅对元素本身有效对于其他相关元素他们则只以margin的逻辑大小为准则进行布局




[上一页] [下一页]
站内搜索    

下一篇垂直三栏布局拥有相同高度的方法

上一篇多点调用的 选项卡

本栏目最新 栏目最新列表
微软IE调试工具:SuperPreview for IE(ie6
精选15个国外最流行的CSS框架
CSS2 Media类型使用方法及简介(@Media)
浏览器排版/布局 图片下方出现空隙的问题
使用IE浏览器a链接失效(不能点击)的解决方
网站优化策划 栏目最新列表
增加网站外链的快速方法
网站上线前必做的30个检查
新的友情链接参考标准(没有google的PR情况
优化Google的AdSense广告的五个工具
王通讲SEO八大基础
站点最新 站点最新列表
微博推广的一些技巧
xhEditor v1.1.7 发布,
收集的一些轻量级非常实
50个新鲜兼容最新版本的
javascript中cookie的设
Excel中出现#VALUE!、#D
jquery插件:飞飞表情插件
十个使用HTML5开发的精彩
支持HTML5的浏览器有哪些
飞妮莫属:漫画:如何写出
历史最热10条信息  
MIME介绍 及 [1] [2] [3]
巧用Google和迅雷来下载
Transact SQL 常 [1] [2]
VIA Rhine II Fast Ethe
电脑常用端 [1] [2] [3]
Do you get a kick out
十道羊皮卷 欣赏+mp3版+
每日一句:A friend and
每日一句:Theres no tu
经典__悟透JavaScript
 width= 
伟哥博客 西安房产 123最新电影 三四六四