Ho letto da qualche parte che l' <img>
elemento si comporta come entrambi. Se corretto, qualcuno potrebbe spiegare con esempi?
Ho letto da qualche parte che l' <img>
elemento si comporta come entrambi. Se corretto, qualcuno potrebbe spiegare con esempi?
Risposte:
È vero, sono entrambi - o più precisamente, sono elementi "inline block". Ciò significa che scorrono in linea come il testo, ma hanno anche una larghezza e un'altezza come gli elementi del blocco.
In CSS, puoi impostare un elemento display: inline-block
per farlo replicare il comportamento delle immagini *.
Immagini e oggetti sono anche noti come elementi "sostituiti", poiché non hanno contenuto in sé, l'elemento viene sostanzialmente sostituito da dati binari.
* Nota che i browser utilizzano tecnicamente display: inline
(come si vede negli strumenti per sviluppatori) ma stanno dando un trattamento speciale alle immagini. Seguono ancora tutti i tratti di inline-block
.
img
elementi non sono inline-block
ma in realtà inline
elementi. Puoi verificarlo in un browser moderno facendo clic con il pulsante destro del mouse su un'immagine, facendo clic su "Ispeziona elemento", quindi visualizzando lo stile calcolato, che verrà visualizzato display: inline
. Non esiste alcun contesto di blocco all'interno del tag, quindi non è corretto chiamarlo inline-block
. Per ulteriori informazioni sugli elementi incorporati sostituiti, consultare la risposta di Quentin e questo articolo MDN .
img
elementi sono in linea: gli strumenti di sviluppo di Google Chrome mostrano gli img
elementi come in linea. Questo post è l'unico posto che ho trovato finora che dice che sono inline-block
invece. È interessante notare che non ho trovato alcuna autorità che dice che lo sono inline
. Il trattamento dipende forse dall'implementazione del tag?
display:inline-block
.
Un img
elemento è un elemento inline sostituito .
Si comporta come un elemento inline (perché lo è), ma alcune generalizzazioni sugli elementi inline non si applicano agli img
elementi.
per esempio
Generalizzazione: "La larghezza non si applica agli elementi incorporati"
Cosa dice effettivamente la specifica : "Si applica a: tutti gli elementi tranne gli elementi inline, le righe di tabella e i gruppi di righe non sostituiti"
Poiché un'immagine è un elemento incorporato sostituito, si applica.
Per quasi tutti gli scopi pensali come un elemento inline con un set di larghezza. Fondamentalmente sei libero di dettare come desideri che le immagini vengano visualizzate usando i CSS. In genere imposto alcune classi di immagini in questo modo:
img.center {display:block;margin:0 auto;}
img.left {float:left;margin-right:10px;}
img.right {float:right;margin-left:10px;}
img.border {border:1px solid #333;}
È vero, sono entrambi - o più precisamente, sono elementi "inline block". Ciò significa che scorrono in linea come il testo, ma hanno anche una larghezza e un'altezza come gli elementi del blocco.