
サイトを構築する際に、単位としてpxを利用してきました。フォントサイズは%を利用しています。
今後リキッドレイアウト、もしくはエラスティックレイアウトに移行したいと思います。
その際に、単位としてemを利用すると思いますが、pxからemへの数値変換方法が良く分かりません。
計算方法もしくは、変換ツールが有れば紹介して頂きたいと思います。
検索した際に「Em Calculator」と言うツールがあるみたいですが、今はサイトが存在しないみたいです。
何かヒントでも有ればと思います。
横方向は文字数と言うことで、イメージが出来るのですが、高さ方向の数字を取得する悩んでいます。
もしかすると高さを指定することが間違い??
No.1ベストアンサー
- 回答日時:
つい先日まで、Em Calculatorというサイトがあったのですが、今調べたらサーバーが見つからないとのこと
代わりに
font-size-スタイルシートリファレンス
http://www.htmq.com/style/font-size.shtml
とか
CSSフォントサイズ比較表
http://www.geocities.co.jp/SiliconValley-Bay/472 …
とか。
ただし、絶対単位(mm,in,cm,pc,pt)、相対単位(em,ex,px,%)をどう使うかは、一概に、リキッドレイアウトならこう、エラスティックレイアウトならこうと一律には決められないですね。
確かに、ブロックの幅をemで指定すると、一行の文字数がおよそ決められますが、どのブラウザでも同じというわけには行きません。数%から10%くらいの文字数のずれは起きます。また、フォントを大きくしている訪問者の場合は、悪くすると横スクロールが必要になります。
本文ブロックのみ、エラスティックレイアウトを採用したとしても、ユーザー側のウィンドウ幅やフォントサイズの自由度が下がることは否めません。
また、高さ方向はウィンドウ幅と文字数により、変動すべきものです。特に縦型のディスプレイでは、意味ありませんし、そもそもCSS自体、縦の長さを扱うことは表のセル要素以外考慮されていません。
DTP出身の方に多く見受けられる傾向ですが、あまりに、レイアウトに拘るあまりに、HTMLの趣旨--世界中のあらゆるコンピューターで利用できる--に反してしまったら、本末転倒なのではないかと。
もし、それ(レイアウト)に拘るなら、PDFなどはるかに優れた方式があります。
私が、エラスティックレイアウトを使用するのは、そのページに印刷用スタイルシート(media="print")を用意したときのみ、印刷用スタイルシートで使用する程度です。
今のところ、ブロックの寸法は(ウィンドウ/親要素の幅)を基準にした%で組み立てるという、リキッドレイアウトのほうがベストなのではないでしょうか?
アドバイスをありがとうございます。
DTP 関連の人間ではないですが、文字の大きさを変更して、横幅が自動で広がるので有れば、高さ方向も広がらないかなと言う思いでした。
また。単位を純粋に、px から em に移行するにはと言う思いで質問しました。
今後ブラウザのバージョンが上がり、ブラウザのズーム機能が主流になれば、エラスティックレイアウトと言う考えも無くなるかもしれません。
エラスティックレイアウトにするには、単位を em にすれば良いとのことでしたが、現実的に 100px は、em にするにはどのような計算をすれば良いのと言い疑問でした。
色々試行錯誤してみてます。
No.3
- 回答日時:
もう一つありました。
計算しやすくするためにもfont-sizeの指定は親子階層内での一番子供な要素(なんて言えばいいんでしょう?文字を囲っている直接の要素)に指定すると計算が簡単です。(一括でfont-sizeを指定するのではなく、部分的に指定するというか)
これはフォントサイズの大きさが切り替わる単位がブラウザによって違う(Operaがわかりやすく、0.25%ごとに切り替わる)ため、何度もfont-sizeの指定が重なるとemがブラウザ間で統一できなくなるためです。
変換とは微妙に外れているかもしれませんが、テクニックということで。
再度のアドバイスをありがとうございます。
フォントサイズに関しては、何となく理解出来ているつもりなんですが、横幅、高さの単位に、em を利用した場合イメージが湧かなかった為質問させて頂きました。
質問させて頂き、もっともっと勉強しなくてはと言う思いです。
アドバイスを頂いた事は、参考にさせて頂きます。
No.2
- 回答日時:
私の場合ですがxhtml 1.0 strictの場合、まずhtmlかbodyに対してfont-size:medium;を指定します。
そうするとだいたいのブラウザではフォントサイズが16pxになり、1em=16pxとなると思います。
これをemで全体をレイアウトしていきます。
文字で指定するのはbodyなんかでfont-size:10px;等とするとIEで問題が出るからです。
ちなみにHTMLが互換モードな時はfont-size:medium;は16pxになりません。多分smallが16pxだったと思います。
IE6で互換モードになるバグ等を含めると条件付コメントを利用してmediumとsmall(場合によってはsmallとx-small)を指定することになると思います。
リキッドレイアウトやエラスティックレイアウトの場合、ウインドウより幅が大きくならないようにmax-widthを使うことになると思います。
ですがIE6以下ではこれに対応できないため、javascript等を利用して別途対応する、もしくはリキッド等の指定に子供セレクタを利用して別途pxで指定し固定された値も指定するなど一手間欲しいと思います。
まぁ突き詰めればやることはたくさんあるとおもいますが頑張ってください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS CSS上での計算を行うためのルールについて教えてください。 3 2022/08/15 14:43
- HTML・CSS 検索窓とcssハックについて 3 2022/04/22 12:21
- JavaScript ソースコードのいじる場所が分かりません。 1 2022/12/23 02:06
- その他(Microsoft Office) WordやExcelで英数字のみ半角または全角にしたい 6 2022/08/03 08:18
- その他(IT・Webサービス) 乗換案内(区間の一部を指定して有料特急を使用する検索) 4 2023/06/25 22:26
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
- SQL Server SQL 期間内の実施数を合計したい 2 2023/03/03 22:28
- 数学 フーリエ変換後の負の周波数成分の扱いについて 4 2022/09/03 10:18
- Excel(エクセル) エクセル関数の変わった使い方 3 2022/05/13 17:12
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
リストの前後の行間をなくす方...
-
fontサイズ指定の ”-(マイナ...
-
iframe 文字化け
-
HTMLで特定の文字だけ色を変え...
-
ブラウザによって異なるフォン...
-
ホームページビルダーでサイト...
-
遊明朝のプロポーショナルフォ...
-
Excel VBA メール作成について ...
-
API Sleep関数について
-
文字の位置、上下のマージンが...
-
outlook 文字を揃えたい。tab...
-
マイクロ(μ)の文字を半角で出...
-
cssファイルの名称付け
-
PDFファイルを開かずに印刷...
-
プルダウンメニュー内のフォン...
-
テキストエディタmiの表示文字...
-
ACCESS VBA レポートプレビュー...
-
教えてください。
-
印刷時ヘッダーとフッターを挿入
-
横に長いWeb画面を一枚の用紙に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
リストの前後の行間をなくす方...
-
文字の位置、上下のマージンが...
-
Excel VBA メール作成について ...
-
background-color: #ddd;の意味...
-
Format 関数 表示書式指定文字...
-
リンク文字
-
Excel VBA メール作成について ...
-
テキストエリア内の文字の装飾
-
HTMLで特定の文字だけ色を変え...
-
全角半角含めて等幅で表示したい
-
<pre>にフォントを・・・。
-
fontサイズ指定の ”-(マイナ...
-
htaコードですが、IE6に対応さ...
-
jquery.validationEngine.jsカ...
-
特定の文字のみcssを適用するに...
-
CSSを一部無効にしたい
-
CSSのid名class名の重複回避方...
-
テキストボックス途中で切れて...
-
フォームのスタイルについて教...
-
CSSで14px/1.4の部分の記述は正...
おすすめ情報