Pergunta

Em primeiro lugar, esta questão não é sobre elementos de bloco em colapso quando os seus filhos estão flutuando. Na verdade, a questão não tem nada a ver com compensação em tudo.

A questão é esta. Suponha que eu tenho uma série de divs flutuavam como:

<div class="column">Column 1</div>
<div class="column"></div>
<div class="column">Column 3</div>

Com css:

div.column { float: left; width: 200px; }

A coluna do meio entrará em colapso nas versões recentes do Firefox e Safari, embora aparentemente não IE7. O que eu quero é o comportamento IE7.

Eu percebo que pode adicionar um &nbsp; e que irá realizar o div aberto, mas que não funciona para mim neste caso, porque eu também tenho ter uma declaração como esta:

div.column input { width: 100% }

Eu tenho uma série de colunas que deitei em uma mesa-como formato, com certas condições que causam os campos de entrada a desaparecer. O problema é quando a entrada desaparece o colapso de campo. Se eu adicionar um &nbsp; faz com que o div para embrulhar. Apenas a cabeça fora as questões iniciais:

  • Por que não usar uma tabela em vez disso? Porque eu estou usando Scriptaculous Ordenável para arrastar e soltar linhas, que não funciona com tabelas
  • Por que não usar uma largura de pixel mais curto para deixar espaço para um &nbsp;? Porque width: 100% é mais preciso entre os navegadores.
  • Por que eu não adicionar uma &nbsp; quando eu esconder a entrada I podem acabar recorrendo a isso, mas seria tipo de feio na JS, então eu estou esperando por uma melhor caminho.

Alguém tem alguma hacks inteligentes aqui? Uma vez que ambos Safari e Firefox se comportar dessa maneira Eu suponho que este é sancionado oficialmente comportamento. Onde está esse discutido nas especificações do W3C?

Foi útil?

Solução

Eh? você não deve apenas dar-lhe uma altura aleatória? você pode mostrar uma demo?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top