🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
CSS3

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

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

HTML

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

CSS

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

Q&A

2回答

5186閲覧

プロポーショナルフォントを等幅で表示させたいです。

rnak

総合スコア1

CSS3

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

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

HTML

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

CSS

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

0グッド

0クリップ

投稿2020/11/25 00:15

前提・実現したいこと

webページのフォントについてです。
プロポーショナルフォントを等幅で表示させたいです。

プロポーショナルフォント(Quicksand)を使用しているのですが、
数字によって文字幅が異なるため、プルダウン表示させたときに列がずれているように見えて気持ち悪いので、直したいと思った次第です。

試したこと

fontfamily にmonospaceを付与してみました。
指定フォントかmonospaceの一方のみ適用となり、指定フォント&等幅表示は実現しませんでした。

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

HTML5/CSS/jsで実装できる方法を探しています。

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

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

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

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

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

maisumakun

2020/11/25 00:19

普通に考えれば、「最初から等幅のフォントを使う」か「プロポーショナルに表示されるのは受け入れる」という2択になると思うのですが、どうしてそのような矛盾したことを実現したいのでしょうか?
yambejp

2020/11/25 00:28

プロポーショナルは詰めて書くからきれいなので、等幅にしたらしたで 違和感が消せるわけではありません
rnak

2020/11/25 00:33

コメントありがとうございます。 既にリリースしているページの改修作業である為、このような矛盾が生じています。 リリース時には「プロポーショナルに表示されるのは受け入れて」このフォントを選択したのですが、「等幅にしてほしい」という要望がありました。 本来であれば改めて等幅のフォントを選定すべきだと思いますが、 フォントの変更によってデザインが変わることを避けたいため、この質問を上げさせていただきました。
maisumakun

2020/11/25 00:37

「等幅に変える」こと自体、「デザインが変わる」ことだと思うのですが、そちらはいいのでしょうか?
hatena19

2020/11/25 01:50

「プルダウン表示させたときに列がずれているように見えて」の「列」とはなんでしょうか。 また、「プルダウン」というのはSelect要素のことでしょうか。
YT0014

2020/11/25 02:10

まずは実際の出力サンプルを作成し、仕様決定者に見てもらうことをお勧めします。Excelで列の幅を同一にし、各セルに1文字づつ設定することで、疑似的ですが、等幅表示ができるかと思います。 実際の等幅表示を見たら、違和感から差戻しになる可能性が高いように思えますので。
ikadzuchi

2020/11/25 13:09

数字の等幅とプロポーショナルで空白を変えただけの同じ字形を使うことは一般的ですから、よほど極端な字形でない限り違和感は無いと思います。
guest

回答2

0

font-familyのmonospaceなどはブラウザの指定に任せるという意味なので今回の目的には無意味ですね。

フォントによっては複数種類の数字が入っていてOpenTypeの機能で切り替えられるのですが、残念ながらQuicksandに等幅の字形は入っていないようです。(slashed-zeroは入っているのに…)
https://developer.mozilla.org/ja/docs/Web/CSS/font-variant-numeric

幸いライセンスがSIL Open Font LicenseなのでFontForgeなどのフォント編集ソフトでフォントファイルを書き換えるとよいと思います。幅(とフォント名)を変えるだけならそこまで難しくもないです。

あとは泥臭い方法として、JavaScriptで1文字づつ切り出してinline-blockのspanなどで囲ってwidthを指定するという方法も考えられます。

投稿2020/11/25 13:02

ikadzuchi

総合スコア3047

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

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

0

こんばんは。

数字によって文字幅が異なるため、プルダウン表示させたときに列がずれているように見えて気持ち悪いので、直したい

数字、ということであれば、font-variant-numeric: tabular-nums;をご検討されてはいかがでしょうか。

これらの値は、数字の表記の大きさを制御します。二つの値が利用できます。
...

  • tabular-nums は、数字を同じ大きさにする表記を有効にし、表の中に配置しやすくします。 OpenType の tnum の値に対応します。

font-variant-numeric - CSS: カスケーディングスタイルシート | MDN

投稿2020/11/25 13:10

Lhankor_Mhy

総合スコア36946

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

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

Lhankor_Mhy

2020/11/25 13:14

あー、ikadzuchiさんのご回答を見ると、ダメそうですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問