Tylko dla kompletności: rzeczywistej długi myślnik ( „mdash”) postać jest: - i powinien być tak szeroki jak znak „M”
Simon B.
6
tak, wielkie M
Ray Tayek
Odpowiedzi:
85
Parsery SGML (lub parsery XML w przypadku XHTML) mogą sobie poradzić —bez konieczności przetwarzania DTD (co nie ma znaczenia dla przeglądarek, ponieważ po prostu slurp tag soup), a jednocześnie —jest łatwiejsze do czytania i pisania w kodzie źródłowym.
Osobiście trzymałbym się dosłownego myślnika em i upewniałbym się, że moje ustawienia kodowania znaków są spójne.
Pomijając błędy przeglądarki, będą one wyświetlać te same we wszystkich przypadkach, więc jedyną różnicą byłaby czytelność kodu, na którą wskazywałaby —.
Lub, jeśli używasz UTF-8 jako zestawu znaków w dokumencie HTML, możesz wpisać znak bezpośrednio. To również wyświetlałoby dokładnie to samo.
Zauważ, że jest to prawdziwe tylko dla HTML, w XML, &8212;zawsze działa, podczas gdy —zależy to od zadeklarowania jednostki.
Flimm
10
—:: —::\u2014
Przedstawiając m-myślnik w ciągu tekstowym JavaScript do wyjścia w formacie HTML, należy pamiętać, że będzie on reprezentowany przez wartość w formacie Unicode. Istnieją przypadki, w których znaki ampersand („&”) nie zostaną rozwiązane - w szczególności niektóre konteksty w JSX. W takim przypadku ani —ani —nie zadziała. Zamiast tego trzeba użyć sekwencji ucieczki Unicode: \u2014.
Na przykład podczas implementowania render()metody wyprowadzania tekstu ze zmiennej JavaScript:
render() {
let text='JSX transcoders will preserve the & character—to '
+ 'protect from possible script hacking and cross-site hacks.'return (
<div>{text}</div>
)
}
Spowoduje to wyświetlenie:
<div>JSX transcoders will preserve the & character—to protect from possible script hacking and cross-site hacks.</div>
Zamiast &reprezentacji z prefiksem - użyj \ u2014:
lettext='JSX transcoders will preserve the & character\u2014to …'
Ze względu na przenośność odniesienia do jednostek Unicode powinny być zarezerwowane do użytku w dokumentach, które z pewnością będą zapisane w zestawach znaków UTF-8 lub UTF-16. We wszystkich innych przypadkach należy stosować odniesienia alfanumeryczne.
Tłumaczenie: Jeśli szukasz najszerszego wsparcia, idź z —
Możliwe, że użycie kodu liczbowego jest bardziej uniwersalne, ponieważ jest to bezpośrednie odniesienie do znaku w tabeli encji html, ale myślę, że oba działają wszędzie. Pierwsza notacja jest po prostu znacznie łatwiejsza do zapamiętania dla wielu znaków.
Odpowiedzi:
Parsery SGML (lub parsery XML w przypadku XHTML) mogą sobie poradzić
—
bez konieczności przetwarzania DTD (co nie ma znaczenia dla przeglądarek, ponieważ po prostu slurp tag soup), a jednocześnie—
jest łatwiejsze do czytania i pisania w kodzie źródłowym.Osobiście trzymałbym się dosłownego myślnika em i upewniałbym się, że moje ustawienia kodowania znaków są spójne.
źródło
Są dokładnie tym samym charakterem. Zobacz: http://en.wikipedia.org/wiki/Dash
Pomijając błędy przeglądarki, będą one wyświetlać te same we wszystkich przypadkach, więc jedyną różnicą byłaby czytelność kodu, na którą wskazywałaby
—
.Lub, jeśli używasz UTF-8 jako zestawu znaków w dokumencie HTML, możesz wpisać znak bezpośrednio. To również wyświetlałoby dokładnie to samo.
źródło
&8212;
zawsze działa, podczas gdy—
zależy to od zadeklarowania jednostki.—
::—
::\u2014
Przedstawiając m-myślnik w ciągu tekstowym JavaScript do wyjścia w formacie HTML, należy pamiętać, że będzie on reprezentowany przez wartość w formacie Unicode. Istnieją przypadki, w których znaki ampersand („&”) nie zostaną rozwiązane - w szczególności niektóre konteksty w JSX. W takim przypadku ani
—
ani—
nie zadziała. Zamiast tego trzeba użyć sekwencji ucieczki Unicode:\u2014
.Na przykład podczas implementowania
render()
metody wyprowadzania tekstu ze zmiennej JavaScript:render() { let text='JSX transcoders will preserve the & character—to ' + 'protect from possible script hacking and cross-site hacks.' return ( <div>{text}</div> ) }
Spowoduje to wyświetlenie:
<div>JSX transcoders will preserve the & character—to protect from possible script hacking and cross-site hacks.</div>
Zamiast
&
reprezentacji z prefiksem - użyj \ u2014:let text='JSX transcoders will preserve the & character\u2014to …'
źródło
Ze strony internetowej W3 Typowe encje HTML używane do typografii
Tłumaczenie: Jeśli szukasz najszerszego wsparcia, idź z
—
źródło
Możliwe, że użycie kodu liczbowego jest bardziej uniwersalne, ponieważ jest to bezpośrednie odniesienie do znaku w tabeli encji html, ale myślę, że oba działają wszędzie. Pierwsza notacja jest po prostu znacznie łatwiejsza do zapamiętania dla wielu znaków.
źródło