2017-02-24 77 views
0

我希望添加的项目环绕并添加到下一行,而不是滚动到右侧。项目不会被添加更多的项目与柔性包装属性

如果我不使用按钮添加列表项目,并且只是手动添加项目到li,项目将换行到下一行。我已使用flex-boxflex-wrap: wrap财产。

$('#clickMe').click(function() { 
 
    $('#ticketsDemosss').append($('<li class="flex-item">').text('sds')); 
 
});
.flex-container { 
 
    padding: 0; 
 
    margin: 0; 
 
    list-style: none; 
 
    -webkit-flex-direction: row; /* Safari */ 
 
    flex-direction: row; 
 
    flex-wrap: wrap; 
 
} 
 
.flex-item { 
 
    background: tomato; 
 
    padding: 5px; 
 
    width: 200px; 
 
    height: 150px; 
 
    margin-top: 10px; 
 
    line-height: 150px; 
 
    color: white; 
 
    font-weight: bold; 
 
    font-size: 3em; 
 
    text-align: center; 
 
} 
 
ul li{ 
 
    display: inline; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<dl id="viewbranchcontact-2"> 
 
<ul id="ticketsDemosss" class="flex-container"> 
 
<!-- add LI here --> 
 
</ul> 
 
</dl> 
 

 
<button id="clickMe">Click Me</button>

+0

如果你想'wrap'元素,新的生产线,使用'直列block'代替。 –

+0

你忘了在容器'ul'上添加'display:flex'。 –

+0

非常感谢我得到了这一个。另一个帮助。我该如何让按钮出现在最后一个元素上而不是最后一个。例如,当我点击最后一个元素时,会添加另一个元素。对不起,我真的很新使用CSS – darsh

回答

0

这是因为该元素是内联和存在的元素之间没有空格,所以它像一个长字处理。您可以...

  • 适用word-break: break-all
  • 使元素之间的李时珍inline-block,而不是(我在下面做的)
  • 加空格

$('#clickMe').click(function() { 
 
    $('#ticketsDemosss').append($('<li class="flex-item">').text('sds')); 
 
});
.flex-container { 
 
    padding: 0; 
 
    margin: 0; 
 
    list-style: none; 
 
    -webkit-flex-direction: row; /* Safari */ 
 
    flex-direction: row; 
 
    flex-wrap: wrap; 
 
} 
 
.flex-item { 
 
    background: tomato; 
 
    padding: 5px; 
 
    width: 200px; 
 
    height: 150px; 
 
    margin-top: 10px; 
 
    line-height: 150px; 
 
    color: white; 
 
    font-weight: bold; 
 
    font-size: 3em; 
 
    text-align: center; 
 
    display: inline-block; 
 
} 
 
ul li{ 
 
    display: inline; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<dl id="viewbranchcontact-2"> 
 
<ul id="ticketsDemosss" class="flex-container"> 
 
<!-- add LI here --> 
 
</ul> 
 
</dl> 
 

 
<button id="clickMe">Click Me</button>

+0

非常感谢。这工作! – darsh

+0

另一种帮助。我该如何让按钮出现在最后一个元素上而不是最后一个。例如,当我点击最后一个元素时,会添加另一个元素。对不起,我真的很喜欢使用CSS – darsh

+0

@darsh不用客气。你应该尝试自己弄明白,或者发表另外一篇文章,这对评论意义重大。 –

0

您需要添加display: inline-flex; box-sizing: border-box;。在flex-item

$('#clickMe').click(function() { 
 
    $('#ticketsDemosss').append($('<li class="flex-item">').text('sds')); 
 
});
.flex-container { 
 
    padding: 0; 
 
    margin: 0; 
 
    list-style: none; 
 
    -webkit-flex-direction: row; /* Safari */ 
 
    flex-direction: row; 
 
    flex-wrap: wrap; 
 
} 
 
.flex-item { 
 
    background: tomato; 
 
    padding: 5px; 
 
    width: 200px; 
 
    height: 150px; 
 
    margin-top: 10px; 
 
    line-height: 150px; 
 
    color: white; 
 
    font-weight: bold; 
 
    font-size: 3em; 
 
    text-align: center; 
 
    
 
    display: inline-flex; 
 
    box-sizing: border-box; 
 
} 
 
ul li{ 
 
    display: inline; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<dl id="viewbranchcontact-2"> 
 
<ul id="ticketsDemosss" class="flex-container"> 
 
<!-- add LI here --> 
 
</ul> 
 
</dl> 
 

 
<button id="clickMe">Click Me</button>

+0

这也工作。非常感谢。另一个帮助。我该如何让按钮出现在最后一个元素上而不是最后一个。例如,当我点击最后一个元素时,会添加另一个元素。对不起,我对使用CSS真的很陌生 – darsh