У меня есть html-код для создания нескольких небольших ящиков, и у этого поля есть имя, данное от object(graphdata)
.
<div ng-repeat="a in graphdata" class="inline">
<div class="legend-box"style="background-color:{{a.color}};">
</div>
<p class="legend-name">
{{a.projects}}
</p>
</div>
</div>
Мне нужно выровнять эти поля в строках, одна строка должна содержать только 2 поля с именем. Я сделаю демо:
[] box1 [] box2
[] box3 [] box4
[] box5 [] box6
[] указывают прямоугольник и box1, поле 2,... - это имена полей. проблема заключается в использовании ng-repeat. Как это сделать?
.inline {
display: inline-block; /*This is the inline, but different*/
width: 50%; /*You may add less, to accommodate margins*/
box-sizing: border-box; /*Gets rid of issues with paddings*/
}
Вы должны установить фиксированную ширину и высоту в классы inline и legend-box.
Чтобы сделать его отзывчивым, вам также необходимо определить эти классы для разных медиа-запросов.
Когда вы отметили вопрос с помощью ionic-framework
, я опишу свой ответ с помощью функций Ionic framework.
В документации Ionic вы можете найти примеры использования макета сетки.
В качестве возможного решения вы можете сделать это так:
<div class="row">
<div ng-repeat="a in graphdata" class="col col-50">
<div class="legend-box"style="background-color:{{a.color}};"></div>
<p class="legend-name">{{a.projects}}</p>
</div>
</div>
Чтобы сохранить свои div и не использовать ul и lis, вы можете использовать Flex-box!
https://css-tricks.com/snippets/css/a-guide-to-flexbox/
Но имейте в виду, потому что он доступен только для молодого браузера!
Вы можете сделать так:
.parent {
display: flex;
align-content: flex-start;
}
.child {
width: 50%;
}
Надеюсь, это поможет!
Используйте ul li вместо div. И установите свойство css в ul column-count:2
.
Или вы можете float:left
и width:50%
каждого div. Его установят divs два столбца.