ホームページ > ウェブフロントエンド > CSSチュートリアル > CSS または jQuery を使用して、親コンテナの直接の子ではないカード ヘッダーの高さを動的に等しくするにはどうすればよいですか?

CSS または jQuery を使用して、親コンテナの直接の子ではないカード ヘッダーの高さを動的に等しくするにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-12 14:13:14
オリジナル
583 人が閲覧しました

How can I dynamically equalize the heights of card headers that are not direct children of their parent container using CSS or jQuery?

CSS または jQuery を使用したカード ヘッダーの動的均等化

問題:

カード ヘッダーの高さを一致させるコンテンツとレスポンシブの変更にもかかわらず、親コンテナの直接の子ではないカード ヘッダー

CSS ソリューション:

このアプローチでは、HTML テーブル セルのインライン ブロック プロパティと自動高さ調整機能を利用して、ヘッダーの高さを動的に均等化します。

<table class="parent">
  <thead>
    <tr>
      <th class="header">Header 1</th>
      <th class="header">Header 2</th>
      <th class="header">Header 3</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td class="item">
        <div class="content">Content for Header 1</div>
      </td>
      <td class="item">
        <div class="content">Content for Header 2</div>
      </td>
      <td class="item">
        <div class="content">Content for Header 3</div>
      </td>
    </tr>
    <tr>
      <td class="item">
        <div class="content">Content for Header 1</div>
      </td>
      <td class="item">
        <div class="content">Content for Header 2, with extra wrapping</div>
      </td>
      <td class="item">
        <div class="content">Content for Header 3</div>
      </td>
    </tr>
  </tbody>
</table>
ログイン後にコピー
.parent {
  display: table;
}
.header {
  display: inline-block;
  background-color: cornflowerblue;
}
.item {
  display: table-cell;
  padding: 20px;
}
.content {
  background-color: salmon;
  flex-grow: 1;
}
ログイン後にコピー

jQueryソリューション:

このソリューションは、jQuery を使用してヘッダーの高さを同じに設定し、行または列の要件に基づいてカスタマイズできます。

<div class="row">
  <div class="col item">
    <div class="header">Header 1</div>
    <div class="content">Content for Header 1</div>
  </div>
  <div class="col item">
    <div class="header">Header 2</div>
    <div class="content">Content for Header 2</div>
  </div>
  <div class="col item">
    <div class="header">Header 3</div>
    <div class="content">Content for Header 3</div>
  </div>
</div>
ログイン後にコピー
$(function() {
  // Preload header elements
  var $headers = $('.header');

  // Set equal height on all headers
  function setEqualHeight() {
    var maxHeight = 0;
    $headers.each(function() {
      maxHeight = Math.max(maxHeight, $(this).outerHeight());
    });
    $headers.css('height', maxHeight + 'px');
  }

  // Set equal height per row
  function setEqualHeightPerRow() {
    var previousTop = 0;
    var height = 0;
    $headers.each(function() {
      var currentTop = $(this).offset().top;
      if (currentTop > previousTop) {
        $(this).css('height', height + 'px');
        previousTop = currentTop;
        height = 0;
      }
      height = Math.max(height, $(this).outerHeight());
    });
    $(this).css('height', height + 'px');
  }

  // Run on load and resize
  setEqualHeight();
  $(window).resize(setEqualHeight);
});
ログイン後にコピー

これらのソリューションは、動的で応答性の高いソリューションを提供します。ヘッダーの高さを一致させ、コンテンツや画面サイズに関係なく UI デザインの一貫性を確保します。

以上がCSS または jQuery を使用して、親コンテナの直接の子ではないカード ヘッダーの高さを動的に等しくするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート