質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

font

近年は、コンピュータ上、紙面上で利用できる書体データのことをfontといいます。数える時の単位は「書体」で、データとしてのフォントは、デジタルフォントと呼ばれる場合があります。 HTML/CSSでは要素を指定し、フォント情報を調整することができます。

Q&A

解決済

1回答

704閲覧

CSS - ブラウザのユーザー CSS でフォントを変更した際に起こる問題について

tiitoi

総合スコア21956

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

font

近年は、コンピュータ上、紙面上で利用できる書体データのことをfontといいます。数える時の単位は「書体」で、データとしてのフォントは、デジタルフォントと呼ばれる場合があります。 HTML/CSSでは要素を指定し、フォント情報を調整することができます。

0グッド

0クリップ

投稿2019/03/19 17:15

環境

  • Windows 10
  • Google Chrome 73

質問内容

先日の Windows アップデートで追加された 「UD デジタル教科書体」というフォントが気に入っているので、ブラウザで閲覧する際にも使いたいと思いました。
Chrome の設定のフォント設定で「UD デジタル書体 NK-R」を設定したところ、一部のサイトでは変更が反映されるですが、teratail を含むほとんどの Web サイトではサイトの CSS で設定されたフォントが優先されてしまうため、フォントが変更されませんでした。

そのため、Stylebot というカスタム CSS を適用できる拡張を入れて、以下の CSS を書きました。

css

1* { 2 font-family: "UDデジタル教科書体 NK-R" ; 3}

イメージ説明

すると、確かに Web サイトのフォントを変更できたのですが、以下の問題が発生しています。

問題1

teratail で今まで表示されていなかった、i タグの値が表示されてしまいます。
例: <i class="p-replyActions__icn material-icons fs18 lh14">remove</i>

イメージ説明

問題2

以下は Qiita の例ですが、Font Awesome のアイコンが□で表示されてしまいます。

例: <span class="fa fa-fw fa-line-chart mr-1of2"></span>

イメージ説明

聞きたいこと

  • Web 製作者が指定していないフォントに勝手に変更しているので、デザインが崩れるならわかるのですが、今まで表示されていなかった i タグの値が表示されたり、Font Awesome のアイコンが文字化け?したりする現象がなぜ起こってしまうのでしょうか?

  • 上記の不具合を引き起こさず、フォントを変更できる CSS の記述方法があれば、ご教示いただけると幸いです。

すみませんが、よろしくおねがいします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Web 製作者が指定していないフォントに勝手に変更しているので、デザインが崩れるならわかるのですが、今まで表示されていなかった i タグの値が表示されたり、Font Awesome のアイコンが文字化け?したりする現象がなぜ起こってしまうのでしょうか?

アイコンフォントに英数字の字形が無いため表示されていなかった物を、字形があるフォントで上書きしたからでは?

投稿2019/03/19 17:23

kei344

総合スコア69407

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tiitoi

2019/03/19 17:45 編集

ご回答ありがとうございます。 セレクタを * から body に変更したら、質問の問題は直りました。 body { font-family: "UDデジタル教科書体 NK-R" ; } ちなみにこれはどういう仕組みなのでしょうか?
kei344

2019/03/19 17:46

仕組みとは?どういう答えを求めておられるかがわかりません。 「CSS」とか「セレクタ」とかでいいですか?
tiitoi

2019/03/19 18:10 編集

質問が漠然としており、申し訳ありません。 優先順位が「全称セレクタ * < 要素セレクタ body < class セレクタ」の順に高いと理解しているのですが、「全称セレクタ *」から「要素セレクタ body」に変えたことでなぜ問題が直ったのかがよく理解できておりません。 「全称セレクタ *」だとそれより優先順位が高いはずのアイコンの class='fa fa-line-chart' などで設定された font-family が上書きされてしまい、逆に要素セレクタ body にしたら、上書きされなくなったのかという点についてです。
kei344

2019/03/19 18:16

> 逆に要素セレクタ body にしたら、上書きされなくなったのかという点 body に書かれた指定より要素への指定のほうが優先されるからです。 body { font-size: 15px; } .fa { font-size: 25px; } これなら .fa が優先されますよね?全称セレクタはクラスセレクタより優先度は低いですが、他の物で指定していない値は上書きされます。
kei344

2019/03/19 18:22

<body><span>span</span><span class="fa">span</span>other</body> body { font-size: 15px; } .fa { font-size: 25px; } * { font-size: 35px; } https://jsfiddle.net/ayxhL3u2/
tiitoi

2019/03/19 18:51 編集

具体例まで載せていただきありがとうございます。 > 他の物で指定していない値は上書きされます。 全称セレクタから要素セレクタに変更したことによる挙動の変化について理解できました。要素セレクタを指定した際、その子孫要素にも指定したことになると勘違いしていましたが、そうではないので、全称セレクタの指定が効くのですね。 また優先度が高い .fa のクラスセレクタが指定されているものまでなぜ全称セレクタで上書きされるのか疑問だったのですが、確認したところ、ユーザーCSSを適用する拡張のほうで勝手に important が入れられてしまっており、それで全称セレクタにした際、上書かれてしまっているのが原因でした。 この度は丁寧なご解説ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問