HTML i CSS · Senior · Pytanie 9 z 75
Dlaczego ::before i ::after nie działają na <img> i <input>?
- 1Te elementy mają domyślnie
display: inline, a pseudoelementy potrzebują bloku - ✓Poprawna odpowiedź: To elementy zastępowane lub puste - nie ma treści, do której można wstawić
- 3To znany błąd Chromium; w Firefoksie pseudoelementy na nich działają
Wyjaśnienie
::before/::after są wstawiane wewnątrz elementu, przed i po jego treści. Treść <img>, <video>, <iframe> jest zastępowana zewnętrznym zasobem, a <input> i <br> to elementy puste. Obejście: opakować element w kontener i dołączyć pseudoelement do niego. display nie ma znaczenia: pseudoelementy działają na <span> z inline.