怎么可以防止它的内容增加flex div的宽度?

时间:2014-06-15 10:52:43

标签: html css flexbox

我已经创建了一个带有flex的嵌套div,我希望在增长和缩小时遵循flex规则,但是当内部文本或内容变长时,div会变得太长。在这个小提琴中,我用&#34标记了它;这是一个错误" ,你可以看到这个div中的文本比其他文本更长,而且我的父文件增长了。我想要。我设置flex: 1 1 auto;,但我不知道需要改变的地方。任何建议表示赞赏。

小提琴:http://jsfiddle.net/QMaster/JZHag/

1 个答案:

答案 0 :(得分:3)

正如我在评论fiddle中发布的那样,我使用了静态最大宽度,因为我相信这是您案例的好方法。

<强> CSS

html, body {
    direction: rtl;
    font-family: 'Times New Roman';
}

.WholeDiv{
    margin-right: 20px;
    margin-left: 20px;
    background-color: #ffffff;
    border: 2px solid #e8e8e8;
}

.mainContainer{

    display: -webkit-box;
    display: -moz-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;

    -webkit-box-direction: normal;
    -moz-box-direction: normal;
    -ms-flex-direction: row;
    -webkit-flex-direction: row;
    flex-direction: row;

    background-color: blue;
    min-width: 512px;

    height: 232px;
    line-height: 232px;

    z-index: 999;

    text-align: center;
    top: 0px;
    width: 100%;
}

.mainContainer .firstContent {
    flex: 1 1 auto; 
    background: green;
    overflow: hidden;
    min-width: 140px;
    text-align: right; 
}

.mainContainer .secondContent {
    width: 232px;
    min-width: 232px;
    background-color: aqua;
}

.mainContainer .thirdContent {
    flex: 1 1 auto; 
    background-color: red;
    overflow: hidden;
    min-width: 140px;
    text-align: left;
}

.mainContainerVert{

    display: -webkit-box;
    display: -moz-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;

    -webkit-box-orient: vertical;
    -moz-box-orient: vertical;
    -ms-flex-direction: column;
    -webkit-flex-direction: column;
    flex-direction: column;


    -webkit-box-align: center;
    -moz-box-align: center;
    -ms-flex-align: center;
    -webkit-align-items: center;
    align-items: center;


    -webkit-box-pack: space-around;
    -moz-box-pack: space-around;
    -ms-flex-pack: space-around;
    -webkit-justify-content: space-around;
    justify-content: space-around;

    -webkit-flex-flow: column no-wrap;
    flex-flow: column no-wrap;    



    -webkit-align-content: center;
    align-content: center;

    background-color: blue;
    /*min-width: 100px;*/
    height: 232px;
    line-height: 232px;
    text-align: center;
    max-width: 100%;
}

.mainContainerVert .dvRow{
    flex: 1 1 auto;
    background-color: black;
    color: white;
    height: 32px;
    line-height: 32px;
    max-height: 32px;
    width: 98%;
    max-width: 300px;
    /*min-width: 100px;*/
    text-align: center;   
    white-space:nowrap;
    display: flex;
}

SPAN{
    /*flex: 1 1 auto;*/
    background-color: orange;
    text-align: center;
    text-overflow: ellipsis;
    width: 300px;
    max-width: 300px;
    /*min-width: 100px;*/
    overflow: hidden;
    /*white-space: no-wrap;*/
    margin: 0 auto;
}

fiddle

同时从span flex: 1 1 auto;中删除。我认为没有必要。