小提琴:http: //jsfiddle.net/wG9vu/1/
总而言之,我有一个固定宽度的 div,<p> and <img>
里面有几个标签。这些标签的长度基于生成的输入。除了左侧页面的最底部是“星星和莱茵石”魅力之外,所有这些都完全按照预期工作。该魅力在 IE 上完美呈现,如下所示:
但是在 chrome、firefox、opera 和 safari 上,我们得到了这个:
相关 div 的 html 如下所示:
<div class="charm_thumbnail">
<img src="http://www.ddbeadworks.com/static/media/images/charms/CMSsv006.jpg" alt="Star and Rhinestone" />
<p class="charm_list_name">Star and Rhinestone</p>
<p class="charm_list_desc">Silver-tone 1/4"</p>
<p id="charm_list_price">$5.00</p>
<form method="post" action="." class="cart">
<div>
<blah blah crap related to the add to cart button>
</div>
</form>
</div>
标题(charm_list_name)在布局中占了一行,而描述则占了两行。IE 显示正确:标题适合一行,即使描述只有一行,也适当保留了空间。
在 chrome 和其他中,标题下降到两行,因此保留的描述空间保留,最终结果是将添加到购物车按钮推出框。
我尝试了一些浏览器重置 css 无济于事:除了 IE 之外,标题仍然持续到两行。
如您所见,“星星和莱茵石”标题在 IE 中完全填充了可用空间,没有多余的像素。我注意到我-webkit-margin-before: 1em; -webkit-margin-after: 1em;
以为我找到了问题,但没有这样的运气。我将它们都设置为 0px,但什么也没发生。
有什么想法可以让 IE 和所有其他浏览器显示相同的宽度吗?我在哪里丢失像素?
这是相关的CSS:
html {
font: 100%/1.4 Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
}
div.charm_thumbnail {
text-align:center;
float:left;
border-style: solid;
border-width: 1px;
border-color: #b78e18;
padding: 3px;
margin: 7px 4px;
height: 210px;
width: 120px;
}
.charm_sold_out {
position: absolute;
background: #841075;
color: white;
margin: 10px 0px 0px 6px;
padding: 4px 16px;
font-size: 14px;
}
.charm_thumbnail > img {
margin-bottom: 10px;
}
.charm_thumbnail > p {
max-width: 114px;
}
.charm_thumbnail > .charm_list_name {
text-align: left;
font-size: 11px;
margin: 0px 3px;
}
.charm_thumbnail > .charm_list_desc {
text-align: left;
font-size: 11px;
height: 30px;
margin: 0px 3px;
}
.charm_thumbnail > #charm_list_price {
text-align: left;
font-weight: bold;
color: #b78e18;
margin: 0px 3px;
}
#add_charm_to_cart {
margin-top: 10px;
}
重要编辑: 我包含了我的 html css 行,因为我认为它与不同浏览器上的字体缩放有关。任何人都知道这是否会导致这样的事情?向上取整而不是向下取整是因为100%/1.4
?
注意:在小提琴中,我没有重现完整的错误,但这没关系。重要的是,在 chrome 和其他人中,标题跑到两行,这就是问题所在。