2017-01-16 2 views
0

Я использую Angular для создания списка флажков, определяющих, видны ли некоторые данные.Строки, которые плавают вверх

enter image description here

$scope.data = [ 
    {name: "Data1", shown: true}, 
    {name: "Data2", shown: true}, 
    {name: "Data3", shown: true}, 
    {name: "Data4", shown: true}, 
    {name: "Data5", shown: true}, 
    {name: "Data6", shown: true} 
    ]; 

Эти данные отображаются на topbar, который имеет ограниченную высоту, таким образом, не будучи в состоянии соответствовать всему массиву данных.

<div class="contentBar"> 
    <div class="content" ng-repeat="item in data" ng-if="item.shown">{{item.name}}</div> 
</div> 

enter image description here

То, что я хочу достичь, это: в случае, если есть более чем в 4 видимых экземпляров данных, последние два должны быть помещены в другой вертикальный ряд, на правой стороне этой строки.

Вот небольшой демонстрационный плункер с этим футляром.

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

ответ

2

Вы можете использовать CSS Flexbox:

.contentBar { 
    display: flex; 
    flex-flow: column wrap; 
} 
2

вам нужно удалить высоту от .contentBar DIV, потому что вы применили статическую высоту и данные поступают динамически. Пожалуйста, измените ниже изменения в вашем стиле.css

.contentBar{ 
    margin-top: 1em; 
    background-color: black; 
    width: 30em; 
} 

.content { 
    color: red !important; 
    font-weight:bold; 
} 

Cheers dude.

+0

Это фактически отвечает на вопрос. – Rob

+0

Это не то, что я имел в виду в моем вопросе. Бар должен иметь фиксированную высоту, и содержимое должно обернуться вокруг него. Это мое плохое, однако, поскольку я был недостаточно ясен. Решение flexbox решило мою проблему. –

2

Элегантный способ, как добиться этого заключается в использовании гибкой коробки. См. Обновленный pluncker here.

Ключ Последние 3 правила CSS, которые были добавлены в contentBar:

.contentBar{ 
    margin-top: 1em; 
    background-color: black; 
    width: 30em; 
    height: 5em; 
    display: flex; 
    flex-direction: column; 
    flex-wrap: wrap; 
} 

Очень хорошее руководство для гибкой коробки можно найти на CSS tricks site.

Смежные вопросы