CSS flexbox ile sabit genişlikli sütun nasıl ayarlanır


149

CodePen: http://codepen.io/anon/pen/RPNpaP .

Yan yana görünümünde kırmızı kutu sadece 25 em geniş olmasını istiyorum - Bu medya sorgusu içinde CSS ayarlayarak bunu elde etmeye çalışıyorum:

@media all and (min-width: 811px) {...}

için:

.flexbox .red {
  width: 25em;
}

Ama bunu yaptığımda, bu olur:

http://i.imgur.com/niFBrwt.png

Ne yaptığımı biliyor musun?

Yanıtlar:


335

Bunun yerine flexveya flex-basisözelliğini kullanmalısınız width. MDN hakkında daha fazla bilgi edinin .

.flexbox .red {
  flex: 0 0 25em;
}

flexCSS özelliği kullanılabilir alanı dolduracak şekilde Boyutlarını değiştirmek için bir esnek öğenin yeteneğini belirten bir kısaltmadır özelliktir. Bu içerir:

flex-grow: 0;     /* do not grow   - initial value: 0 */
flex-shrink: 0;   /* do not shrink - initial value: 1 */
flex-basis: 25em; /* width/height  - initial value: auto */

Basit bir demo, ilk sütunun 50pxsabit genişliğe nasıl ayarlanacağını gösterir .


Bkz güncellenen codepen sizin koduna göre.


22
Geçersiz kılmam gerektiğini fark etmedim flex-shrink, teşekkürler, iyi cevap.
Paul Redmond

Esnek temel alınamadı
Roman

1

Herkesin yüzdeleri (%) olan duyarlı bir flexbox'a sahip olmak istemesi durumunda medya sorguları için çok daha kolaydır.

flex-basis: 25%;

Test sırasında bu çok daha yumuşak olacaktır.

// VARIABLES
$screen-xs:                                         480px;
$screen-sm:                                         768px;
$screen-md:                                         992px;
$screen-lg:                                         1200px;
$screen-xl:                                         1400px;
$screen-xxl:                                        1600px;

// QUERIES
@media screen (max-width: $screen-lg) {
    flex-basis: 25%;
}

@media screen (max-width: $screen-md) {
    flex-basis: 33.33%;
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.