Czytałem gdzieś, że <img>
element zachowuje się jak oba. Jeśli tak, czy ktoś mógłby wyjaśnić na podstawie przykładów?
163
To prawda, oba są - a ściślej mówiąc, są to elementy „inline block”. Oznacza to, że płyną one w wierszu jak tekst, ale mają również szerokość i wysokość jak elementy blokowe.
W CSS możesz ustawić element display: inline-block
tak, aby replikował zachowanie obrazów *.
Obrazy i obiekty są również nazywane elementami „zastąpionymi”, ponieważ same w sobie nie zawierają treści, a element jest zasadniczo zastępowany danymi binarnymi.
* Należy pamiętać, że przeglądarki używają technicznie display: inline
(jak widać w narzędziach programistycznych), ale traktują obrazy w specjalny sposób. Nadal podążają za wszystkimi cechami inline-block
.
img
elementy nie są,inline-block
ale w rzeczywistościinline
elementami. Możesz to sprawdzić w nowoczesnej przeglądarce, klikając prawym przyciskiem myszy obraz, klikając „Sprawdź element”, a następnie przeglądając obliczony styl, który zostanie wyświetlonydisplay: inline
. W tagu nie ma kontekstu blokowego, więc nie można go wywoływaćinline-block
. Aby uzyskać więcej informacji na temat zastępowanych elementów wbudowanych, zobacz odpowiedź Quentina i ten artykuł w MDN .img
elementy są wbudowane - narzędzia programistyczne Google Chrome pokazująimg
elementy jako wbudowane. Ten post jest jedynym miejscem, które do tej pory znalazłem, które mówi, że sąinline-block
zamiast tego. Co ciekawe, nie znalazłem żadnego autorytetu, który by twierdził, że oni też sąinline
. Może jak traktować tag zależny od implementacji?display:inline-block
.img
Elementem jest zastąpione inline elementu .Zachowuje się jak element wbudowany (ponieważ jest), ale niektóre uogólnienia dotyczące elementów wbudowanych nie mają zastosowania do
img
elementów.na przykład
Uogólnienie: „Szerokość nie dotyczy elementów wbudowanych”
Co faktycznie mówi specyfikacja : „Dotyczy: wszystkich elementów oprócz niezastępowanych elementów wbudowanych, wierszy tabeli i grup wierszy”
Ponieważ obraz jest zastępowanym elementem w tekście, ma to zastosowanie.
źródło
Elementy IMG są wbudowane, co oznacza, że jeśli nie są pływające, będą płynąć poziomo z tekstem i innymi elementami wbudowanymi.
Są to elementy „blokowe”, ponieważ mają szerokość i wysokość. Ale pod tym względem zachowują się bardziej jak „inline-block”.
źródło
Prawie do wszystkich celów traktuj je jako element wbudowany z ustawioną szerokością. Zasadniczo możesz dyktować, jak chcesz wyświetlać obrazy za pomocą CSS. Generalnie ustawiam kilka klas obrazu, takich jak:
źródło
Za każdym razem, gdy wstawiasz obraz, przyjmuje on po prostu szerokość oryginalną. Możesz dodać dowolny inny element html obok niego, a zobaczysz, że na to pozwoli. To sprawia, że obraz jest elementem „wbudowanym”.
źródło
To prawda, oba są - a ściślej mówiąc, są to elementy „inline block”. Oznacza to, że płyną one w wierszu jak tekst, ale mają również szerokość i wysokość jak elementy blokowe.
źródło