¿Por qué el diseño de tabla: fijo que afecta el ancho del elemento primario?
Puede alguien explicar por qué midiv
contable-layout:fixed
está cambiando el ancho de su elemento padre body
en este caso) para que sea 100% cuando no debería ser 100% ya que está posicionado?
body {
border: 2px solid red;
height: 100vh;
margin:0;
padding: 0;
position: absolute;
}
.c{
display: table;
width: 80%; /* Any percentage value different from 0 */
table-layout:fixed;
outline: 2px solid blue;
}
<div class="c">d</div>
omo puede ver arriba, agreguetable-layout:fixed
obliga al cuerpo a ser de ancho completo Y el porcentajewidth
sobre eldiv
funcionará relativamente a lawidth
delbody
!
Este no es el caso con el fragmento a continuación, donde el comportamiento es de alguna manera lógico e intuitivo:
body {
border: 2px solid red;
height: 100vh;
margin:0;
padding: 0;
position: absolute;
}
.c{
display: table;
width: 80%;
/* table-layout:fixed; */
outline: 2px solid blue;
}
<div class="c">d</div>
Cómotable-layout:fixed
afecta el elemento padre, que se posiciona en este caso?
Como nota al margen, utilizando valores de píxeles conwidth
produce un resultado lógico:
body {
border: 2px solid red;
height: 100vh;
margin:0;
padding: 0;
position: absolute;
}
.c{
display: table;
width: 200px;
table-layout:fixed;
outline: 2px solid blue;
}
<div class="c">d</div>
También podemos tener un desbordamiento con eseextrañ comportamiento:
body {
margin:0;
position:relative;
width:300px;
border-top:20px solid green;
}
.container {
border: 2px solid red;
height: 100vh;
position: absolute;
}
.c {
display: table;
width: 120%;
table-layout: fixed;
outline: 2px solid blue;
animation:change 2s linear infinite alternate;
}
@keyframes change {
from{width:1%;}
to {width:150%}
}
<div class="container">
<div class="c">d</div>
</div>