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

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

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

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

CSS

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

Q&A

解決済

2回答

4457閲覧

Webフォント(Noto Sans JP)を使って上下中央に文字を表示したい

takabosoft

総合スコア8356

HTML

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

CSS

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

0グッド

1クリップ

投稿2020/06/20 01:30

前提・実現したいこと

Googleフォント"Noto Sans JP"を使い、文字をdivの上下中央に表示したい。

試したソースコード

codepenでのプロジェクト↓
https://codepen.io/takabosoft/pen/xxZgRNX

html

1<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@500&display=swap" rel="stylesheet"> 2<div>あいうえお</div>

css

1div { 2 font-family: 'Noto Sans JP', sans-serif; 3 box-sizing: border-box; 4 border: 2px solid black; 5 width: 150px; 6 height: 35px; 7 display: flex; 8 justify-content: center; 9 align-items: center; 10 line-height: 1.1; 11 font-size: 16px; 12 text-align: center; 13}

試した結果、問題点

下の画像はブラウザの96dpi 100%のレンダリング結果を3倍にして赤線や注釈を入れたものです。
イメージ説明

ChromeとFirefoxで縦の位置が微妙に違い、Chromeはほぼ期待どおりですが、Firefoxの方がやや下にずれているように見えます。
これらをなるべく揃えるような方法をご存知の方がいらっしゃいましたらご教示をお願いいたします。

また、ついでですが、フォントの幅もChromeとFirefoxで少し違って見えます。
こちらについてはフォントのレンダリングエンジンの違いだろうとは思っていますが、何か揃える方法がありましたらご教示をお願いいたします。

考えた案

  • Firefoxの場合に限り、テキスト描画にtransform: translate(0, -1px);のような補正を掛ける。

補足情報(FW/ツールのバージョンなど)

  • Windows 10
  • Google Chrome 83.0.4103.106(Official Build) (64 ビット)
  • Firefox 77.0.1 (64 ビット)

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

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

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

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

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

Lhankor_Mhy

2020/06/20 02:43

↓このあたりのルールが実装されてくればCSSでコントロールできるのでしょうけれど、現在のところでは難しいのではないでしょうか。 https://www.w3.org/TR/css-inline-3/#text-edges 確認している環境がWinのようですが、Macやその他のデバイスでは異なっている可能性もあるかと思います。 ↓この記事が詳しいです。 > After running some tests, it seems that browsers use the HHead Ascent/Descent values on Mac OS, and Win Ascent/Descent values on Windows (these values may differ!). https://iamvdo.me/en/blog/css-font-metrics-line-height-and-vertical-align
takabosoft

2020/06/21 05:20

Lhankor_Mhy様 リンク先英語ですぐに理解はできませんが、現状で難しいことは把握いたしました、情報ありがとうございます。
guest

回答2

0

デバイス毎やブラウザ毎に多少変わってしまいます
タイトルなど固定的な文字の場合は文字列を画像にして回避してください。

投稿2020/06/20 05:29

AMK

総合スコア765

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

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

takabosoft

2020/06/21 05:19

回答ありがとうございます。固定文字ではないため、画像案は使えません。
guest

0

自己解決

期待通りの方法は無さそうという事で諦めたいと思います。
ご回答してくださった方、調査してくださった方、ありがとうございました。

投稿2020/06/26 00:06

takabosoft

総合スコア8356

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問