[解決済み] 幅を*文字*で指定する
2022-07-29 18:21:30
質問
を使用する場合 固定幅フォント で、HTML要素の幅を指定したいのですが。 文字 .
"em"の単位は、M文字の幅になるはずなので、それを使って幅を指定すればいいはずです。これはその一例です。
<html>
<head>
<style>
div {
font-family: Courier;
width: 10em;
}
</style>
</head>
<body>
<div>
1 3 5 7 9 1 3 5 7 9 1
</div>
</body>
</html>
ブラウザは10列目ではなく15列目で改行するので、結果は私が望んだものではありません。
1 3 5 7 9 1 3 5
7 9 1
(UbuntuのFirefoxとChromiumでの結果です)
ウィキペディアの記事 には、「"em"は必ずしもMの幅とは限らない」とあるので、確かに"em"という単位は信用できなさそうですね。
どのように解決するのですか?
1em は M の高さであり、幅ではありません。より一般的には、これらは大文字と小文字の高さです。
幅はまったく別の問題ですが......。
上の例を次のように変更します。
<div>
<span>1</span> 3 5 7 9 1 3 5 7 9 1
</div>
で、spanの幅と高さが違うことがわかると思います。Chromeでfont-sizeが20pxの場合、spanは12x22pxで、20pxはフォントの高さで、2pxは行の高さです。
ここで、em と ex は役に立たないので、CSS だけの解決策として考えられるのは
-   だけを含む要素を作成する。
- サイズを自動調整する
- divをandの中に配置する。
- 周囲の要素の10倍の大きさにする。
しかし、私はこれをコード化することはできませんでした。また、本当に可能かどうかも疑問です。
しかし、同じロジックをJavascriptで実装することができます。ここでは、ユビキタスなjQueryを使っています。
<html>
<head>
<style>
body { font-size: 20px; font-family: Monospace; }
</style>
<script
type="text/javascript"
src ="https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js">
</script>
</head>
<body>
<div>1 3 5 7 9 1 3 5 7 9 1</div>
<script>
$('body').append('<div id="testwidth"><span> </span></div>');
var w = $('#testwidth span').width();
$('#testwidth').remove();
$('div').css('width', (w * 10 + 1) + 'px');
</script>
</body>
</html>
(w * 10 + 1)の+1は四捨五入の問題を処理するためのものです。
関連
-
cssで背景色の半透明化を実現する2つの方法
-
[CSSチュートリアル】CSSのトリッキーなグラデーションで高度な背景光アニメーションの感覚を実現
-
[CSSチュートリアル】CSSのfloatとunfloatについて
-
[css3]css3は、3つの方法のサンプルコードのテキストの点滅効果を達成するために
-
[CSSチュートリアル】CSSで実現するイメージマッピングメソッド
-
[css3]グレーモードやブラックモードを実現するCSS3フィルター(フィルター)サンプルコード(Webページ用
-
[解決済み] コンテナの幅に応じたフォントの拡大縮小
-
[解決済み] CSSのクラス名/セレクタに使用できる文字は?
-
[解決済み] <fieldset> のサイズが変更される; 削除不可能な `min-width: min-content` があるように見える
-
[解決済み】カラムモードでフレックスボックスのアイテムが折り返されるとき、コンテナの幅が大きくならない。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[CSSチュートリアル】Pure CSSカスタム複数行抜け問題(原理から実装まで)
-
[CSSチュートリアル】CSSで2カラムレイアウトを実現するN種類のメソッド
-
[CSSチュートリアル】CSSを解析して、画像のテーマカラー機能を抽出する(コツ)
-
[css3]ピュアCSS3によるネオンライト効果
-
[CSSチュートリアル】ボックス内の複数要素を両端揃えの効果で実現するCSS
-
[CSSチュートリアル】CSSで実現するイメージマッピングメソッド
-
[CSSチュートリアル】CSSで炎のエフェクトを記述する方法
-
[css3]スクロールバー美化効果を実現するcss3サンプルコード
-
[css3]css3によるフレックスレイアウト幅の解決方法が有効でない件
-
[CSSチュートリアル】CSSで実現できるのなら、わざわざJavaScriptを使う必要はない