Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    111

    100% height div position absolute

    è il solito problema.. scusate se lo ripropongo, ma ho letto una montagna di roba a riguardo, provato centinaia di diverse possibili combinazioni e ancora non ne sono venuto a capo: impostare l'altezza di un div al 100% dell'elemento padre indipendentemente dal contenuto.


    semplificando:
    Codice PHP:
    <html>
    <
    head>

    <
    style type="text/css">
    body#w1, #w2, #corpo{height:100%;width:100%;}
    body{background-color:blue;}
    #w1{background-color:yellow;}
    #w2{background-color:red;}
    #corpo{background-color:brown;}
    #c-sx,#c-dx{position:absolute;top:0px;background-color:#0F0;width:50px;height:100%}
    #c-sx{left:0px;}
    #c-dx{right:0px;}
    </style>
    </
    head>

    <
    body>
      <
    div id="w1">
        <
    div id="w2">
          <
    div id="c-sx"></div>
          <
    div id="corpo"></div>
          <
    div id="c-dx"></div>
        </
    div>
      </
    div>
    </
    body>
    </
    html
    il problema è che #corpo ha l'altezza dovuta ai contenuti e non quella prefissata. provando con i background colorati sembra che #w1 non acquisisca il 100% dell'altezza di body (che invece è ok).
    stranamente però le due colonne laterali #c-sx e #c-dx prendono il 100% dell'altezza di #w2, ma come se tutto funzionasse (cioè come se #w1 avesse il 100% di body e #w2 il 100% di #w1).
    non capisco che cosa succede

    se aggiungo #w1,#w2{position:absolute;top:0;left:0;}
    tutto funziona... ma non posso usare questa soluzione anche nel sito reale.

    per ora ho risolto temporaneamente grazie a javascript, lo riporto in caso qualcuno volesse usarlo per risparmiarsi un mal di testa:
    Codice PHP:
    var corpo document.getElementById("corpo");
    var 
    offset 265;
    fullh(corpo);
    window.onresize = function(){ fullh(corpo); }

    function 
    fullh(corpo){
      
    hmin = (GetWindowSize())[1];
      if(
    corpo.offsetHeight!==hmincorpo.style.minHeight = (hmin-offset)+"px";
    }

    //questa funzione non è mia, ma non ricordo da dove l'ho copiata
    function GetWindowSize() {
      
    size = new Array;
      
    size[0]=window.innerWidth||(document.documentElement.clientWidth||document.body.clientWidth);
      
    size[1]=window.innerHeight||(document.documentElement.clientHeight||document.body.clientHeight);
      return 
    size;


  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    111
    non c'è un modo di risolvere la faccenda con css?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.