html - 有没有办法使所有浏览器上的 div 大小相同?

标签 html css internet-explorer firefox

有时需要 DIV 的特定大小以确保布局对齐,但通常似乎不可能调整 CSS 以确保它在所有主要浏览器中都能正确显示。

例如这个简单的JSFiddle显示了几个选项卡,这些选项卡选择了显示在选项卡下方的 div。为了使它看起来更像是您正在使用选项卡将部分拉到表面,它与部分略微重叠且没有下边框,因此看起来选项卡和部分是同一部分。

问题是选项卡的高度必须准确,否则幻觉就会被破坏。在这个例子中,标签在最新的 Firefox、Safari(最新的 PC 版本)和 Chrome 中是正确的大小,但在 Opera 中短了一个像素,因此它不会覆盖文本部分(详细信息 div)的顶部边框和两个像素在 IE 10 中很小,因此选项卡和主要部分之间实际上存在间隙。

我知道我可以创建一个单独的样式表,只为 IE 和 Opera 等加载,但我宁愿尽可能避免它,因为它会增加维护网站的工作量。

来自 JSFiddle 的 HTML:

<div class="product-details-page">
    <div class="details-tabs">
        <div class="tabs">
            <div class="description selected">Description</div>
            <div class="deliveryOptions">Delivery Options</div>
        </div>
        <div class="details">
            <div class="description show">A big description of a product. Might go over several lines and will be very "descriptive".</div>
            <div class="deliveryOptions">We just chuck it in Santa's bag when he isn't looking.. <br>Delivery is only once a year but it's FREE! ;)</div>
        </div>
    </div>
</div>

来自 JSFiddle 的 CSS

.product-details-page .details-tabs {
    margin-top: 15px;
}
.product-details-page .details {
    border: 1px solid #808080;
    padding: 5px;
}
.product-details-page .details-tabs .tabs > div {
    border: 1px solid grey;
    border-bottom: none;
    cursor: pointer;
    display: inline-block;
    padding: 5px;
    -moz-user-select: none;
    -ms-user-select: none;
    -webkit-user-select: none;
    user-select: none;
}
.product-details-page .details-tabs .tabs > div:hover {
    background-color: #FF0000;
    color: #FFFFFF;
}
.product-details-page .details > div {
    display: none;
}
.product-details-page .details > div.show {
    display: block;
}
.product-details-page .details-tabs .tabs {
    height: 26px;
}
.product-details-page .details-tabs .tabs .selected {
    background-color: #FFFFFF;
    color: #000000;
    -webkit-text-shadow: 0 0 7px #FF0000;
    text-shadow: 0 0 7px #FF0000;
}
body {
    font-family:"arial,?helvetica,?sans-serif";
    font-size: 12px;
}

最佳答案

尝试在选项卡上设置固定的 line-heightline-height 的默认值是特定于浏览器的,它可能会导致轻微的偏移。典型值为 1.2

事实上,您自己在评论中意识到了这一点 ;) 问题出在文本上,上面的 line-height 应该可以解决这个问题。

关于html - 有没有办法使所有浏览器上的 div 大小相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23633841/

相关文章:

javascript - 以同样的方式加载同一页面上两个不同div中的ajax内容

javascript - 为什么我的 $_POST 为空,但 file_get_contents ('php://input' ) 不是?

javascript - Youtube iFrame API getCurrentTime() 在 IE10 中始终返回 0

javascript - IE 不清除选择值

javascript - Opera 和 Internet Explorer 中的 JQuery 安全错误

javascript - jQuery UI 对话框的视频问题

html - 三列布局等高

css - 如何为特定的单个元素设置固定的字体大小/防止浏览器缩放?

php - 在 PHP 中使表彼此相邻显示

css - 如何从页面模板更改相同的页面/帖子 css 样式