Odpowiedzi:
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ści inline
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świetlony display: 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.
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:
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;}
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.