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?

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 …


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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.