Tengo un pequeño problema. Estoy usando FireFox 3.6 y tengo la siguiente estructura DOM:
<div class="view-row">
<div class="view-type">Type</div>
<div class="view-name">Name</div>
</div>
Y el siguiente CSS:
.view-row {
width:100%;
display:table-row;
}
.view-name {
display: table-cell;
float:right;
}
.view-type {
display: table-cell;
}
Si me quito el display:table-row
aparecerá correctamente, view-row
mostrando un ancho del 100%. Si lo vuelvo a poner, se encoge. He puesto esto en JS Bin:
¿Que esta pasando?
Respuesta probada:
En el CSS .view-row, cambie:
a:
y deshacerse de "flotar" . Todo funcionará como se esperaba.
Como se ha sugerido en los comentarios, no es necesaria una mesa de envolver. CSS permite omitir niveles de la estructura de árbol (en este caso filas) que están implícitos. La razón por la que su código no funciona es que el "ancho" solo se puede interpretar a nivel de tabla, no a nivel de fila de tabla. Cuando tienes una "tabla" y luego "celdas de tabla" directamente debajo, se interpretan implícitamente como sentadas en una fila.
Ejemplo de trabajo:
con css:
fuente
<table><td></td></table>
que por sí solo sería un marcado HTML no válido según W3C. Si bien se validará, ¿por qué sugeriría decirle al navegador que imite este marcado?Tenga en cuenta que de acuerdo con la especificación CSS3, NO tiene que envolver su diseño en un elemento de estilo de tabla. El navegador inferirá la existencia de elementos contenedores si no existen.
fuente
dar en
.view-type
clasefloat:left;
o eliminar elfloat:right;
de.view-name
editar: envuelve tu div
<div class="view-row">
con otro div, por ejemplo<div class="table">
y establezca el siguiente CSS:
Debe utilizar la estructura de la tabla para obtener resultados correctos.
fuente
Puede anidar tabla-celda directamente dentro de la tabla. Debes tener una mesa. Comenzar con la fila de la tabla no funciona. Pruébelo con este HTML:
fuente