flex-basis
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015.
Resumen
La propiedad de CSS flex-basis
especifíca la base flexible, la cual es el tamaño inicial de un elemento flexible. Ésta propiedad determina el tamaño de una caja de contenidos a no ser que se haya especificado de otra forma usando box-sizing
.
Valor inicial | auto |
---|---|
Applies to | flex items, including in-flow pseudo-elements |
Heredable | no |
Percentages | refer to the flex container's inner main size |
Valor calculado | as specified, but with relative lengths converted into absolute lengths |
Animation type | a length, percentage or calc(); |
Sintaxis
/* Especificar <'width'> */
flex-basis: 10em;
flex-basis: 3px;
flex-basis: auto;
/* Palabras clave de dimensionamiento intrínseco */
flex-basis: fill;
flex-basis: max-content;
flex-basis: min-content;
flex-basis: fit-content;
/* Tamaño automático basado en el contenido del elemento flexible */
flex-basis: content;
/* Global values */
flex-basis: inherit;
flex-basis: initial;
flex-basis: unset;
Valores
width
-
Definido por un número seguido de una unidad absoluta tal como
px
,mm
opt
, o un porcentaje del tamaño principal de un contenedor flexible padre. Los valores negativos no son válidos. content
-
Indica el dimensionamiento automático, basado en el contenido del elemento flexible.
Nota: Tenga en cuenta que éste valor no fue presentado en el lanzamiento inicial del Diseño de Caja Flexible, así que no será soportado por algunas implementaciones antiguas. El efecto equivalente puede tenerlo usando
auto
junto con un tamaño principal (width o height) en auto.Nota: Breve historia
- Originalmente, "flex-basis:auto" significa "observa mi propiedad width o height".
- Después, flex-basis:auto fue cambiado a automatic-sizing, y fue introducido "main-size" como palabra clave "observa mi propiedad width o height". Ésto fue implementado en bug 1032922.
- Después, ese cambio fue revertido en bug 1093316, y nuevamente "auto" significa "observa mi propiedad width o height"; y se está introduciendo una nueva palabra clave 'content' para provocar un dimensionamiento automático. (Error 1105111 en Firefox incluye la inclusión de dicha palabra clave).
Sintaxis Formal
flex-basis =
content |
<'width'>
<width> =
auto |
<length-percentage [0,∞]> |
min-content |
max-content |
fit-content( <length-percentage [0,∞]> ) |
<calc-size()> |
<anchor-size()>
<length-percentage> =
<length> |
<percentage>
<calc-size()> =
calc-size( <calc-size-basis> , <calc-sum> )
<anchor-size()> =
anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )
<calc-size-basis> =
<intrinsic-size-keyword> |
<calc-size()> |
any |
<calc-sum>
<calc-sum> =
<calc-product> [ [ '+' | '-' ] <calc-product> ]*
<anchor-name> =
<dashed-ident>
<anchor-size> =
width |
height |
block |
inline |
self-block |
self-inline
<calc-product> =
<calc-value> [ [ '*' | '/' ] <calc-value> ]*
<calc-value> =
<number> |
<dimension> |
<percentage> |
<calc-keyword> |
( <calc-sum> )
<calc-keyword> =
e |
pi |
infinity |
-infinity |
NaN
Ejemplo
HTML
<ul class="container">
<li class="flex flex1">1: flex-basis test</li>
<li class="flex flex2">2: flex-basis test</li>
<li class="flex flex3">3: flex-basis test</li>
<li class="flex flex4">4: flex-basis test</li>
<li class="flex flex5">5: flex-basis test</li>
</ul>
<ul class="container">
<li class="flex flex6">6: flex-basis test</li>
</ul>
CSS
.container {
font-family: arial, sans-serif;
margin: 0;
padding: 0;
list-style-type: none;
display: flex;
flex-wrap: wrap;
}
.flex {
background: #6ab6d8;
padding: 10px;
margin-bottom: 50px;
border: 3px solid #2e86bb;
color: white;
font-size: 20px;
text-align: center;
position: relative;
}
.flex:after {
position: absolute;
z-index: 1;
left: 0;
top: 100%;
margin-top: 10px;
width: 100%;
color: #333;
font-size: 18px;
}
.flex1 {
flex-basis: auto;
}
.flex1:after {
content: "auto";
}
.flex2 {
flex-basis: -webkit-max-content;
flex-basis: -moz-max-content;
flex-basis: max-content;
}
.flex2:after {
content: "max-content";
}
.flex3 {
flex-basis: -webkit-min-content;
flex-basis: -moz-min-content;
flex-basis: min-content;
}
.flex3:after {
content: "min-content";
}
.flex4 {
flex-basis: -webkit-fit-content;
flex-basis: -moz-fit-content;
flex-basis: fit-content;
}
.flex4:after {
content: "fit-content";
}
.flex5 {
flex-basis: content;
}
.flex5:after {
content: "content";
}
.flex6 {
flex-basis: -webkit-fill-available;
flex-basis: -moz-available;
flex-basis: fill;
}
.flex6:after {
content: "fill/-webkit-fill-available/-moz-available";
}
Resultados
Especificaciones
Specification |
---|
CSS Flexible Box Layout Module Level 1 # flex-basis-property |
Compatibilidad con navegadores
BCD tables only load in the browser