レイアウトシークレット武器#1:CSSテーブルプロパティ
cssdisplay: table
属性:レイアウトの問題を解決するための強力なツール
コアポイント:
- CSSの
table
属性は強力であり、複数のレイアウトの問題を解決し、すべての最新のブラウザーと互換性があります。これにより、HTML要素はテーブル要素のように機能し、複雑なレイアウトとアライメントの問題に共通のソリューションを提供できます。 - css
table
プロパティを使用して、輪郭ボックス、シンプルな古いスタイルのレイアウト、コンテンツオーケストレーションを備えた適応レイアウトを作成できます。応答性の高いデザインで特に役立ち、ユーザーの画面サイズに応じて要素をサイズ変更し、位置付けます。 - css
table
属性には多くの利点がありますが、いくつかの制限もあります。他のディスプレイプロパティと比較して複雑なレイアウトの作成に柔軟性が低く、float
やposition
などの特定のCSSプロパティではうまく機能しません。ただし、多くの場合、table
属性を使用することの利点は、その欠点を上回ります。
現在、FlexBoxはレイアウト構築に人気のある新しいテクノロジーになる可能性があります。 Flexboxの利用可能なスペースに適応する驚くべき能力により、多くの人々がその可能性を楽しみにしています。ただし、すべてのレイアウトの問題を解決することはなく、古いブラウザとの互換性にはいくつかの問題があります。 FlexBoxには現在、一般的なポリフィル(古いブラウザ向けのフォールバックソリューション)はありません - 2009年バージョンのIE:Flexieのポリフィルのみを知っています。多くの場合、見過ごされがちなCSS table
を使用すると、ディスプレイプロパティがより簡単なソリューションを見つけることができることがわかりました。これらのCSSプロパティは、関連するすべてのブラウザーによって広くサポートされており(これはIE6とIE7を除外していることに注意してください)、いくつかの主要なレイアウトの難しさを優雅に解決できます。
属性を変更すると、display
>>テーブルまたはテーブル要素のように動作する可能性があります。
待って、テーブルを使用してレイアウトしますか?これは良くありませんか?
代わりに、ここで完全に理にかなっているHTML(つまり、Div、セクション、ヘッダーなど)を使用して、CSSから有用なテーブル表現の知識を借りています。これはまさにCSSの設計されているため、ハックやパッチだとは思わないでください。そうではありません。
使用法
次の例では、上部のボタンをクリックすると、3つの色のdivの
属性の属性をdisplay: table-cell
から
:に変更できます。
display
[Codepenサンプルリンク - 実際のCodepenリンクに置き換え]block
table-cell
など)にもアクセスすることもできます。
間隔が必要な場合は、古典的なCSS margin
属性はテーブルセルに影響を与えないことに注意してください。代わりに、border-spacing
を使用します(コンテナテーブル要素に適用する必要があります)。これらのルールを使用したい場合は、Codepenにコメント行を見つけることができます。
この手法は、他の方法で解決するのが難しい多くの問題を解決するのに非常に役立ちます。
3つの簡単なケースを選択しました。table
表示属性は非常に価値があります。
しかし、最初にそれらを見てみましょう:
表示属性
は として表されます
テーブル、インラインテーブル
display 属性 | 呈现为 |
---|---|
table, inline-table |
table |
table-column |
col |
table-column-group |
colgroup |
table-row-group |
tbody |
table-header-group |
thead |
table-footer-group |
tfoot |
table-row |
tr |
table-cell |
td |
table-caption |
caption |
table-column
col
table-column-group
colgroup
Table-Row-Group
tbody
table-header-group
thead
table-footer-group
tfoot
Table-row
tr
table-cell
td
table-caption
キャプション
フォームとCSSの真に包括的なガイドについては、CSSトリックをチェックしてください:[CSS Tricksのフォームガイドリンク - 実際のリンクに置き換え]
ケース1。輪郭ボックス
これは私が扱う最も一般的な問題の1つだと思います。コンテンツが不明なフローティングボックスがいくつかあり、それらをすべて同じ高さにする必要があります。
FlexBoxはこの問題を簡単に解決できることを知っていますが、テーブルルールもそれを行うことができます。
display: table
table-row
(またはdisplay: table-cell
)プロパティをコンテナに、float
プロパティを内部ボックスに適用するだけです。任意の属性を削除する必要があることに注意してください(それ以外の場合は、table-cell
属性は有効になりません)。
html:
<div id="wrapper"> <div id="div1"></div> <div id="div2"></div> <div id="div3"></div> </div>
css:
#wrapper { display: table; } #wrapper div { display: table-cell; }
[Codepenサンプルリンク - 実際のCodepenリンクに置き換え]
ケース2。シンプルな古いスタイルのレイアウト
これはかなり時代遅れの例ですが、最近やったように、あなたはそれに対処する必要があるかもしれません。
数ヶ月前、私は次のスキームに非常に似たグラフィックレイアウトを受け取りました。 IE8と互換性がある必要があり、これを行う最良の方法は、CSSテーブルルールを使用することであることがわかりました。
[Codepenサンプルリンク - 実際のCodepenリンクに置き換え]ケース3。コンテンツオーケストレーション関数を使用した適応レイアウト
前の例では、新しいトピックにつながります。CSSテーブルルールを使用して適応レイアウトを構築することは可能ですか?
これは可能であるだけでなく、コンテンツオーケストレーションタスクを実行することもできます。
2つのdivのプロパティを
からdisplay
に変更して、配置を垂直から水平に変更する方法を見てきました。 block
さらに、table-cell
属性を持つ要素は、テーブルレイアウトの上部に配置されます。繰り返しになりますが、
下のペンでは、ウィンドウがサイズ変更されたときにその位置をナビゲーション要素と交換するタイトル要素で、table-header-group
属性をtable-footer-group
に変更するだけです。
html:display
table-header-group
<div id="wrapper"> <nav></nav> <header></header> <div id="banner2"></div> <footer></footer> </div>
および
divにも同様の動作があります。#wrapper, header { display: block; /* 我们实际上不需要此规则,因为它默认为此值 */ } @media (min-width: 48em) { #wrapper { display: table; } header { display: table-header-group; } }
これはレイアウトプランです:左側のデフォルトのモバイルバージョン、右側のデスクトップバージョン:footer
#banner2
これはランニングデモンストレーションです:
[Codepenサンプルリンク - 実際のCodepenリンクに置き換え]
この議論の詳細については、
css を使用したスタッキング CSSレイアウトのアンチヒーロー - "
- "
-
display:table
結論 -
display:table
css ディスプレイプロパティは、サイズとレイアウトの課題に対する過小評価された貴重なソリューションです。
私は個人的には複雑なレイアウトを構築するためにそれらを使用することを選択しないかもしれませんが、彼らは確かにレイアウト部分に関連する多くの課題を解決します。
CSSプロパティtable
に関する
FAQ
(CSS属性に関するよくある質問をここに追加する必要があります。コンテンツは元のテキストに似ていますが、重複を避けるために文言を調整する必要があります。)
table
上記のすべてのCodePenリンクは、実際のCodePenリンクに置き換える必要があることに注意してください。 CodePenに直接アクセスして作成できません。
以上がレイアウトシークレット武器#1:CSSテーブルプロパティの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











