2014-11-12 13 views
21

Moja przeglądarka pokazuje, że znacznik <img> jest tagiem wbudowanym. Liczne odpowiedzi w Stack mówią, że zakres nie akceptuje właściwości wysokości ponieważ jest tagiem śródliniowym. Jak to zrobić <img>? Dlaczego nie jest to element inline-block?Dlaczego <img> ma wysokość, gdy jest elementem wstawianym?

+5

img to technicznie element inline- * replace *. Może to zająć szerokość i wysokość: zobacz http://stackoverflow.com/questions/2402761/img-elements-block-level-element-or-inline-element – fcalderan

+0

To doskonałe pytanie! Nigdy o tym nie myślałem ... –

+0

Zobacz https://stackoverflow.com/questions/12468176/what-is-a-non-replaced-inline-element. – Lumen

Odpowiedz

22

<img> znacznik nie jest ściśle element rolki, ale inline zastąpione elementem.

W skrócie oznacza to, że <img> (i inne elementy, jak <video> lub, <object> jeśli nadal go używać), ma wymiary wewnętrzne . Dlatego CSS może obsłużyć te wymiary (i inne właściwości, takie jak marginesy). Ponieważ jest tagiem wstawianym, to jest zastąpiony z własnego pliku źródłowego (cóż, nadal jest elementem śródliniowym).

Niektóre doc o tym:

Ciekawostka (chyba): nie można zastąpić (lub po prostu obsłużyć) zachowanie inline-zastąpione do " normalne "zachowanie śródliniowe na tych elementach za pomocą CSS (gdy działa, gdy ustawisz blok wbudowany lub blokuje lub cokolwiek chcesz). Zobacz ten przykład: http://jsfiddle.net/s8apbbof/

Powiązane problemy