Autore Topic: Errore di parsing con "display:block;"  (Letto 1698 volte)

0 Utenti e 2 Visitatori stanno visualizzando questo topic.

Offline jitebi

  • Post: 5
Errore di parsing con "display:block;"
« il: 02 Novembre 2005 15:12:34 »
Ho riscontrato il seguente errore di parsing:
Sotto IE (scusate :P) funziona correttamente.

Codice: [Seleziona]
<table>
<thead>
<caption>Table without problems</caption>
<tr>
<th>COL 1</th>
<th>COL 2</th>
<th>COL 3</th>
</tr>
</thead>
<tbody>
<tr>
<td style="background-color:#FF8800;">CELL 1</td>
<td style="background-color:#FF8800;">CELL 2</td>
<td style="background-color:#FF8800;">CELL 3</td>
</tr>
<tr>
<td colspan="3" style="background-color:#FF0000;">COLSPAN</td>
</tr>
</tbody>
</table>

<table>
<thead>
<caption>Table with problems (1)</caption>
<tr>
<th>COL 1</th>
<th>COL 2</th>
<th>COL 3</th>
</tr>
</thead>
<tbody>
<tr>
<td style="background-color:#FF8800;">CELL 1</td>
<td style="background-color:#FF8800;">CELL 2</td>
<td style="background-color:#FF8800;">CELL 3</td>
</tr>
<tr style="display: block;">
<td colspan="3" style="background-color:#FF0000;">COLSPAN</td>
</tr>
</tbody>
</table>

Offline klades

  • Moderatore
  • Post: 5788
    • http://www.nic-nac-project.org/~kaosmos
Errore di parsing con "display:block;"
« Risposta #1 il: 02 Novembre 2005 17:58:46 »
Prima di tutto spiega cosa vuoi fare e cosa invece ti risulta.
Comunque il tag TR ha per default display = table-row, che appunto lo rende una riga di tabella.
Se tu modifichi quel valore, TR non è più una riga di tabella e quindi questo cambia tutto.
Il fatto che su IE "funzioni correttamente" (non so cosa vuoi intendere  con questo) non vuol dire nulla, dato che IE non rispetta un sacco di roba dello standard.

Offline jitebi

  • Post: 5
Errore di parsing con "display:block;"
« Risposta #2 il: 02 Novembre 2005 18:38:04 »
Calma e sangue freddo:

1) Essere messo in "Evangelizzazione" è quanto meno offensivo, in quanto sono un sostenitore e promotore di Firefox.

2) Uso IE solo per motivi di lavoro e di confronto. Quindi non volevo insinuare nulla con la mia frase (sotto IE funziona).

3) Che IE non rispetti molte cose dello standard non è una scoperta, ed è uno dei motivi percui non ne sono mai stato un grande sostenitore.

4) Ammetto di non essere stato forse molto chiaro, ma mi sembrava abbastanza evidente quello che volevo ottenere avendo messo prima un esempio con il risultato (Table without problems) e poi invece una tabella con quello che mi sembra un errore di parsing (Table with problems (1)).

Cmq l'effetto che volevo ottenere era solo quello di nascondere e far apparire una riga con attributo colspan = 3 tramite javascript, ma non so per quale motivo applicando display:block (o none) alla riga improvvisamente il colspan non va.

Ecco tutto.

Un saluto
C.

Offline flod

  • Amministratore
  • Post: 15057
    • http://www.flod.org
Errore di parsing con "display:block;"
« Risposta #3 il: 02 Novembre 2005 19:49:16 »
Citazione da: jitebi
Calma e sangue freddo:

Esatto

Citazione da: jitebi
1) Essere messo in "Evangelizzazione" è quanto meno offensivo, in quanto sono un sostenitore e promotore di Firefox.
Dando un'occhiata al forum, ti saresti accorto che questo tipo di problemi viene inserito (o spostato) in questa sezione, punto e basta; non vedo il motivo di offendersi!

Offline flod

  • Amministratore
  • Post: 15057
    • http://www.flod.org
