html – Webkit浏览器在table-layout中确定单元格宽度时不考虑填充:fixed

当应用表格布局时,我得到不同的结果:固定到表格上,并在单元格上使用填充。 IE和Firefox似乎通过将单元格宽度和填充添加在一起正常工作。 Chrome和Safari只能使用单元格宽度。我看到有一个错误的问题,但找不到任何工作。有人知道如何解决吗?

WebKit Bugzilla:https://bugs.webkit.org/show_bug.cgi?id=13339

table {
width:200px;
border-collapse:collapse;
}
#table-1 {
table-layout:auto;
}
#table-2 {
table-layout:fixed;
}
td {
padding:5px 10px;
}
td.set-width {
width:15px;
}
.box {
width:15px;
height:15px;
background-color:red;
}

<h2>Table-Layout: Auto</h2>
<table border="1" cellspacing="0" cellpadding="0" id="table-1">
<tr>
<td>&nbsp;</td>
<td class="set-width"><div class="box"></div></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>unbroken</td>
</tr>
</table>
<h2>Table-Layout: Fixed</h2>
<table border="1" cellspacing="0" cellpadding="0" id="table-2">
<tr>
<td>&nbsp;</td>
<td class="set-width"><div class="box"></div></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>unbroken</td>
</tr>
</table>

解决方法

有3种方法我可以想到。

最简单的方法是添加仅由Chrome和Safari解释的样式表块,调整行为以考虑渲染问题。避免使用“@media屏幕和(-webkit-min-device-pixel-ratio:0)”,因为这可能会影响Opera和某些版本的FF。使用“body:first-of-type”:

body:first-of-type td {
padding:5px 10px;
}

您也可以有单独的样式表:

<link rel="stylesheet" type="text/safari" href="webkit-styles.css" />
<link rel="stylesheet" type="text/chrome" href="webkit-styles.css" />

第三个选项是使用Javascript。在脚本标签中,您可以使用navigator.appName和navigator.appVersion来识别浏览器并动态修复问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


html5中section的用法
span标签和p标签的区别
jsp文件和html文件的区别是什么
span标签和div的区别
html颜色代码表大全
span标签的作用是什么
dhtml的主要组成部分包括什么
html编辑器哪个软件好用
span标签属于什么样式标签
html文件乱码怎么办
html怎么读取json文件
html文件打开乱码怎么恢复原状
html怎么链接外部css
html文件怎么保存到本地
html怎么链接css文件
html和css怎么连接
html和css怎么关联
html文件怎么保存到一个站点
html文件怎么写
html出现乱码怎么解决