Eu tenho uma div wrapper que contans 2 divs ao lado do outro. Acima deste contêiner, tenho uma div que contém meu cabeçalho. A div do wrapper deve ser 100% menos a altura do cabeçalho. O cabeçalho tem cerca de 60 px. Isso está consertado. Então, minha pergunta é: como faço para definir a altura da div do meu wrapper como 100% menos os 60 px?
<div id="header"></div>
<div id="wrapper">
<div id="left"></div>
<div id="right"></div>
</div>
Respostas:
Aqui está um css funcional, testado no Firefox / IE7 / Safari / Chrome / Opera.
O "overflow-y" não é aprovado pelo w3c, mas todos os principais navegadores oferecem suporte. Suas duas divs #left e #right exibirão uma barra de rolagem vertical se o conteúdo for muito alto.
Para que isso funcione no IE7, é necessário acionar o modo compatível com os padrões adicionando um DOCTYPE:
fonte
position: relative
-as. Em seguida, coloque o contêiner em qualquer lugar da página.No CSS3 você pode usar
fonte
Se você precisar oferecer suporte ao IE6, use JavaScript para gerenciar o tamanho da div do wrapper (defina a posição do elemento em pixels após ler o tamanho da janela). Se você não deseja usar JavaScript, isso não pode ser feito. Existem soluções alternativas, mas esperamos que uma ou duas semanas o façam funcionar em todos os casos e em todos os navegadores.
Para outros navegadores modernos, use este css:
fonte
grande ... agora eu parei de usar% he he he ... exceto para o recipiente principal, como mostrado abaixo:
e aqui está o css:
Eu testei isso em todos os navegadores conhecidos e está funcionando bem. Existem algumas desvantagens dessa maneira?
fonte
Você pode fazer algo como height: calc (100% - nPx); por exemplo altura: calc (100% - 70px);
fonte
Certifique-se de usar menos
Caso contrário, menos não será compilado corretamente
fonte
Isso não responde exatamente à pergunta apresentada, mas cria o mesmo efeito visual que você está tentando obter.
fonte
Neste exemplo, você pode identificar áreas diferentes:
fonte
Ainda não vi nada assim publicado, mas pensei em publicá-lo.
Então CSS:
Aqui está um jsfiddle de trabalho
Nota: Não tenho ideia de qual é a compatibilidade do navegador para isso. Eu estava apenas brincando com soluções alternativas e isso parecia funcionar bem.
fonte
Use uma div de invólucro externo definida como 100% e, em seguida, sua div de invólucro interno 100% deve ser agora relativa a isso.
Eu tinha certeza de que isso costumava funcionar para mim, mas aparentemente não:
fonte
Se você não deseja usar posicionamento absoluto e todo esse jazz, aqui está uma correção que eu gosto de usar:
seu html:
seu css:
fonte
#header
deveria sermargin-top:-60px;
. Segundo,height:100%
significa que a altura será 100% da altura dos elementos pai, sem incluir margens, preenchimento e bordas. Dependendo das configurações de rolagem, isso fará com que as barras de rolagem apareçam ou o conteúdo seja cortado.