这段HTML在除Safari之外的所有浏览器中在页面右侧呈现“TEST”一词,其中文本显示在页面的左侧:
<style>
#a{
min-width: 100%;
}
#b{
text-align: right;
}
</style>
<body>
<table id="a">
<tr>
<td id="b">
TEST
</td>
</tr>
</table>
</body>
可能导致这种情况的原因是什么,可行的解决方法是什么?
这是一个JSFiddle link
无法在我的Safari版本上复制它(我使用的是7.0版);但是你也可以通过CSS的位置属性来实现相同的效果。
尝试将CSS修改为:
#a{
min-width: 100%;
position:relative;
}
#b{
text-align: right;
position:absolute;
right:0;
}
对于Safari我们可以使用
min-width: 0;
因为Safari有一个min-width问题:auto; ||最小宽度:100%;
我怀疑(从一个类似但更复杂的情况)一些较旧的Safari版本忽略了仅被声明为id的CSS标签(就像你使用#a
和#b
一样)。
你能告诉我,如果这样做(对于有问题的浏览器)?
<style>
#a table{
min-width: 100%;
}
#b td{
text-align: right;
}
</style>
<body id="a">
<table>
<tr id="b">
<td>
TEST
</td>
</tr>
</table>
</body>
注意:这不是它应该如何编码,而是演示(或不演示)浏览器的工作方式。
我正在使用min-width: auto
,我正式改为min-width: 0
,事情很有效。另一个答案可能会提供更多的见解 - Safari and Chrome ignore min-width CSS propery