Ann*_*Ann 18 html css webkit html-table
在应用于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> </td>
<td class="set-width"><div class="box"></div></td>
</tr>
<tr>
<td> </td>
<td>unbroken</td>
</tr>
</table>
<h2>Table-Layout: Fixed</h2>
<table border="1" cellspacing="0" cellpadding="0" id="table-2">
<tr>
<td> </td>
<td class="set-width"><div class="box"></div></td>
</tr>
<tr>
<td> </td>
<td>unbroken</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
我能想到的方法有3种。
最简单的方法是添加仅由 Chrome 和 Safari 解释的样式表块,调整行为以考虑渲染问题。避免使用“@media screen and (-webkit-min-device-pixel-ratio:0)”,因为这会影响 Opera 和某些版本的 FF。使用“body:first-of-type”:
body:first-of-type td {
padding:5px 10px;
}
Run Code Online (Sandbox Code Playgroud)
您还可以拥有单独的样式表:
<link rel="stylesheet" type="text/safari" href="webkit-styles.css" />
<link rel="stylesheet" type="text/chrome" href="webkit-styles.css" />
Run Code Online (Sandbox Code Playgroud)
第三种选择是使用 Javascript。在脚本标记中,您可以使用 navigator.appName 和 navigator.appVersion 来识别浏览器并动态修复问题。