C'è un modo per impostare il carattere monospace * predefinito * in Safari?


11

Ho un'applicazione web che utilizza il carattere monospace predefinito del browser. È impostato in questo modo in modo che l'utente possa scegliere il proprio. In Chrome, funziona bene, poiché è facile impostare i caratteri predefiniti, ma in Safari hanno rimosso l'opzione.

Esiste un modo per gli utenti di impostare i caratteri predefiniti in Safari?

Risposte:


2

A partire da Safari 12, tutte le opzioni per farlo sono state rimosse:

  • Il pannello Aspetto è (lungo) scomparso
  • Le defaultschiavi non vengono più rispettate
  • Le @font-facedefinizioni CSS sono limitate a una whitelist di local()valori incorporata , ignorando qualsiasi altro font installato sul sistema, che fa parte di un ampio pacchetto di misure anti-fingerprinting

Nel loro insieme, ciò significa che non c'è modo di cambiare le impostazioni predefinite da Times for serif, Helvetica for sans-serife Courier for monospace.


L'unica cosa che puoi ancora fare è creare un foglio di stile utente per lo stile diretto di vari elementi. Quindi, ad esempio, puoi cambiare la famiglia di caratteri predefinita da serifa sans-serif:

body { font-family: sans-serif }

Oppure puoi anche nominare caratteri specifici non di sistema installati localmente:

body { font-family: 'Open Sans' }

Sfortunatamente, mentre questo funziona ragionevolmente bene per modificare il carattere del documento predefinito, è complicato utilizzare lo stesso approccio per ridisegnare ogni elemento predefinito in un carattere monospace. Non sono sicuro che i CSS possano persino emulare del tutto il comportamento predefinito per tali elementi, mentre in precedenza era facile farlo utilizzando uno defaultso un foglio di stile utente con una @font-faceregola per monospace(che semplicemente ridefiniva il monospacesignificato senza toccare lo stile predefinito stesso, e così ha permesso il comportamento predefinito da applicare a quell'altro font).

Non mi piace visceralmente leggere grandi quantità di testo impostato in Courier, quindi sembra che in futuro dovrò usare un altro browser per leggere le RFC ...


Grazie per l'aggiornamento, Aristotele. Sebbene la risposta di Lri sia stata molto buona, non è invecchiata bene, quindi ho spostato il controllo sulla tua risposta per indirizzare i futuri visitatori alle informazioni più aggiornate.
Carl Smith,

Grazie. Sì, ho usato la risposta di Lri per anni; sfortunatamente, la musica ora si è fermata. È ... deplorevole, per non dire altro, ma è così.
Aristotele Pagaltzis

12

Le seguenti informazioni erano corrette al momento della pubblicazione, ma ora si applicano solo alle versioni obsolete di Safari.


Esistono preferenze non esposte per modificare i caratteri predefiniti e le dimensioni dei caratteri:

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

Un'altra opzione è quella di modificare il file CSS che definisce gli stili predefiniti (guarda in Preferenze> Avanzate> Foglio di stile ), aggiungendo qualcosa di simile, ad esempio:

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

Questa regola fa in modo che qualsiasi elemento che usi font-family: monospace(così come elementi simili <pre>e <code>di default) usi Menlo. Basta cambiare il nome del carattere (facendo attenzione a mantenere le virgolette allegate) a quello che preferisci.


1
Improvvisamente, non funziona con caratteri aggiuntivi installati tramite Font Book on Mojave (10.14.2)
Ilya Vassilevsky,

Vedi la nuova risposta di Aristotele Pagaltzis (sopra). Non è una grande notizia.
Carl Smith,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.