Estou tendo um pequeno problema. Estou usando o FireFox 3.6 e tenho a seguinte estrutura DOM:
<div class="view-row">
<div class="view-type">Type</div>
<div class="view-name">Name</div>
</div>
E o seguinte CSS:
.view-row {
width:100%;
display:table-row;
}
.view-name {
display: table-cell;
float:right;
}
.view-type {
display: table-cell;
}
Se eu tirar o display:table-row
ele aparecerá corretamente, view-row
mostrando uma largura de 100%. Se eu colocá-lo de volta, ele encolhe. Coloquei isso no JS Bin:
O que está acontecendo?
Resposta testada:
No css .view-row, altere:
para:
e se livrar de "flutuar" . Tudo funcionará conforme o esperado.
Como foi sugerido nos comentários, não há necessidade de uma mesa de envolvimento. CSS permite omitir níveis da estrutura da árvore (neste caso, linhas) que estão implícitos. O motivo pelo qual seu código não funciona é que "largura" só pode ser interpretada no nível da tabela, não no nível da linha da tabela. Quando você tem uma "mesa" e uma "célula da mesa" diretamente abaixo, elas são interpretadas implicitamente como se estivessem em uma fileira.
Exemplo de trabalho:
com css:
fonte
<table><td></td></table>
que, por si só, seria uma marcação HTML inválida de acordo com o W3C. Embora seja validado, por que você sugeriria dizer ao navegador para simular essa marcação?Observe que, de acordo com as especificações CSS3, você NÃO precisa envolver seu layout em um elemento de estilo de tabela. O navegador inferirá a existência de elementos contidos, se eles não existirem.
fonte
dar na
.view-type
aulafloat:left;
ou excluir ofloat:right;
de.view-name
editar: envolva seu div
<div class="view-row">
com outro div, por exemplo<div class="table">
e defina o seguinte css:
Você deve usar a estrutura da tabela para obter resultados corretos.
fonte
Você pode aninhar a célula da tabela diretamente na tabela. Você deve ter uma mesa. Iniciar a linha da tabela não funciona. Experimente com este HTML:
fonte