垂直グリッドと漸進的な行間隔の例

垂直グリッドと漸進的な行間隔の例

新しい質問

急いで来て、急いで行ってください。 「垂直グリッドとプログレッシブ行間隔 (パート 1)」の前回のリリースから 2 か月以上が経過しました。一方、前回の結果を見てみましょう。はぁ?サイドベットが少し奇妙に感じられるのはなぜでしょうか?


(デモ6.html)

または、タイポグラフィに関する私の記事を参照してください。

  • 中国のインターネットで最もよく使われる行間隔は約1.5です。
  • 行の長さが長くなるほど、行間隔を大きくする必要があります。(行間隔が小さすぎると、読者は簡単にテキストを連続して読んでしまいます。行間隔が大きすぎると、読者は行を読むときにテキストが連続していないと感じてしまいます。)

欄外注のフォントサイズが 12 ピクセルの場合、行の高さが 24 ピクセルでは明らかに大きすぎるようです。しかし、前回の方法によれば、縦のリズムは欄外注の行間隔と本文の行間隔が一致している必要がある。したがって、垂直のリズムを維持するためには、両側の行間隔を同時に狭めるしかありません。要約: 信頼性がありません。では、確立した垂直のリズムが効果的になるように、余白の行間隔をどのように調整すればよいのでしょうか?このため、漸進的な行間隔を導入する必要があります。

漸進的な行間隔

一般的に、漸進的な行間隔は、厳格な垂直リズムを補完するものです。垂直リズムでは、欄外の注釈が本文の各行に揃う必要があります。対照的に、漸進的な行間隔では、欄外の注釈もメインのテキストと揃えることができますが、すべての行ではなく、数行ごとに揃える必要があります。一般的には、4 行または 5 行ごとに配置が行われます。前の記事を見直して、この記事の冒頭の例には次の「構成」があることを確認しましょう。

  • 本文: フォントサイズ 14px、行間隔 24px、段落間隔 24px
  • h1: フォントサイズ 24px、行間隔 24px、段落間隔 24px、段落間隔 24px
  • h2: フォントサイズ: 18px、行間隔 24px、段落間隔 12px、段落間隔 12px
  • 注記テキスト: フォントサイズ 12px、行間隔 24px、段落間隔 24px
  • 注記: 境界線の太さは 1px、パディングは 11px です。12px 上に移動することを忘れないでください。

欄外注の行間隔と段落間隔を18pxに変更します。すると状況は次のようになります:


(デモ9.html)

最初の行のベースラインが揃っていないのはなぜかお気づきでしょうか?これは、フロー レイアウトでは、行の高さに応じてテキスト ブロックが上部に揃えられるためです。以下のように表示されます。

したがって、ここでは、最初の行のベースラインを揃えるために、マージンを特定のピクセル数だけ下げる必要もあります。残念ながら、何ピクセル減らせばいいのでしょうか? これは非常に複雑な問題です。何度か試してみましたが、まだパターンが見つかりません。次の 3 つの結論しか導き出せません。

  • 本文行の高さをh px、脚注行の高さをh' px、下げる値をd pxとすると、この値は1/2(hh') < d < (hh') の範囲になります。①
  • 行内に欧文文字(半角数字または英字)が含まれる場合、欧文文字がない場合と比べて行のベースラインが 1 ピクセルずれることがあります。
  • 異なるフォント レンダリング エンジンでは動作が一貫していない場合があります。
前のページ1 2 3 次のページ 続きを読む

<<:  HTML テーブルの使い方 (Web ページの視覚効果を表示する)

>>:  Remレイアウトを使用して適応性を実現する

推薦する

CSS スタイルの優先順位とカスケード順序に関する議論

一般的に: [重要なフラグ1つ] > [特別なフラグ4つ] > 宣言順!importan...

Baidu百科事典UIの開発動向について議論する

<br />百度百科事典の正式版がついにオンラインになりました。2年間の「テスト版」の帽...

独自のネイティブ JavaScript ルーターを作成する方法

目次序文導入JavaScript 履歴 API独自のネイティブJSルーティングを実装するHistor...

Expressを使用してプロジェクトを自動的にビルドするNode.jsのプロセス全体

1. Expressライブラリとジェネレータをインストールするcmdを開いて、次のコマンドを入力しま...

Vue.js フロントエンド Web ページ ポップアップ非同期動作例の分析

目次1. 序文2. ポップアップコンポーネントを2つ見つける3. 自分で作る3.1. Promise...

MySQL でのフィルター条件なしのカウントの詳細な説明

カウント(*)成し遂げる1. MyISAM: テーブル内の行の総数をディスク上に保存し、フィルタリン...

テーブル設定の背景画像が100%表示されない解決策

開発中に以下の状況が発見されました。 (1) ファイルが.jspファイル拡張子で保存されている場合、...

MySQL が group by をサポートしない場合の解決策の概要

MySQL 5.7.x の最新バージョンをダウンロードしてインストールしました。デフォルトでは、on...

Docker Composeを使用してDOCleverをインストールする詳細なプロセスを説明します

目次1. Docker Composeとは何か、インストールして使用する方法2. DOCleverと...

TeamCenter12 にログインする際の 404/503 問題の解決方法

TeamCenter12はアカウントのパスワードを入力し、ログインをクリックすると、404または50...

コマンドを使用してMySQLデータベース(de1)を作成する方法

1. MYSQLに接続するフォーマット: mysql -h ホストアドレス -u ユーザー名 -p ...

MySQL 基本チュートリアル パート 1 MySQL5.7.18 のインストールと接続チュートリアル

この記事から、MySQL を紹介し学習するための新しい一連の記事がスタートします。なぜ MySQL ...

DIV 背景半透明テキスト非半透明スタイル

DIVの背景は半透明ですが、DIV内の文字は半透明ではありませんコードをコピーコードは次のとおりです...

WeChatアプレットがログインインターフェースを実装

WeChatアプレットのログインインターフェースは参考までに実装されています。具体的な内容は次のとお...

エンタープライズプロダクション MySQL 最適化入門

Oracle、DB2、SQL Server などの他の大規模データベースと比較すると、MySQL に...