【分享】Table元素的 align='center' 会受 margin 值的影响吗?
时间:2010-09-10
来源:互联网
TABLE 的 align=’center’
根据HTML4.01 规范中的描述,TABLE 元素的 align 属性,这个属性可以取 'left'、'center'、'right' 三个值。它指定了 TABLE 元素在文档中的位置,三个属性值分别对应 '居左'、'居中'、'居右',描述的是 TABLE 元素自身相对于其父容器的对齐方式。
同时,align 属性已被废弃。不赞成使用。
关于 TABLE 元素的 align 属性 的详细信息,请参考 HTML4.01 规范 11.2.1 The TABLE element 中的内容。
在上一个帖子中:【分享】align 在各浏览器中的实现差异及引起的问题
,已经大致的介绍了关于它的知识,以及引起的兼容性问题。也介绍 了 align=’left’ align=’right’的实现。那么,align=”center” 又是如何实现的呢?
Firefox3.6 中的实现
Firefox3.6源码中的实现:
Firefox 3.6:/content/html/content/src/nsHTMLTableElement.cpp
C/C++ code
非IE中margin 影响 align=”center”
例子:
HTML code
各浏览器中的截图:
IE
Firefox/Chrome/Safari/Opera
可能在Firefox/Chrome/Safari/Opera中,都是用 margin:auto实现的居中,但是看计算后的值却不是auto……
解决方案
见:http://www.w3help.org/zh-cn/causes/RX8004#solutions 解决方案部分
原文
地址:http://www.w3help.org/zh-cn/causes/RX8004
更多兼容性问题:
【分享】浏览器兼容性问题目录
根据HTML4.01 规范中的描述,TABLE 元素的 align 属性,这个属性可以取 'left'、'center'、'right' 三个值。它指定了 TABLE 元素在文档中的位置,三个属性值分别对应 '居左'、'居中'、'居右',描述的是 TABLE 元素自身相对于其父容器的对齐方式。
同时,align 属性已被废弃。不赞成使用。
关于 TABLE 元素的 align 属性 的详细信息,请参考 HTML4.01 规范 11.2.1 The TABLE element 中的内容。
在上一个帖子中:【分享】align 在各浏览器中的实现差异及引起的问题
,已经大致的介绍了关于它的知识,以及引起的兼容性问题。也介绍 了 align=’left’ align=’right’的实现。那么,align=”center” 又是如何实现的呢?
Firefox3.6 中的实现
Firefox3.6源码中的实现:
Firefox 3.6:/content/html/content/src/nsHTMLTableElement.cpp
C/C++ code
static void MapAttributesIntoRule(const nsMappedAttributes* aAttributes, nsRuleData* aData){ ... const nsAttrValue* value = aAttributes->GetAttr(nsGkAtoms::align); if (value && value->Type() == nsAttrValue::eEnum) { if (value->GetEnumValue() == NS_STYLE_TEXT_ALIGN_CENTER || value->GetEnumValue() == NS_STYLE_TEXT_ALIGN_MOZ_CENTER) { nsCSSRect& margin = aData->mMarginData->mMargin; if (margin.mLeft.GetUnit() == eCSSUnit_Null) margin.mLeft.SetAutoValue(); if (margin.mRight.GetUnit() == eCSSUnit_Null) margin.mRight.SetAutoValue(); } } ... }注意 margin.mLeft.SetAutoValue(); 和 margin.mRight.SetAutoValue();
非IE中margin 影响 align=”center”
例子:
HTML code
<div id="d" style="width:300px; height:50px; background:thistle;"> <table id="t" cellspacing="0" style="width:200px; border:3px solid black; " align="center"> <tr> <td style="background:wheat;">Text Text Text Text Text Text</td> </tr> </table> </div>上面代码中的 align=”center”的TABLE,同时设置了 margin 属性。
各浏览器中的截图:
IE
Firefox/Chrome/Safari/Opera
可能在Firefox/Chrome/Safari/Opera中,都是用 margin:auto实现的居中,但是看计算后的值却不是auto……
解决方案
见:http://www.w3help.org/zh-cn/causes/RX8004#solutions 解决方案部分
原文
地址:http://www.w3help.org/zh-cn/causes/RX8004
更多兼容性问题:
【分享】浏览器兼容性问题目录
作者: WebAdvocate 发布时间: 2010-09-10
收藏了....
有时间再看...呵呵!
有时间再看...呵呵!
作者: QDwangle 发布时间: 2010-09-10
自卫队柑桔硒鼓村
作者: EndLess_Never 发布时间: 2010-09-10
不错不错滴。。
作者: suchiheng6 发布时间: 2010-09-10
作者: mmm306306 发布时间: 2010-09-10
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28