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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

Microsoft Edge

Microsoft Edgeは、マイクロソフト社が開発する新しいWebブラウザです。Windows 10から標準搭載されており、Internet Explorerとは違うレンダリングエンジンが採用されています。

CSS

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

Q&A

解決済

1回答

3380閲覧

MS Edgeでfont-family: monospaceのときfont-size指定が期待通りに機能しません

_kari_

総合スコア34

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

Microsoft Edge

Microsoft Edgeは、マイクロソフト社が開発する新しいWebブラウザです。Windows 10から標準搭載されており、Internet Explorerとは違うレンダリングエンジンが採用されています。

CSS

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

1グッド

0クリップ

投稿2021/02/16 08:37

編集2021/02/16 08:54

前提

Chromium版Microsoft EdgeでCSSのfont-sizeが期待通りに機能しません。
OSはWindows 10です。

HTML

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <style> 6 #elm { 7 font-family: monospace; 8 font-size: inherit; 9 } 10 </style> 11</head> 12<body> 13 <div id="elm">text</div> 14</body> 15</html>

このようなHTMLがあったとき、#elmのfont-sizeは親要素のbodyのfont-sizeを継承するため、bodyと#elmのfont-sizeは同じになると思います。
実際、Firefoxでは、bodyと#elmの計算済みのfont-sizeはどれも16pxになります。

発生している問題

しかしながら、Chromium版のMS Edgeでは、bodyのfont-sizeは16pxになりますが、#elmのfont-sizeは13pxになり、意図したとおりになりません。

MS Edgeでもbodyと#elmの計算済みfont-sizeを揃えたいです。
ただし、

  • 親要素のfont-sizeを16pxに指定する
  • #elmのfont-familyを変更する(例えばsans-serifに)
  • #elmのfont-sizeを16pxに指定する

の3点は無しで揃えたいです。

試したこと

先に挙げた3点の方法を使うと揃えることはできましたが、

  • px単位での指定をしたくない(inheritやemやremや%などだけを使いたい)
  • どうしてもfont-family: monospaceを使いたい

という事情がありまして、使えません。

以下のようなCSSを試しましたがうまくいきませんでした。

CSS

1#elm { 2 font-family: monospace; 3 font-size: 1em; 4}

CSS

1#elm { 2 font-family: monospace; 3 font-size: 1rem; 4}

CSS

1#elm { 2 font-family: monospace; 3 font-size: 100%; 4}

CSS

1#elm { 2 font-family: monospace; 3 font-size: medium; 4}

CSS

1body { 2 font-size: 1rem; 3} 4#elm { 5 font-family: monospace; 6 font-size: 100%; 7}

知りたいこと(2つ)

  • なぜFirefoxでは意図したとおりにfont-sizeが継承されるのに、MS Edgeではそうならないのでしょうか?

エンジンの違いといえばそうなのですが、なんとなくEdgeの挙動が奇妙に感じます。

  • どのようにすればbodyと#elmのfont-sizeを合わせられるでしょうか?

冒頭のHTMLは説明のために単純化しているのでbodyと#elmのfont-sizeを合わせても大して意味がないような内容になっていますが、自作しているWebアプリのクロスブラウザ対応のために揃えたいです。

teratailを利用するのは初めてなので、おかしな点があればご指摘いただければ幸いです。

Lhankor_Mhy👍を押しています

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

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

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

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

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

Lhankor_Mhy

2021/02/16 08:51

<div id="elm1">→<div id="elm">
_kari_

2021/02/16 08:56

ご指摘助かります。 コードを質問欄に貼って修正して整形して…をやっているときに間違えたみたいです。 ありがとうございます。
_kari_

2021/02/16 09:23

仕様じゃなくてバグの扱いなんですね… normalize.cssではここらへんもきちんと対応されているみたいです。おとなしく使っておけばよかった…
guest

回答1

0

ベストアンサー

こんばんは。

ググったところ、以下のような記事がありました。

等幅フォントも可変幅フォントと同じサイズで表示したい時は次のように指定します。

font-family: monospace, serif;
font-family: monospace;だと文字が小さくなる - しらいとブログ

投稿2021/02/16 08:55

Lhankor_Mhy

総合スコア36960

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

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

_kari_

2021/02/16 09:13

おおお!まさにこれだと思います。 「edge font-size inherit」とかのキーワードで自分なりに検索はしていたのですが、この情報は見つけられていませんでした。 調べると、不思議なことにfont-family: monospace, monospace;と二回書いても同じ効果が得られるようです。 https://stackoverflow.com/questions/38781089/font-family-monospace-monospace なんでなのかはさっぱりですが… とりあえず今回はfont-family: monospace, serif;と指定して対処します。 ご回答ありがとうございました。こんなに早く解決するとは思っていませんでした。
Lhankor_Mhy

2021/02/16 09:21

なんと、それは興味深い…… というか、かなりバグっぽいふるまいですね???? 私も勉強になりました。良質問ありがとうございます。高評価します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問