Domanda

Questi codici sono logicamente equivalenti?

<colgroup span="7">
</colgroup>

E

<col span="7" />

E

<colgroup>
<col />
<col />
<col />
<col />
<col />
<col />
<col />
</colgroup>

Qualche attributo tramite HTML o proprietà tramite CSS avrà pari effetto? Può Sombody anche aggiungere tag "Colgroup". Nessun rappresentante abbastanza per me per farlo.

È stato utile?

Soluzione

Dal Specifiche per <col>:

Contesti in cui questo elemento può essere usato:
Da figlio di un elemento colgroup che non ha un attributo di span.
[...]
Attributi del contenuto: Attributi globali
arco

L'ho letto come dire solo <col span="7" /> da solo non è valido ma questo:

<colgroup>
    <col span="7" />
</colgroup>

è valido e lo stesso di:

<colgroup span="7">
</colgroup>

Tuttavia, se il <colgroup> ha un span attributo, allora non dovrebbe avere <col> figli:

Se l'elemento Colgroup non contiene elementi Col, l'elemento può avere un attributo di contenuto Span specificato ...

La mia interpretazione (basata su Specifica HTML4 più di quello più sottile html5) è che di solito useresti <colgroup span="n"> A meno che tu non abbia bisogno di modellare una delle colonne del gruppo in modo diverso come in questo esempio (modificato) dalla specifica HTML4:

<colgroup style="width: 20px; font-weight: bold;">
    <col span="39">
    <col id="format-me-specially" style="width: 35px;">
</colgroup>

Quindi le prime 39 colonne userebbero qualunque cosa <colgroup> Specifica ma il 40 ° potrebbe essere ottimizzato. Otoh, ho difficoltà a convincere i browser a prestare molta attenzione a tutto ciò (nonostante ciò che dicono le specifiche) su jsfiddle.net, quindi ymmv.

Altri suggerimenti

Ecco la mia interpretazione delle specifiche. AGGIORNAMENTO: Dopo aver guardato le specifiche HTML4, ho cambiato idea su colgroup elementi span attributo.

(Questo è anche in risposta alla mia seconda domanda commento nella risposta di @mu.)

UN colgroup rappresenta a gruppo di una o più colonne, e il suo span Specifica il numero di colonne in un gruppo di colonne. Quindi lo considero un collegamento, salvando l'autore dalla scrittura multipla col elementi in successione.

<colgroup class="x" span="3"></colgroup>

Il gruppo di colonne si estende su tre colonne ed è disegnato secondo la regola CSS .x {...}. Questo è equivalente a

<colgroup class="x">
    <col/>
    <col/>
    <col/>
</colgroup>

D'altro canto, col rappresenta una o più colonne nel gruppo di colonne, e il suo span Specifica il numero di colonne "attraversate" dal COL elemento... che è una definizione ciclica se me lo chiedi.

L'unico modo in cui posso interpretarlo è che scrivendo

<colgroup class="x"><col class="y" span="3"/></colgroup>

Stai dicendo che ci sono tre colonne, ognuna nello stesso raggruppamento logico, in stile secondo .y {...}. Questo è un collegamento alla scrittura

<colgroup class="x">
    <col class="y"/>
    <col class="y"/>
    <col class="y"/>
</colgroup>

Presentazionalmente, non sono sicuro che ci sarebbe una differenza evidente. Come sembra tutto dipende dal tuo CSS ovviamente. Ma semanticamente, sono molto diversi. Il primo esempio rappresenta tre gruppi di colonne con ciascun gruppo contenente una colonna, mentre il secondo esempio rappresenta un gruppo di tre colonne.

Dopo averlo ripensato, ho deciso che sono entrambi uguali. Avere un colgroup arco n il numero di colonne è lo stesso di averne una colgroup con un col Bambino che attraversa n colonne. Non c'è differenza logica o semantica secondo me.

Nota: il col elemento dovere essere contenuto in a colgroup elemento che non ha no span attributo. Potrebbe non essere un figlio diretto del table elemento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top