CSS / HTML: Jaki jest właściwy sposób na kursywę tekstu?

Co to jestpoprawny sposób na kursywę? Widziałem następujące cztery podejścia:

<i>Italic Text</i>

<em>Italic Text</em>

<span class="italic">Italic Text</span>

<span class="footnote">Italic Text</span>


<i>

To jest „stary sposób”.<i> nie ma znaczenia semantycznego i przekazuje jedynie efekt prezentacji, dzięki czemu tekst jest pochylony. O ile widzę, jest to wyraźnie błędne, ponieważ jest to nie semantyczne.


<em>

Używa znaczników semantycznych do celów czysto prezentacyjnych. Tak się po prostu dzieje<em> domyślnie renderuje tekst kursywą, więc jest często używany przez tych, którzy o tym wiedzą<i> należy unikać, ale nie są świadomi jego znaczenia semantycznego. Nie wszystkie teksty kursywą są kursywą, ponieważ jest podkreślona. Czasami może być dokładnie odwrotnie, jak notatka lub szept.


<span class="italic">

Wykorzystuje klasę CSS do umieszczenia prezentacji. Często jest to reklamowane jako właściwy sposób, ale znowu wydaje mi się to niewłaściwe. Wydaje się, że nie ma to większego znaczenia semantycznego<i>. Ale jego zwolennicy płaczą, znacznie łatwiej jest później zmienić całą kursywę, jeśli, powiedzmy, chciałeś pogrubić. Jednak tak nie jest, ponieważ zostałbym wtedy z klasą o nazwie „kursywa”, która pogrubiała tekst. Ponadto nie jest jasne, dlaczego kiedykolwiek chciałbym zmienić cały kursywę na mojej stronie internetowej, a przynajmniej możemy pomyśleć o przypadkach, w których nie byłoby to pożądane lub konieczne.


<span class="footnote">

Wykorzystuje klasę CSS do semantyki. Jak dotąd wydaje się, że jest to najlepszy sposób, ale w rzeczywistości ma dwa problemy.

Nie cały tekst ma wystarczające znaczenie, aby zagwarantować znaczniki semantyczne. Na przykład, tekst pisany kursywą na dole strony to naprawdę przypis? Czy jest to na bok? Albo coś zupełnie innego. Być może nie ma on specjalnego znaczenia i musi być renderowany kursywą, aby oddzielić go od tekstu poprzedzającego.

Znaczenie semantyczne może się zmienić, gdy nie jest obecne w wystarczającej sile. Powiedzmy, że poszedłem za „przypisem” opartym na niczym innym niż tekście znajdującym się na dole strony. Co się stanie, gdy kilka miesięcy później chcę dodać więcej tekstu na dole? To już nie jest przypis. Jak możemy wybrać klasę semantyczną, która jest mniej ogólna niż klasa<em> ale unika tych problemów?


streszczenie

Wydaje się, że wymóg semantyki wydaje się nadmiernie uciążliwy w wielu przypadkach, gdy chęć zrobienia czegoś kursywą nie ma na celu niosenia znaczenia semantycznego.

Ponadto chęć oddzielenia stylu od struktury spowodowała, że ​​CSS został reklamowany jako zamiennik<i> kiedy zdarzają się sytuacje, w których byłoby to mniej przydatne. To pozostawia mnie z powrotem z pokorą<i> tag i zastanawiasz się, czy ten ciąg myśli jest powodem pozostawienia go w specyfikacji HTML5?

Czy są jakieś dobre wpisy na blogu lub artykuły na ten temat? Być może przez osoby zaangażowane w decyzję o zachowaniu / stworzeniu<i> etykietka?

questionAnswers(12)

yourAnswerToTheQuestion