Errore di parsing con "display:block;"
« Risposta #4 il: 02 Novembre 2005 20:06:22 »
Usando display:none a me la riga risulta perfettamente nascosta...
Codice: [Seleziona]
<tr style="display: none;">
<td colspan="3" style="background-color:#FF0000;">COLSPAN</td>
</tr>

Offline klades

  • Moderatore
  • Post: 5788
    • http://www.nic-nac-project.org/~kaosmos
Errore di parsing con "display:block;"
« Risposta #5 il: 02 Novembre 2005 20:11:30 »
Citazione da: jitebi
Calma e sangue freddo:
1) Essere messo in "Evangelizzazione" è quanto meno offensivo, in quanto sono un sostenitore e promotore di Firefox.

Su questo ti ha già risposto flod, riflettici su.

Citazione da: jitebi

2) Uso IE solo per motivi di lavoro e di confronto. Quindi non volevo insinuare nulla con la mia frase (sotto IE funziona).
3) Che IE non rispetti molte cose dello standard non è una scoperta, ed è uno dei motivi percui non ne sono mai stato un grande sostenitore.

Guarda che il problema non era questo: il fatto è che tu non hai descritto il problema, hai solo detto "Ho riscontrato il seguente errore di parsing: Sotto IE (scusate Razz) funziona correttamente." E per chi non ha IE disponibile (come me ora) diventa impossibile capire cosa stai cercando di fare, tutto qui.

Citazione da: jitebi

4) Ammetto di non essere stato forse molto chiaro, ma mi sembrava abbastanza evidente quello che volevo ottenere avendo messo prima un esempio con il risultato (Table without problems) e poi invece una tabella con quello che mi sembra un errore di parsing (Table with problems (1)).
Cmq l'effetto che volevo ottenere era solo quello di nascondere e far apparire una riga con attributo colspan = 3 tramite javascript, ma non so per quale motivo applicando display:block (o none) alla riga improvvisamente il colspan non va.

Il motivo è quello che ti ho detto: applicando display:block , "snaturi" il tag tr facendolo diventare un'altra cosa, dato che quel tag deve avere come valore display:table-row , che ne definisce la natura. Solo che IE non supporta questo valore e usa impropriamente block, mentre Firefox interpreta tutto correttamente.
Riguardo il tuo problema (che spero di aver compreso), guarda se ti può aiutare questo
http://jszen.blogspot.com/2004/07/table-rowsrevealed.html
Ciao, Paolo

Offline klades

  • Moderatore
  • Post: 5788
    • http://www.nic-nac-project.org/~kaosmos
Errore di parsing con "display:block;"
« Risposta #6 il: 02 Novembre 2005 20:13:12 »
Citazione da: flod
Usando display:none a me la riga risulta perfettamente nascosta...
Codice: [Seleziona]
<tr style="display: none;">
<td colspan="3" style="background-color:#FF0000;">COLSPAN</td>
</tr>

Credo che il problema sia farla riapparire in modo cross-browser, leggiti quella pagina che ho indicato sopra (se ho capito bene di cosa stiamo parlando, mica sono sicurissimo...)
Il modo corretto secondo gli standard sarebbe mettere display:table-row, ma IE non lo sa interpretare, perchè non supporta table-row e quindi usa impropriamente block.

Offline jitebi

  • Post: 5
OoooooooK
« Risposta #7 il: 04 Novembre 2005 09:26:44 »
1) Mi cospargo il capo di cenere e stelle e porgo le mie scuse a tutti. Ho interpretato male tutto. Non volevo offendere nessuno.  :oops:

2) Grazie per le spiegazioni, ora proverò ad applicare quanto mi avete detto e vediamo se risolvo questo problemino.
Cmq è esatto, il problema era fare riapparire la tr in x-browser. In FF ogni volta che facevo riapparire la riga, me ne aggiungeva una nuova.

Ho un'altra differenza curiosa tra i due browser che credo sia dovuta alla diversa gestione delle altezze minime dei div che appena ho un attimo posto sul forum (magari stavolta con due img invece che solo a codice ;)).

Grazie 1000 a tutti.

A presto

0 Utenti e 2 Visitatori stanno visualizzando questo topic.