html - Internet Explorer 9 中宽度未知的绝对定位元素居中

标签 html css

好吧,我已经苦思冥想了好几个小时,但无法在 IE9 中正常运行(我不关心以前的版本)。我应该提一下,我正在用 HTML5 编写代码,并使用适用于 IE 的 HTLM5Shiv 回退。

我正在制作一个 Sequence.js 响应式 slider 。由于背景图像, slider 是全宽的,但它有一个最大宽度为 940 像素的内容包装器 div,并且它位于页面中央。

            <div id="slider">
                <ul class="sequence-canvas">
                    <li>
                        <div class="slider-bg-img slide-1"></div> <!-- every slide has a different background image that has full 100% width -->
                        <div class="slider-wrapper">
                            CONTENTS GO HERE
                        </div
                    </li>
                    ...
                </ul>
            </div>

#slider div 以及所有#slider ul li 元素的宽度均为 100%。 li 元素也将 text-align 属性设置为居中。

#slider {
    position: relative;
    overflow: hidden;
    width: 100%;
    margin: 0 auto;
    position: relative;
    height: 500px;
}
#slider > .sequence-canvas {
    height: 100%;
    width: 100%;
}
#slider > .sequence-canvas > li {
    position: absolute;
    width: 100%;
    height: 100%;
    text-align: center;
}
#slider > .sequence-canvas li > * {
    position: absolute;
}

现在问题出在 div.slider-wrapper 上,我希望它的最大宽度为 940px - 它没有定义宽度,因为它应该在较小的设备上响应,我不想要一千媒体查询。我还希望它以页面为中心。但是 Sequence.js slider (如您在上面所见)要求 li 元素的所有第一个子元素都是绝对定位的。我已设法在所有浏览器中将此 div 居中,但它在 IE9 中不起作用(即使我在父 div 上设置了“text-align: center”)。

.slider-wrapper {
    max-width: 940px;
    margin-left: auto;
    margin-right: auto;
    left: 0;
    right: 0;
}

在 IE9 中有解决这个问题的方法吗?在 JSFiddle 上:http://jsfiddle.net/Q5YYb/

最佳答案

在 IE9 中有效的是 this fiddle .

它改变了div的样式如下:

.slider-wrapper {
    max-width: 300px;
    margin-left: -150px;
    left: 50%;
    right: 0;
    background: #999999;
}

你能用它吗?当窗口小于 300 像素时,它确实会改变行为,但我不确定在这种情况下你想做什么。对不起。

关于html - Internet Explorer 9 中宽度未知的绝对定位元素居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20984506/

相关文章:

javascript - 使用 javascript 填充表格抓取页面

javascript - 在悬停时显示具有模糊/渐变边缘的图像部分

javascript - 如何将文本解析为 html javascript

html - 通过 CSS 向下移动水平线

CSS交替基于行的 float

html - 如何在动态 div 周围创建边框?

html - 我需要为此创建额外的 CSS 类吗?

javascript - 仅 getElementsByName?

java - 使struts 1.0文本框只读

html - 如何在标签和单选按钮之间添加空格? Bootstrap 4