Block、Inline、Inline-Block
block、inline、inline-blockの表示動作の違いを理解します。
「Block、Inline、Inline-Block」はCoddyKit上の無料CSS Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCSS Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 CSS Academyコースには全4レッスンが含まれています。
display プロパティ
displayプロパティは、CSSで最も基本的なプロパティの1つです。要素がレイアウトフローにどのように参加するか、つまりブロックレベルボックス、インラインボックス、またはその中間のどれを作るかを決定します。
ブロック要素
ブロック要素は新しい行から始まり、コンテナーの幅いっぱいに広がります。幅、高さ、マージン、パディングをすべての辺に設定できます。
デフォルトのブロック要素:div、p、h1-h6、section、article。
<div>I'm a block element — full width, centered.</div>
インライン要素
インライン要素はテキストの中に流し込まれます。新しい行から始まりません。widthやheightを設定しても効果はありません。上下のマージンは無視されますが、水平方向のマージンとパディングは機能します。
デフォルトのインライン要素:span、a、strong、em、img。
<p>This is <span>an inline span</span> inside a paragraph.</p>
インラインブロック要素
display: inline-blockはハイブリッドな表示形式です。要素はインラインで流れ(強制的な改行なし)、一方でブロック要素と同じように幅、高さ、すべてのボックスモデルプロパティに対応します。
<a class="btn" href="#">Click Me</a>
ナビゲーションでのインラインブロック
Flexboxが登場する前は、横方向のナビゲーションバーにinline-blockが使われていました。欠点は、HTMLソース内の空白によってアイテム間に小さな隙間ができることです。
<ul><li>Home</li><li>About</li><li>Contact</li></ul>
インラインの隙間をなくす
インラインブロック要素間の空白による隙間は、親要素にfont-size: 0を設定して子要素で元に戻すか、HTML内の空白をなくすことで削除できます。
<ul><li>One</li><li>Two</li><li>Three</li></ul>
インラインブロックを Flex に置き換える
現在のCSSでは、空白による問題を避けて横方向のレイアウトを実現するには、親要素にdisplay: flexを設定する方法が推奨されます。inline-blockは、単一要素のサイズ指定には今でも便利です。
display を変更する
どの要素のdisplayタイプもCSSで変更できます。リンクをボタンの形にしたり、リストアイテムを横並びにしたりするためによく使われます。
<a class="button" href="#">Button</a>
<ul><li>Item 1</li><li>Item 2</li></ul>
テーブル表示の値
CSSにはdisplay: table、display: table-row、display: table-cellなどが用意されており、テーブル以外の要素にもテーブルレイアウトを適用できます。現在ではほとんど必要ありませんが、古い環境での垂直方向の中央揃えに役立ちます。
フロールート:display: flow-root
display: flow-rootは、overflow: hiddenによる副作用なしに新しいブロックフォーマッティングコンテキストを作成します。フロートを解除し、マージンの相殺がコンテナーの外へ漏れるのを防ぎます。
<div class="clearfix">Contains floated children without collapsing.</div>
匿名ボックス
ブロック要素とインライン要素が兄弟要素として混在すると、ブラウザーは孤立したインラインコンテンツを匿名のブロックボックスで包みます。この動作は見えませんが、予期しないレイアウトの変化が起きる理由を説明できます。
理解度チェック
要素をインラインフローに維持したままwidthを設定できるdisplayの値はどれですか。
まとめ
ブロック要素は幅いっぱいに広がり、新しい行から始まります。インライン要素はテキストとともに流れ、width/heightを無視します。インラインブロックは両方の性質を併せ持ち、インラインで流れながら幅と高さを受け入れます。現在のレイアウトでは、インラインブロックのグリッドよりFlexboxとGridが優先されます。
よくある質問
「Block、Inline、Inline-Block」レッスンは無料ですか?
はい。「Block、Inline、Inline-Block」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、CSS Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 CSS Academyコースには全4レッスンが含まれています。
「Block、Inline、Inline-Block」で何を学びますか?
block、inline、inline-blockの表示動作の違いを理解します。 ブラウザで直接実行するハンズオンコードでCSS Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
CSS Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCSS Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「Block、Inline、Inline-Block」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCSS Academyレッスンでコードを書いて実行できますか?
はい。すべてのCSS Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Block、Inline、Inline-Block
- VisibilityとDisplay None
- Overflow:Scroll、Clip、Auto
- CSS ResetとNormalize