有关display:block、display:table-cell在IE、谷歌的兼容性问题

解决display:block与border兼容性问题
本文介绍了解决在不同浏览器(如IE与Chrome)中使用display:block属性结合border时出现的显示差异问题的方法。通过调整display属性值并采用外部包裹元素的方式,实现了跨浏览器的一致性布局。

对所有的块元素都没有意义,块元素的dispaly属性默认值为block,没必要再显式定义——除非你之前对块元素的display属性重新定义过。
===========================
多罗嗦一句:
display:block;比较常用于<a><span>这两个标签——因为这两个标签非块元素,如果不用display:block定义一下,那么定义width、height等和长宽相关的css属性时会发现完全不生效。你可以实际写几行简单代码感受一下。
===========================
是不是div里就没有必要写display:block呢?通常情况下是没有必要的。
常见的特殊情况:之前曾对div设置过display:hidden。

IE和谷歌浏览器在display的边框显示不一样的解决办法

做网页的人可能都曾经遇到这个问题,废话不多说,先看例子。

测试1:
<style>
.class2 {display:block; background-color:#e4f39e; width:150px; height:150px; border:10px solid green;}
</style>

<div class="class2">测试1</div>

测试结果:

IE和谷歌浏览器在display的边框显示不一样的解决办法
         
IE和谷歌浏览器在display的边框显示不一样的解决办法

在谷歌上运行的结果                在IE上运行的结果

可以很明显的看到,明明是同一段代码却产生不同的结果,这对我们这些做网站的人来说是很蛋疼的,这就是所谓的兼容性问题。

在测试1中,我们用了display:block 这个属性,在谷歌浏览器中,display:block和border这两个属性的width值和height值会相加,即:外框是10px X 2(左右边框各10像素)+内框150px,总大小就是10px X 2+150px=170px,宽就是170px,高就是170px。

而在IE浏览器中,display:block和border这两个属性的width值和height值会重叠在一起,总大小就会是原来的大小,即:宽150px,高150px。

那么,怎么解决这个兼容性问题呢?我们先假设测试1中,在IE上运行的才是我们想要的结果,要让在谷歌浏览器中运行的结果跟在IE上运行的结果一样。

步骤一,把display:block改为display:table-cell

测试2:
<style>
.class2 {display:table-cell; background-color:#e4f39e; width:150px; height:150px; border:10px solid green;}
</style>

<div class="class2">测试2</div>

测试结果:

IE和谷歌浏览器在display的边框显示不一样的解决办法
         
IE和谷歌浏览器在display的边框显示不一样的解决办法

在谷歌上运行的结果                在IE上运行的结果

可以看见,谷歌和IE中,该模块的高度一致了,都是150px,只是宽度不同,谷歌的宽度是170px,IE的宽度是150px。但是仅仅是高度一样是远远不够的,我们想要的最终结果是在两种浏览器中显示的结果保持一致,那么还要怎么做呢?

步骤二,在最外面套一个类然后定义宽度。

测试3:

<style>
.class1 {width:150px;}
.class2 {display:table-cell; background-color:#e4f39e; width:150px; height:150px; border:10px solid green;}


</style>

<div class="class1"><div class="class2">测试3</div></div>

测试结果:        

IE和谷歌浏览器在display的边框显示不一样的解决办法
         
IE和谷歌浏览器在display的边框显示不一样的解决办法

在谷歌上运行的结果                在IE上运行的结果


现在在两个浏览器上显示的是一样的了。方法是再声明一个类,定义你想要得到的宽度,在这里即是150px,然后套在最外层。定义宽度就好了,高度就没必要定义了。


以上结果适用于各种版本的IE浏览器

内容过长自动换行, <xsl:template match=“TableReport”> <fo:block > <fo:table text-align="left" border-collapse="collapse" letter-spacing="1px" width="100%" border-width="1pt" font-size="2.6mm"> <fo:table-column border-width="0pt" column-width="0.7cm"/> <fo:table-column border-width="0pt" column-width="0.8cm"/> <fo:table-column border-width="0pt" column-width="2.5cm"/> <fo:table-column border-width="0pt" column-width="1.5cm"/> <fo:table-column border-width="0pt" column-width="1cm"/> <fo:table-column border-width="0pt" column-width="1.6cm"/> <fo:table-column border-width="0pt" column-width="1.6cm"/> <fo:table-column border-width="0pt" column-width="3cm"/> <fo:table-column border-width="0pt" column-width="4.7cm"/> <fo:table-column border-width="0pt" column-width="0.8cm"/> <fo:table-column border-width="0pt" column-width="1.1cm"/> <fo:table-header> <fo:table-row height="5mm"> <fo:table-cell xsl:use-attribute-sets="border-cell-left-style"> <fo:block text-align="center">序号</fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="border-cell-left-style"> <fo:block text-align="center">组织</fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="border-cell-left-style"> <fo:block text-align="center">申请单号</fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="border-cell-left-style"> <fo:block text-align="center">类型</fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="border-cell-left-style"> <fo:block text-align="center">状态</fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="border-cell-style"> <fo:block text-align="center">工号</fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="border-cell-style"> <fo:block text-align="center">姓名</fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="border-cell-style"> <fo:block text-align="center">物料编码</fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="border-cell-style"> <fo:block text-align="center">物料描述</fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="border-cell-style"> <fo:block text-align="center">销数</fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="border-cell-style"> <fo:block text-align="center">原数量</fo:block> </fo:table-cell> </fo:table-row> </fo:table-header> <!--表明细--> <fo:table-body> <xsl:apply-templates select="TableRow"/> </fo:table-body> </fo:table> </fo:block> <fo:block id="end"/> </xsl:template> <xsl:template match="TableRow"> <fo:table-row height="5mm"> <fo:table-cell xsl:use-attribute-sets="border-cell-left-style"> <fo:block><xsl:value-of select="no"/></fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="border-cell-left-style"> <fo:block><xsl:value-of select="orgCode"/></fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="border-cell-left-style" font-size="2.2mm"> <fo:block><xsl:value-of select="requestNo"/></fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="border-cell-left-style"> <fo:block><xsl:value-of select="noteType"/></fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="border-cell-left-style"> <fo:block><xsl:value-of select="state"/></fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="border-cell-style"> <fo:block><xsl:value-of select="empNo"/></fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="border-cell-style" font-size="2.2mm"> <fo:block><xsl:value-of select="empName"/></fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="border-cell-style" font-size="2.2mm"> <fo:block><xsl:value-of select="itemCode"/></fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="border-cell-style" font-size="2.2mm"> <fo:block wrap-option="wrap" language="zh"><xsl:value-of select="itemDesc"/></fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="border-cell-style" font-size="2.2mm"> <fo:block wrap-option="wrap" language="zh"><xsl:value-of select="qty"/></fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="border-cell-style"> <fo:block><xsl:value-of select="holdQty"/></fo:block> </fo:table-cell> </fo:table-row> </xsl:template>
最新发布
08-02
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微笑点燃希望

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值