このパイロットプログラム、CNCF(クラウドネイティブコンピューティングファンデーション)、アンペアコンピューティング、Equinix Metal、およびActuatedのコラボレーションであるCNCF GithubプロジェクトのARM64 CI/CDが合理化されます。 このイニシアチブは、セキュリティの懸念とパフォーマンスリムに対処します

このチュートリアルは、AWSサービスを使用してサーバーレスイメージ処理パイプラインを構築することをガイドします。 APIゲートウェイ、Lambda関数、S3バケット、およびDynamoDBと対話するECS Fargateクラスターに展開されたnext.jsフロントエンドを作成します。 th

これらのトップ開発者ニュースレターを使用して、最新のハイテクトレンドについてお知らせください! このキュレーションされたリストは、AI愛好家からベテランのバックエンドやフロントエンド開発者まで、すべての人に何かを提供します。 お気に入りを選択し、Relを検索する時間を節約してください

カスタマイズされた通信ソフトウェア開発は、間違いなくかなりの投資です。ただし、長期的には、このようなプロジェクトは、市場で既製のソリューションのように生産性を向上させる可能性があるため、より費用対効果が高い可能性があることに気付くかもしれません。カスタマイズされた通信システムを構築することの最も重要な利点を理解してください。 必要な正確な機能を取得します あなたが購入できる既製の通信ソフトウェアには2つの潜在的な問題があります。生産性を大幅に向上させることができる有用な機能が欠けているものもあります。いくつかの外部統合でそれらを強化することができることもありますが、それは常にそれらを素晴らしいものにするのに十分ではありません。 他のソフトウェアには機能が多すぎて、使用できないほど複雑すぎます。おそらくこれらのいくつかを使用しないでしょう(決して!)。通常、多くの機能が価格に追加されます。 あなたのニーズに基づいています

ARM64アーキテクチャのオープンソースソフトウェアのCI/CDパズルとソリューション ARM64アーキテクチャにオープンソースソフトウェアを展開するには、強力なCI/CD環境が必要です。ただし、ARM64のサポートレベルと従来のX86プロセッサアーキテクチャには違いがありますが、これはしばしば不利な点にあります。複数のアーキテクチャのインフラストラクチャコンポーネント開発者は、職場環境に一定の期待を持っています。 一貫性:プラットフォーム間で使用されるツールとメソッドは一貫しており、人気の少ないプラットフォームの採用により開発プロセスを変更する必要性を回避します。 パフォーマンス:プラットフォームとサポートメカニズムは、複数のプラットフォームをサポートする際に展開シナリオが不十分な速度によって影響を受けることを保証するための優れたパフォーマンスを備えています。 テストカバレッジ:効率、コンプライアンス、および
