在IE 10中推送到下一行的元素

时间:2013-10-04 17:17:29

标签: css

这适用于Firefox / Chrome,但在IE浏览器中,此滑块的红色滑块会碰到视口外的下一行。

绿色和红色两侧以及手柄都向左浮动。我已经尝试将300px的宽度应用到.stSlide,认为幻灯片的宽度可能会迫使红色部分被推到下一行,但这并没有解决它。

http://plnkr.co/edit/xqYBnz5BHLP844kXJXKs?p=preview

.ngSlideToggle {
    cursor: pointer;
    visibility: hidden;
    height: 28px;
}
.ngSlideToggle * {
    box-sizing: content-box;
}
.ngSlideToggle > input[type=checkbox] {
    display: none;
}
.ngSlideToggle > .stSlide {
    transition: all 0.2s ease-in-out;
}
.stSlide > .stOff,
.stSlide > .stOn,
.stSlide > .stHandle {
    display: block;
    float: left;
    font-family: Arial, Helvetica, sans-serif;
    line-height: 22px;
    font-size: 12px;
}
.stSlide > .stOff,
.stSlide > .stOn {
    padding: 4px 10px;

    color: #fff;
    text-align: center;
    white-space: nowrap;
    font-size: 11px;
    line-height: 18px;
    font-weight: bold;
    text-transform: uppercase;
    text-shadow: 0 1px #808080;
}
.stSlide > .stHandle {
    padding: 2px 1px 2px 0;
    min-width: 25px;
    background: #fdfdfd; /* Old browsers */
    background: -o-linear-gradient(top,  #fdfdfd 0%,#ebebeb 100%); /* Opera 11.10+ */
    background: linear-gradient(to bottom,  #fdfdfd 0%,#ebebeb 100%); /* W3C */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fdfdfd', endColorstr='#ebebeb',GradientType=0 ); /* IE6-9 */

    border: 1px solid #ADADAD;
    color: #c6c6c6;
    letter-spacing: -1px;
    text-align: center;
}
.stSlide > .stOn {
    background: #8ab056; /* Old browsers */
    background: -o-linear-gradient(top,  #8ab056 0%,#a2c46b 100%); /* Opera 11.10+ */
    background: linear-gradient(to bottom,  #8ab056 0%,#a2c46b 100%); /* W3C */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#8ab056', endColorstr='#a2c46b',GradientType=0 ); /* IE6-9 */
    border: 1px solid #88a75c;
    border-right: none;
    border-top-left-radius: 3px;
    border-bottom-left-radius: 3px;
}
.stSlide > .stOff {
    background: #d4786a; /* Old browsers */
    background: -o-linear-gradient(top,  #d4786a 0%,#e39080 100%); /* Opera 11.10+ */
    background: linear-gradient(to bottom,  #d4786a 0%,#e39080 100%); /* W3C */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#d4786a', endColorstr='#e39080',GradientType=0 ); /* IE6-9 */
    border: 1px solid #bd6e61;
    border-left: none;
    border-top-right-radius: 3px;
    border-bottom-right-radius: 3px;
}

1 个答案:

答案 0 :(得分:0)

尝试使用以下代码替换.stSlide > .stOff, .stSlide > .stOn, .stSlide > .stHandle的CSS:

.stSlide > .stOff,
.stSlide > .stOn,
.stSlide > .stHandle {
    display: inline-block;
    font-family: Arial, Helvetica, sans-serif;
    line-height: 22px;
    font-size: 12px;
}

我在这里做了什么,我将display更改为inline-block并删除了float。 很难说这是否有效,因为对我来说,从一开始就一切正常 但它可能有所帮助。

修改

您还可以将此属性添加到.stSlide

overflow: visible;
white-space: nowrap;

确保跨距保持在同一条线上。