Elementi di blocco e elementi in linea in HTML: perché la distinzione?

14

La distinzione tra blocco e elementi in linea mi è sempre sembrata strana. L'intera differenza è che un elemento di blocco occupa l'intera larghezza, forzando così un'interruzione di riga prima e dopo l'elemento, e un elemento in linea occupa solo il contenuto. Perché non avere un solo tipo di elemento, un elemento in linea in cui puoi anche applicare altezza / larghezza personalizzate e usarlo? Vuoi interruzioni di riga? Inserisci un <br /> , o magari aggiungi un tag speciale nel CSS per quel comportamento. Il modo in cui è ora, non lo vedo risolvere alcun problema, e invece costringe solo una proprietà che a mio avviso dovrebbe essere deciso da un designer.

Quindi perché i due tipi?

    
posta EpsilonVector 24.03.2011 - 04:05
fonte

6 risposte

12

Dici:

You want line breaks? Insert a <br />, or maybe add a special tag in the CSS for that behavior. The way it's now, I don't see it solving any problem, and instead it only forces a property that in my opinion should be decided by a designer.

Sei sulla strada giusta - lo stile dovrebbe essere deciso dal designer.

Tuttavia, il problema è il contrario. L'inserimento di un tag <br/> è in realtà l'opzione che "impone una proprietà che deve essere decisa da un designer" - all'interno del markup documenta, una volta che c'è <br/> , è lì - e solo con alcuni CSS ingannevoli / hacky puoi rimuoverne l'effetto.

In linea / blocco elements , d'altra parte, sono puramente elementi in stile con un comodo valore predefinito per il caso di uso comune. La proprietà visiva stessa può essere modificata istantaneamente da un designer CSS con display:inline o display:block .

Prendi ad esempio l'elemento comune per la navigazione in questi giorni - <li> . Questi sono per impostazione predefinita block elementi, ma i designer li renderanno float per apparire in linea ( block ha proprietà più speciali rispetto a occupare solo l'intera linea, ma quella è una conversazione per un altro giorno).

    
risposta data 12.04.2011 - 00:22
fonte
3

La maggior parte degli elementi ha una formattazione standard ... La tua domanda potrebbe essere estesa per dire che questa formattazione dovrebbe essere la decisione del progettista e dovrebbe essere rimossa. Ho sempre pensato che fosse un punto di partenza e rimosso la formattazione, se necessario (spesso non lo era). Ma alla fine ci sono alcune cose che sono naturali. Se hai un paragrafo, ad esempio, ti aspetti che sia un elemento di blocco perché è la natura di un paragrafo. Indipendentemente dal fatto che gli elementi abbiano impostazioni predefinite come blocco o inline, in ogni caso, in ogni caso, desidero specificare la possibilità di specificare questa opzione. La ragione per cui dico che è IMO è più pulita per rompere le cose in questo modo rispetto al lancio di un <br /> nel codice HTML. Fa la stessa cosa? Sì. Ma con i recenti progressi in HTML, un grande sforzo è stato focalizzato a renderlo più di un linguaggio semantico in cui si inserisce meno nell'HTML per quanto riguarda la formattazione e molto altro nel CSS. Il <br /> significa un'interruzione di riga che di solito si riferisce a un'interruzione di riga in un paragrafo o in un'altra frase contenente una struttura. Alla fine non ha importanza per me, ma personalmente voglio la possibilità di avere distinzione di blocco e inline, quindi spero che non rimuovano almeno quella dal lato CSS almeno!

    
risposta data 24.03.2011 - 04:51
fonte
1

Questo è un po 'come dire che non vi è alcuna reale differenza tra paragrafi e frasi. I paragrafi delimitano un gruppo di idee. In genere, una frase è per una singola idea.

Il markup riguarda la semantica, non la visualizzazione. In effetti, un progettista è libero di trattare qualsiasi elemento che abbia come valore predefinito uno stile di blocco come inline e viceversa.

    
risposta data 12.04.2011 - 00:02
fonte
1

In LaTeX , ci sono due modalità (esclusa la modalità matematica): la modalità orizzontale e la modalità verticale. Gli elementi (caratteri) sono piccole caselle che si accumulano "orizzontalmente" nel paragrafo. Quindi queste scatole più grandi si accumulano verticalmente. Questo è simile a (X) HTML: inline e block.

    
risposta data 11.04.2011 - 22:57
fonte
0

Sembra un problema di retrocompatibilità per me. L'elemento inline era probabilmente un'aggiunta successiva allo standard HTML, e così che le pagine web scritte nel 1992 possono essere ancora visualizzate nel 2011, è ancora supportato, come se ci fossero un sacco di pagine web di 19 anni là fuori ...!

    
risposta data 24.03.2011 - 04:34
fonte
-1

Penso che le modalità di visualizzazione siano così diverse tra blocco e in linea, che una distinzione valga la pena fare a livello di markup.

    
risposta data 11.04.2011 - 23:05
fonte

Leggi altre domande sui tag