Flexbox可防止移动设备缩小

时间:2016-02-02 16:40:52

标签: html ios css css3 flexbox

我有一个div,其中包含.quality div #infinite#title div的div。 .quality div的数量可能会根据可用的质量而变化。 #title div应该适合剩余的空间,如果没有空间则会被切断,但它永远不会缩小其他div。

这在桌面设备上运行良好但在Safari,Chrome和Firefox上无法在iOS上运行。

第一张照片是从桌面上的Firefox拍摄的,底部照片是在iOS 9.2.1上的Safari上拍摄的

如何防止.quality div缩小?

演示: http://beta.kida.al/theheartwantswhatitwants

<div id="title_quality">
    <div id="quality">
        <div style="display: inline-block;" id="hd720" class="quality">720p</div>
        <div style="display: inline-block;" id="hd1080" class="quality">1080p</div>
        <div id="hd1440" class="quality" style="display: none">1440p</div>
        <div id="hd2160" class="quality" style="display: none">2160p</div>
        <div style="display: block;" id="infinite" class="quality uninfinite">∞</div>
    </div>
    <div id="title">the heart wants what it wants, selena gomez</div>
</div>

CSS:

#title_quality {
    background: #f3f3f3;
    color: #f8008c;
    padding: 0 10px;
    display: flex;
    overflow: hidden;
}

#quality {
    display: flex;
}

.quality {
    display: inline-block;
    width: 40px;
    height: 40px;
    border-radius: 20px;
    font: 11px/40px "quicksand";
    background: #f3f3f3;
    color: #f8008c;
    text-align: center;
    cursor: pointer;
    margin: 4px 5px;
    transition: all .5s ease-in;
}

#title {
    font: 14px/48px "quicksand";
    white-space: nowrap;
    margin-left: auto;
}

Desktop

Safari iOS

2 个答案:

答案 0 :(得分:3)

添加了#quality {flex-shrink: 0}并且工作了。

答案 1 :(得分:0)

您可以通过向flex-shrink:0 div添加.quality来实现此目的:

<强> CSS

.quality {
    display: inline-block;
    width: 40px;
    height: 40px;
    border-radius: 20px;
    font: 11px/40px "quicksand";
    background: #f3f3f3;
    color: #f8008c;
    text-align: center;
    cursor: pointer;
    margin: 4px 5px;
    transition: all .5s ease-in;
    flex-shrink:0; /* <------- */
}

JsFiddle example

希望这有帮助!