Hacer que un elemento flexible flote a la derecha
Tengo un
<div class="parent">
<div class="child" style="float:right"> Ignore parent? </div>
<div> another child </div>
</div>
El padre tiene
.parent {
display: flex;
}
Para mi primer hijo, simplemente quiero flotar el elemento a la derecha.
Y mis otros divs para seguir la regla flex establecida por el padre.
Es esto algo posible?
Si no, ¿cómo hago un float: right
bajo flex?
3 answers
No puede usar float
dentro de contenedor flexible y la razón es que la propiedad float no se aplica a las cajas de nivel flexible como puede ver aquí Fiddle
.
Así que si quieres posicionar el elemento child
a la derecha del elemento parent
puedes usar margin-left: auto
pero ahora el elemento child
también empujará otro div
a la derecha como puedes ver aquí Fiddle
.
Lo que puede hacer ahora es cambiar el orden de los elementos y establecer order: 2
en el elemento child
para que no afectar segundo div
.parent {
display: flex;
}
.child {
margin-left: auto;
order: 2;
}
<div class="parent">
<div class="child">Ignore parent?</div>
<div>another child</div>
</div>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-23 18:07:19
No necesitas flotadores. De hecho, son inútiles porque los flotadores son ignorados en flexbox.
Tampoco necesita posicionamiento CSS.
Hay varios métodos flex disponibles. auto
los márgenes han sido mencionados en otra respuesta.
Aquí hay otras dos opciones:
- Use
justify-content: space-between
y la propiedadorder
. - Use
justify-content: space-between
e invierta el orden de los divs.
.parent {
display: flex;
justify-content: space-between;
}
.parent:first-of-type > div:last-child { order: -1; }
p { background-color: #ddd;}
<p>Method 1: Use <code>justify-content: space-between</code> and <code>order-1</code></p>
<div class="parent">
<div class="child" style="float:right"> Ignore parent? </div>
<div>another child </div>
</div>
<hr>
<p>Method 2: Use <code>justify-content: space-between</code> and reverse the order of
divs in the mark-up</p>
<div class="parent">
<div>another child </div>
<div class="child" style="float:right"> Ignore parent? </div>
</div>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-19 21:28:40
.parent {
display: flex;
}
.child {
margin-left: auto;
order: 2;
}
<div class="parent">
<div class="child">Ignore parent?</div>
<div>another child</div>
</div>
Podemos prescindir del margen-izquierda
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-20 06:01:23