Pergunta

Estou mais de um programador do que um designer, e eu estou tentando abraçar <div>s em vez de usar tabelas, mas estou ficando preso.

Aqui está o que estou tentando fazer. Estou configurando uma página de pesquisa. Eu quero o texto de cada questão para sentar-se no topo da div azul, e envolvê-se é muito longo. Quero que todos os divs vermelhas para alinhar no canto superior direito da div container.

layout http://img528.imageshack.us/img528/4330/divsforsurveyop2. jpg

Aqui está o que eu comecei com, ele funciona bem, desde que o quadro é mais de 420 pixels de largura. Em seguida, a div vermelha avança para a próxima linha. Eu acho que pode ter abordado errado, talvez eu deveria estar flutuando coisas para a direita?

.greencontainer{
    width:100%;
    spacing : 10 10 10 10 ;
    float: left; 
}

.redcontainer{ 
    float: left; 
    width: 20px;
    padding: 2 0 2 0;
    font-size: 11px;
    font-family: sans-serif; 
    text-align: center; 
}

.bluecontainer{ 
    clear: both;
    float: left; 
    width: 400px; 
    padding: 2 2 2 10;
    font-size: 11px;
    font-family: sans-serif; 
    text-align: left; 
}
Foi útil?

Solução

Aqui está o que eu faria:

<div class="greencontainer">
  <div class="redcontainer">
    <input type="checkbox" />
  </div>
  <div class="bluecontainer">
    <label>Text about this checkbox...</label>
  </div>
</div>

com css:

.greencontainer{
   float:left;
   clear:left;
   width:100%;
 }
 .redcontainer{
   float:right;
   width:20px;
 }
 .bluecontainer{
   margin-right:20px;
 }

Os valores PS Enchimento deve sempre ter unidades, a menos que sejam zero.

Outras dicas

não flutuam nada, mas o recipiente vermelho e bóia-lo para a direita. Verifique se o HTML para os recipientes vermelhos é colocado antes do HTML para os recipientes azuis. Mantenha a largura estática no recipiente azul, e manter a sua clara:. Tanto no recipiente verde

não use clear: both no seu bluecontainer porque vai limpar qualquer elemento em ambos os lados (esquerdo e direito). e você deve fazer o flutuador redcontainer para a direita.

Você "clear: both" na div azul. Isso é o que eu acho que causa o problema.

http://www.barelyfitz.com/screencast/ html-formação / css / posicionamento / que teve algumas demonstrações úteis.

Muito pouco testando aqui, mas eu pensar você vai querer "clear: both;" em .greencontainer em vez de "float: left". Também remova "clear: both" de .bluecontainer

Veja mais informações em: http://www.quirksmode.org/css/clearing. html

Eu não acho que você precisa flutuar no recipiente verde em tudo, pois é a div que contém. Além disso, um "clear: both" só seria necessária declaração se colocando várias azul / divs vermelhas no mesmo recipiente verde

.

Tente

.greencontainer{
    width:100%;
spacing : 10 10 10 10 ;

}

.bluecontainer{ 
    float: left; 
    width: 400px; 
    padding: 2 2 2 10;
    font-size: 11px;
font-family: sans-serif; 
    text-align: left; 
}
.redcontainer{ 
    float: right; 
    width: 20px;
    padding: 2 0 2 0;
    font-size: 11px;
font-family: sans-serif; 
    text-align: center; 
}

Você também pode precisar adicionar uma margem direita ao recipiente azul ou deixou margem para o recipiente vermelho para pegar espaçamento consistente entre eles ao invés de usar enchimento que se relaciona com o espaçamento dentro da div não em torno dele

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