overflow:hidden の役割の詳細な説明 (オーバーフローの非表示、フロートのクリア、マージンの崩壊の解決)

overflow:hidden の役割の詳細な説明 (オーバーフローの非表示、フロートのクリア、マージンの崩壊の解決)

1. オーバーフロー:非表示 オーバーフロー非表示

要素に overflow:hidden が設定されている場合、要素の内容が指定された幅と高さの属性を超えると、余分な部分は非表示になり、スペースを占有しません。

/*css スタイル*/
<スタイル タイプ="text/css">
    div{ 幅: 150px; 高さ: 60px; 背景: スカイブルー;
	 overflow: hidden; /*オーバーフローは非表示*/
       }
</スタイル>
 
/*html*/
<div スタイル="">
    今日はとても良い天気ですね! <br>今日はとても良い天気ですね! <br>
    今日はとても良い天気ですね! <br>今日はとても良い天気ですね! <br>
</div>

効果は以下のとおりです。

通常、ページ上では、オーバーフロー後に省略記号が表示されます。たとえば、テキストの行が固定幅を超えると、超過した内容は非表示になり、省略記号が表示されます。

/* 1行テキストのみ */
div{ 
    幅: 150ピクセル;
    背景: スカイブルー;
    overflow: hidden; /*オーバーフローは非表示*/
    white-space: nowrap; /*テキストが折り返されないことを指定します*/
    text-overflow: ellipsis; /*テキストがオブジェクト内でオーバーフローすると、省略記号 (...) が表示されます*/
}

効果は以下のとおりです。

2. overflow:hiddenはフローティングをクリアします

一般的に、親要素の高さが設定されていない場合、コンテンツの増加に応じて高さが適応されます。親要素内のすべての子要素をフロートに設定すると、子要素は標準フローから分離され、場所を占有しません。親要素は子要素の高さを検出できず、親要素の高さは 0 になります。質問は次のようになります:

/*css スタイル*/
<スタイル タイプ="text/css">
    .box{ 背景: スカイブルー; }
    .kid{ 幅: 100px; 高さ: 100px; フロート: 左;}
    .kid1{ 背景: 黄色; }
    .kid2{ 背景: オレンジ; }
    .wrap{ 幅: 300px; 高さ: 150px; 背景: 青; 色: 白; }
</スタイル>
 
/*html*/
<本文>
    <div class="box">
        <div class="kid kid1">子要素 1</div>
	<div class="kid kid2">子要素 2</div>
    </div>
    <div class="wrap">その他の部分</div>
</本文> 

上記のように、親要素には高さがないため、下の要素が押し上げられ、ページが折りたたまれます。したがって、親の高さが子コンテナとそのコンテンツの高さに適応するように、親に overflow:hidden 属性を追加する必要があります。次のように:

IE の下位バージョンでは overflow:hidden; はこの効果を実現できないため、zoom:1; を追加する必要があります。

したがって、互換性を高めるために、float をクリアするために overflow:hidden を使用する必要がある場合は、zoom:1; を追加するのが最適です。

/*css スタイル*/
<スタイル タイプ="text/css">
    .box{ 背景:スカイブルー; 
	  overflow: hidden; /*フローティングをクリア*/
	  ズーム:1;
        }
    .kid{ 幅: 100px; 高さ: 100px; フロート: 左;}
    .kid1{ 背景: 黄色; }
    .kid2{ 背景: オレンジ; }
    .wrap{ 幅: 300px; 高さ: 150px; 背景: 青; 色: 白; }
</スタイル>
 
/*html*/
<本文>
    <div class="box">
        <div class="kid kid1">子要素 1</div>
	<div class="kid kid2">子要素 2</div>
    </div>
    <div class="wrap">その他の部分</div>
</本文> 

3. overflow:hiddenはマージンの崩壊を解決する

親要素内には子要素があります。子要素に margin-top スタイルを追加すると、親要素も追従し、次のように外側の余白が折りたたまれます。

