淘宝プロジェクト実践:ウェブ開発の重要なテクニック

淘宝(タオバオ)のレイアウト実装において、いくつかの重要な技術ポイントに遭遇しました。ここでは、その中核となる知識をまとめました。

行高の単位と継承

font-sizeが16pxの場合を例に説明します。

  • line-height: normal;: ブラウザのデフォルト値が適用されます。
  • line-height: 1.5;: 16px × 1.5 = 24px。相対単位は、継承された後に計算されます。
  • line-height: 200%;: 16px × 200% = 32px。パーセンテージ単位は、計算された後に継承されます。
  • line-height: 50px;: 固定値(ピクセル)です。
  • line-height: 5em;: 16px × 5 = 80px。em単位も、計算された後に継承されます。

ピクセル値以外の単位は、font-sizeの値に基づいて計算されます。

baseタグの役割

  • 基本URLの設定: ページ内のすべての相対URLの基準となるURLを設定します。例えば、<a href="#top"> のようなURLは、baseタグで指定したURLにジャンプします。
  • target属性: リンクの開き方(例: target="_blank")を指定できます。
  • 制約: 一つのHTMLページ内には、一つしか存在できません。

空白の折りたたみ

親要素にfont-size: 0;を設定すると、子要素間の空白(スペース、タブ、改行)が折りたたまれます。この空白のサイズは、親要素のfont-sizeによって決まります。

IE向けのグラデーションフィルタ

古いバージョンのInternet Explorerでグラデーションを表示するためのフィルタです。

filter: progid:DXImageTransform.Microsoft.gradient(
    startColorstr='#ff0080',
    endColorstr='#ff8000',
    GradientType=1
);

GradientType=1は水平方向のグラデーション、GradientType=0は垂直方向のグラデーションを意味します。

画像の垂直中央揃え

画像を含む親要素にdisplay: table-cell;vertical-align: middle;を設定すると、子要素を垂直方向に中央揃えできます。

.parent {
    display: table-cell;
    vertical-align: middle;
    height: 200px; /* 親要素の高さを指定 */
}

テーブルのスタイル

テーブルのボーダーと列幅を制御するためのプロパティです。

table {
    border-collapse: collapse; /* ボーダーを重ねて表示 */
}

th, td {
    padding: 0;
}

/* 列幅をテーブルの幅に基づいて均等に分配 */
table {
    table-layout: fixed;
    width: 100%;
}

単語の改行制御

word-break: keep-all;は、空白やハイフンで改行されず、単語の区切りでしか改行されないようにします。

タグ: CSS HTML line-height baseタグ table-layout

5月31日 08:08 投稿