Czy istnieje sposób na ustawienie * domyślnej * czcionki Monospace w Safari?

11

Mam aplikację internetową, która korzysta z domyślnej czcionki monospace w przeglądarce. Jest skonfigurowany w ten sposób, aby użytkownik mógł wybrać własny. W Chrome działa to dobrze, ponieważ łatwo jest ustawić domyślne czcionki, ale w Safari usunęli tę opcję.

Czy użytkownicy mogą ustawić domyślne czcionki w Safari?

Carl Smith
źródło

Odpowiedzi:

2

Począwszy od Safari 12, wszystkie dostępne opcje zostały usunięte:

  • Panel Wygląd zniknął (długo)
  • Te defaultsklucze nie są już przestrzegane
  • @font-faceDefinicje CSS są ograniczone do wbudowanej białej listy local()wartości, ignorując wszelkie inne czcionki zainstalowane w systemie, który jest częścią szerokiego pakietu środków zapobiegających pobieraniu odcisków palców

Podsumowując, oznacza to, że nie ma możliwości zmiany wartości domyślnych od Times for serif, Helvetica for sans-serifi Courier for monospace.


Jedyne, co możesz zrobić, to utworzyć arkusz stylów użytkownika, aby bezpośrednio stylizować różne elementy. Na przykład możesz zmienić domyślną rodzinę czcionek z serifna sans-serif:

body { font-family: sans-serif }

Lub możesz nawet nazwać określone lokalnie zainstalowane czcionki niesystemowe:

body { font-family: 'Open Sans' }

Niestety, chociaż działa to całkiem dobrze w przypadku zmiany domyślnej czcionki dokumentu, skomplikowane jest zastosowanie tego samego podejścia do zmiany stylu każdego elementu, który domyślnie ma czcionkę o stałej szerokości. Nie jestem pewien, czy CSS w ogóle może w pełni emulować domyślne zachowanie takich elementów - podczas gdy wcześniej było to łatwe, używając jednego defaultslub jednego arkusza stylów użytkownika z @font-faceregułą monospace(która po prostu przedefiniowała monospaceznaczenie, nie dotykając samego domyślnego stylu, i pozwoliło zastosować domyślne zachowanie do tej drugiej czcionki).

Nie lubię czytać dużych ilości tekstu ustawionego w Courier, więc wygląda na to, że w przyszłości będę musiał użyć innej przeglądarki, aby odczytać RFC

Arystoteles Pagaltzis
źródło
Dzięki za aktualizację, Arystoteles. Chociaż odpowiedź Lri była bardzo dobra, nie zestarzała się dobrze, więc przesunąłem czek na twoją odpowiedź, aby skierować przyszłych odwiedzających na najbardziej aktualne informacje.
Carl Smith
Dzięki. Tak, korzystałem z odpowiedzi Lri od lat; niestety muzyka się teraz zatrzymała. To jest… godne pożałowania, co najmniej, ale tak właśnie jest.
Arystoteles Pagaltzis
12

Poniższe informacje były prawidłowe, gdy zostały opublikowane, ale teraz dotyczą tylko przestarzałych wersji Safari.


Istnieją nieoczekiwane preferencje dotyczące zmiany domyślnych czcionek i rozmiarów czcionek:

defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2StandardFontFamily Georgia
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2DefaultFontSize 16
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2FixedFontFamily Menlo
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2DefaultFixedFontSize 14

Inną opcją jest edycja pliku CSS, który definiuje style domyślne (patrz Preferencje> Zaawansowane> Arkusz stylów ), dodając coś takiego, na przykład:

@font-face {
   font-family: monospace;
   src: local('Menlo');
}

Ta reguła powoduje, że każdy element, który używa font-family: monospace(a także elementy takie jak <pre>i <code>domyślnie) korzysta z Menlo. Po prostu zmień nazwę czcionki (uważaj, aby zachować załączające cudzysłowy) na cokolwiek wolisz.

Lri
źródło
1
Nagle nie działa dla dodatkowych czcionek zainstalowanych za pomocą Font Book na Mojave (10.14.2)
Ilya Vassilevsky
Zobacz nową odpowiedź Arystotelesa Pagaltza (powyżej). To nie jest dobra wiadomość.
Carl Smith