• Super User

    Validazione W3C impossibile

    Il mio amore è andato a dormire e posso dedicarmi a voi...

    Oggi ho sistemato un errore con un div.. metteva il div stesso come sfondo per tutta l'altezza del medesimo..(ovviamente solo con ie). Ora, ho sistemato mettendo un <table> prima e un </table> (dopo 40 minuti -.-"), e sono andato a rivalidare la pagina, così giusto per sfizio.. e da errore!

    Line 300 column 24: document type does not allow element "DIV" here.
    Line 312 column 7: end tag for "TABLE" which is not finished.

    Il codice interessato è questo:

    <table>      
        <div class="boxmenu">
    			          
        
                  <div class="headmenu">
                      Info
                  </div>
    		
    <center>
    ![image](/images/validate/html.png)
    <div class="validate">![image](/images/validate/css.png)</div>
                           </center>
       
        </div>
    </table>
    

    Come lo risolvo?

    Buonanotte 🙂

    :ciauz:


  • Super User

    Posti il css. Ad occhio la tabella non dovrebbe servire...


  • Super User

    Il css è qui: http://www.metaphorock.it/templates/metaphor/css/style.css

    Allora, è vero, tecnicamente non servirebbe, solo che con ie, fa un brutto scherzo, che è "metteva il div stesso come sfondo per tutta l'altezza del medesimo."

    Il guaio, è che se tolgo quel box, il problema lo fa a quello sopra, e così via.. ho provato anche a mettere un altro div vuoto ma fa peggio -.-"


  • Moderatore

    Se è quello il sito (http://www.metaphorock.it/) lo vedo bene anche con ie.

    Detto questo: piuttosto che mettere giffettine varie che mostrano quanto sia valido il codice, mi preoccuperei che lo fosse davvero.

    In particolare mi riferisco ai vari "<center>, gestibili da css text-align:center o margin:xx auto;, ai valori in maiuscolo dei meta tag, ai nomi di classi con _ invece di - , alle non chiusure dei tag:
    al posto di
    .

    Son particolari che non lo rendono xhtml 1.1 valido. e soprattutto che possono non rendere facile il cambio di layout futuro. Immagina di voler mettere quel testo che ora è centrato allineato a sinistra: basterebbe prendere text-align:center e mettere left;. Ora come ora dovresti andare a cercae nel testo e togliere i <center> tanto per dirne una. :ciauz:


  • Super User

    Allora non sono chiare alcune cose, ho guardato il css ma non l'ho provato a schermo.

    Io credo che tu intenda che senza il table il div si allarga in orizzontale, non in verticale, sarebbe impossibile.

    Poi messo così il table è ovvio ti venga restituito un errore: devi definire almeno una riga e una colonna. Ma la tabella è assolutamente pleonastica.

    Se tu vuoi creare un box che stia in quella posizione largo circa 200px, basta crearlo con valori assoluti: cordinate 0,0 e larghezza circa 200px. Oppure anche statico sempre con gli stessi parametri. O ancora impostantdo un margine destro sufficiente e inserendo un altro div in float o assoluto.

    Potrei però non avere ancora capito la tua domanda.


  • Super User

    @massy said:

    Se è quello il sito (http://www.metaphorock.it/) lo vedo bene anche con ie.

    Ora si 😄

    @massy said:

    Detto questo: piuttosto che mettere giffettine varie che mostrano quanto sia valido il codice, mi preoccuperei che lo fosse davvero.

    Prima lo era.. ora non più...

    @massy said:

    In particolare mi riferisco ai vari "<center>, gestibili da css text-align:center o margin:xx auto;, ai valori in maiuscolo dei meta tag, ai nomi di classi con _ invece di - , alle non chiusure dei tag:
    al posto di
    .

    Meta tag, ok, ora li cambio 🙂
    Le classi danno problemi o è solo un fatto di "correttezza"?
    I br lo so, infatti li sto cambiando un pò alla volta..

    @massy said:

    Son particolari che non lo rendono xhtml 1.1 valido. e soprattutto che possono non rendere facile il cambio di layout futuro. Immagina di voler mettere quel testo che ora è centrato allineato a sinistra: basterebbe prendere text-align:center e mettere left;. Ora come ora dovresti andare a cercae nel testo e togliere i <center> tanto per dirne una.

    Infatti nemmanco prima era validato all'xhtml 😉
    Mi bastava una validazione all'html semplicissima^^


  • Super User

    @Catone said:

    Allora non sono chiare alcune cose, ho guardato il css ma non l'ho provato a schermo.

    Io credo che tu intenda che senza il table il div si allarga in orizzontale, non in verticale, sarebbe impossibile.

    Poi messo così il table è ovvio ti venga restituito un errore: devi definire almeno una riga e una colonna. Ma la tabella è assolutamente pleonastica.

    Se tu vuoi creare un box che stia in quella posizione largo circa 200px, basta crearlo con valori assoluti: cordinate 0,0 e larghezza circa 200px. Oppure anche statico sempre con gli stessi parametri. O ancora impostantdo un margine destro sufficiente e inserendo un altro div in float o assoluto.

    Potrei però non avere ancora capito la tua domanda.

    Chiedo venia, ho sbagliato. Si, si allarga in orizzontale.

    Impostando il margine destro finisce che il blocco destro se ne va sotto a quello sinistro..
    Anche provato mettendo un altro div, risultato che l'errore lo fa all'altro div, l'ultimo.

    Ora provo di postarvi un paio di screenshot.. 🙂

    edit:
    Ecco come viene:

    [url=http://img124.imageshack.us/img124/4642/senzatitolo19eb.jpg]image