css - 多行设置在 IE 中不起作用

标签 css html

我的 CSS 有问题。
我有一个非常简单的设置。 2 个 div,每个包含 3 个按钮。我希望它们每个占用 1 行,所以它是 2 行,每行有 3 个按钮。

这也是 Chrome 所做的,但 IE9 将它们全部放在一行中,甚至还改变了其中一个按钮的位置。

我有以下 HTML:

<div id="HelpCodesControl">
    <div class="ButtonRow">
        <button id="HelpCode_None" title="None" />
        <button id="HelpCode_Operator" title="Operator" />
        <button id="HelpCode_Maintenance" title="Maintenance" />
    </div>

    <div class="ButtonRow">
        <button id="HelpCode_Quality" title="Quality" />
        <button id="HelpCode_Warehouse" title="Warehouse" />
        <button id="HelpCode_Setup" title="Setup" />
    </div>
</div>

还有我的 CSS:

#HelpCodesControl {
    height: 100%;
    width: 100%;
    background-color: cadetblue;
}
.ButtonRow {
    background-color: cornflowerblue;
    display: inline-block;
    width: 100%;
}
.ButtonRow button {
    height: 48px;
    width: 100px;
}

我这里有我的示例,它的工作方式与我在 Chrome 中的想法相同,但在 IE9 中却不行:http://jsfiddle.net/M96r3/

那我做错了什么?为什么 IE9 不像 Chrome 那样将我的按钮显示为两行?

最佳答案

HTML 中存在结构错误:按钮未正确关闭。

<button id="HelpCode_None" title="None" />

应该是

<button id="HelpCode_None" title="None"></button>

就像现在一样,浏览器只能看到六个开始标签而没有结束标签,它们原则上将按钮嵌套在彼此内部(尽管没有浏览器那样显示它们;尽管有些浏览器只显示 2 个按钮。不同的浏览器响应不同错误)。

在 XHTML 中,您可以避免这种情况 - 毕竟它是格式良好的 XML - 但强烈不鼓励这样做,因为它会给尝试以 HTML 模式显示 XHTML 的浏览器带来麻烦。仅对 void 元素使用自闭合标签!

这是一个 updated fiddle修正了 HTML,这表明 IE 和其他浏览器之间的显示没有显着差异。

关于css - 多行设置在 IE 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18374385/

相关文章:

javascript - 如何在 css/html/javascript 中为我的文本添加边框

javascript - js代码之间的冲突[navbar]

html - div对齐问题

html - 绝对定位 HTML 元素,但它的 100% 宽度是父元素的宽度

css - Bootstrap 导航向左推/向右推

html - CSS flexbox - 有更好的方法吗?

jquery - 使用 jQuery 添加每个匹配元素的高度

javascript - 如何在元素数组上链接 jQuery addClass() 和 removeClass()

css - 水平 div 相互重叠?

jQuery Draggable 和 Resizable 冲突