/*css スタイル*/
<スタイル タイプ="text/css">
    .box{ 背景: 空色;}
    .kid{ 幅: 100px; 高さ: 100px; 背景: 黄色; 上余白: 20px}
</スタイル>
 
/*html*/
<本文>
    <div class="box">
	<div class="kid">子要素 1</div>
    </div>
</本文> 

したがって、親要素に overflow:hidden を追加すると、この問題を解決できます。

/*css スタイル*/
<スタイル タイプ="text/css">
    .box{ 背景:スカイブルー;
          overflow: hidden; /*マージンの崩壊を解決する*/   
        }
    .kid{ 幅: 100px; 高さ: 100px; 背景: 黄色; 上余白: 20px}
</スタイル>
 
/*html*/
<本文>
    <div class="box">
	<div class="kid">子要素 1</div>
    </div>
</本文> 

以上で、overflow:hiddenの役割(オーバーフローの非表示、フロートのクリア、マージン崩れの解決)の詳しい説明は終了です。overflow:hiddenの役割についてさらに詳しく知りたい方は、123WORDPRESS.COMの過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも123WORDPRESS.COMをよろしくお願いいたします。

<<:  html+vue+element-ui のスムーズさを 1 分で体験

>>:  HTML で入力ボックスに純粋な数字のみを入力するように制限する方法

推薦する

uniappとvueの違いの詳細な説明

目次1. シンプルなページの例2.uni-appはvueコンポーネントとミニプログラムネイティブコン...

MySQL ファジークエリステートメントコレクション

SQL ファジークエリステートメント一般的なファジーステートメントの構文は次のとおりです。 SELE...

一般的なMysql DDL操作の概要

図書館管理ライブラリを作成する データベースを作成します [存在しない場合] ライブラリ名;ライブラ...

ラベルとボタンを削除し、背景画像の点線/影を追加すると完璧な解決策になります

ユーザーが登録すると、ラベルをクリックして確認コードを変更します。クリックするとラベルに影の部分がで...

MySQL でよく使用されるステートメントの包括的な概要 (必読)

以下にまとめたナレッジポイントはどれもよく使われる貴重な情報ばかりですので、ぜひ上手に集めてください...

VUE+Canvasはデスクトップピンボールブロック破壊ゲームのサンプルコードを実装します

誰もがピンボールやレンガ崩しのゲームをプレイしたことがあるでしょう。左と右のキーを使用して、下にある...

Reactを使用して画像認識アプリを実装する方法

まずは効果の写真をお見せしましょう。 個人的には効果は問題ないと思います。アプリが写真を学習する時間...

JavaScript 関数のパフォーマンスを測定するさまざまな方法の比較

目次概要パフォーマンス.nowコンソール.time時間精度を短縮注意事項分割して征服する入力値に注意...

JavaScript 関数呼び出し、適用、バインド メソッドのケース スタディ

要約する1. 類似点どちらも、ターゲット関数が実行されると内部の this ポインターを変更できます...

Vue3 でパンくず関数コンポーネントをカプセル化するいくつかの方法

目次序文1. パンくずリストはなぜ必要なのでしょうか? 2. 一次包装1. 実装のアイデア2. コー...

IE6/7 で絶対配置された要素が不可解に消えたりブロックされたりする問題を解決する方法

1. 絶対配置レイヤーの隣接フローティング レイヤーの幅が親レイヤーの幅と等しくなく、フロートがクリ...

CSSをインポートする方法は何ですか?linkと@importの違いは何ですか?選択方法

Taobao のウェブページはインポートを使用していますが、多くのウェブサイトはリンクを使用していま...

SQL IDENTITY_INSERT ケーススタディ

一般的に、データ テーブル内の列を ID 列として設定すると、ID 列の表示値を手動で ID 列に挿...

MySQL 8 の新機能: 非表示のインデックス

背景インデックスは諸刃の剣です。クエリ速度は向上しますが、DML 操作も遅くなります。結局のところ、...

CSS スタイルを HTML 外部スタイルシートにインポートする方法

リンクインスタイルとは、すべてのスタイルを 1 つ以上の外部スタイルシート ファイルに配置することで...