Хорошо, есть трюк, который позволяет на самом деле создать сетку квадратов с помощью flexbox
- может быть, вы можете принять ее, чтобы React Native.
Пример:
Сначала я создал flexbox
с 3 коробки в ряд, который оборачивает на несколько строк:
.flexbox {
list-style: none;
display: flex;
flex-wrap: wrap;
}
.flexbox > * {
margin: 5px;
text-align: center;
border: 1px solid red;
flex-basis: calc(33.33% - 10px);
}
Примечание flex-basis: calc(33.33% - 10px)
, что позволяет сохранить 3 коробки в ряд - измените это, чтобы разместить больше ящиков. (10px
здесь двойник поля).
И вот трюк, который делает их квадратами - сделать псевдо inline-block
элемент, который имеет padding-bottom: 100%
. (Если вы обивка/маржу в процентах, то он всегда берется по ширине)
.flexbox > *:before {
content: '';
padding-bottom: 100%;
height: 100%;
display: inline-block;
vertical-align: middle;
}
Позвольте мне знать ваше мнение по этому вопросу. Благодаря!
body {
padding: 0;
margin: 0;
}
* {
box-sizing: border-box;
}
.flexbox {
list-style: none;
display: flex;
flex-wrap: wrap;
}
.flexbox > * {
margin: 5px;
text-align: center;
border: 1px solid red;
flex-basis: calc(33.33% - 10px);
}
.flexbox > *:before {
content: '';
padding-bottom: 100%;
height: 100%;
display: inline-block;
vertical-align: middle;
}
<body>
<div class="flexbox">
<div>some text here</div>
<div>some text here</div>
<div>some text here</div>
<div>some text here</div>
<div>some text here</div>
<div>some text here</div>
<div>some text here</div>
<div>some text here</div>
</div>
</body>
Dimension является то, что я делаю сейчас, чтобы увеличить площади, но мне казалось, неправильный подход для расчета фиксированных размеров на основе ширины экрана и высоту. – Ronnie
Если вы посмотрите на комментарии, которые я написал в ответ на @ kukkuz, вы можете попробовать с помощью свойства 'flexBasis', которое находится на 0.34.0-rc, но похоже, что вам все равно придется вручную измерьте 33% ширины минус какой-то запас независимо от того, что. В этом случае нет ничего плохого в том, чтобы измерять размеры вручную, и в (в основном родном) мобильном измерении измерений - очень распространенная практика. – rclai
@ Ronnie, не могли бы вы поделиться кодом того, как вы делаете измерения? Может быть, есть более простой способ сделать вычисления. – rclai