Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    display:block o display:

    in una tabella, modifico lo stile di una riga mettendo

    riga.style.display = "block"

    con IE7 funziona come ci si attende, ma ho avuta la sorpresa di un cattivo funzionamento in Opera9 e Firefox2

    mettendo però:

    riga.style.display = ""

    funziona sia in IE7, sia in Opera9 che in Firefox2

    La domanda è:
    che differenza c'è tra mettere display = "" o display = "block"

    ciao
    Pietro

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Intanto ecco un link che ti da` una serie di valori possibili nei CSS2 per il display: http://www.w3schools.com/css/pr_class_display.asp

    Come vedi sono tanti, non solo block, inline e none.
    Solo che ad oggetti diversi si applicano valori diversi: per una tabella occorre usare i valori suoi propri.

    IE6 non supporta completamente i CSS2, e occorre usare i valori di CSS1.
    IE7 dovrebbe invece essere piu` completo.
    FF (e altri gecko) sono piu` "strict" sui valori possibili.

    Credo che definire style.display=""; sia come dire "non none", cioe` visibile, ma potrebbe dipendere dal browser se accetta il valore vuoto.

    Forse nel forum JS potresti ottenere risposte piu` complete (magari lo usano piu` spesso); ma intanto ti lascio in CSS, che` forse qualcun altro ha ulteriori info.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Ti ringrazio della risposta.
    In attesa di soluzioni migliori, uso display = "" che funziona ed ha sempre funzionato. Ciao
    Pietro

  4. #4
    Impostando il valore di display per un elmento con una stringa vuota equivale a fargli assumere implicitamente il suo valore di display di default. Ogni elemento ha appunto un valore di default di display diverso a seconda della sua natura (block, inline, table, list-item, ecc.) che dipende dalla natura dell'elemento stesso. La proprietà display infatti non serve a mostrare o meno un elemento, ma ne modifica il comportamento (trasformando ad es. elementi block-level in inline, e così via).

    Le tabelle in particolare non solo elementi block-level, ma hanno (o dovrebbero avere, perché IE spesso non ne vuole sapere!) il valore di default di display impostato su table.
    Il supporto per i valori di display tipici delle tabelle (table, table-row, table-cell, ecc.) è piuttosto diverso da browser a browser e ovviamente è pessimo in IE (non so su IE 7, ma sul 6 di sicuro!).

    Quindi impostare display come una stringa vuota è il sistema corretto di fargli assumere il suo comportamento di default.

  5. #5
    hai già provato con getComputedStyle a verificarne il valore predefinito?
    Giusto per vedere se ci sono differenti impostazioni iniziali tra IE6 e FF.
    Qualunque imbecille può inventare e imporre tasse. (Maffeo Pantaleoni)

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Ragazzi, vi ringrazio delle risposte.

    Per seed_squall_it: una spiegazione veramente semplice ed efficace

    Pietro

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 © 2026 vBulletin Solutions, Inc. All rights reserved.