【问题标题】:Bootstrap CSS - Always set card header to 2 lines heightBootstrap CSS - 始终将卡片标题设置为 2 行高
【发布时间】:2020-06-16 21:37:17
【问题描述】:

我正在处理一个动态显示引导卡的页面 (Angular),如下所示:

<div class="row">
    <div class="card border-primary p-0 mb-2 col-md-4 col-sm-6 colxs-12" *ngFor="let m of myVals">
        <h4 class="card-header text-center">{{m.Title}}</h4>
        <div class="card-body">
            <h5>{{m.Year}}</h5>
            <img [src]="m.Poster" [alt]="m.Title" class="card-img-top">
        </div>
    </div>
</div>

我面临的问题是元素&lt;h4 class="card-header text-center"&gt;{{m.Title}}&lt;/h4&gt;

挑战在于,有时标题会显示在 2 行上,有时会显示在 1 行(但不会超过 2 行),因此卡片看起来并不统一。

我想知道的是,是否有一种 Bootstrap / CSS 方法可以始终使 card-header 显示为 2 行高,而不管其中的文本如何。我尝试设置line-height: 2 的CSS 样式,但它根本不影响它。有什么正确/更好的方法来完成这个吗?

谢谢!

【问题讨论】:

    标签: css twitter-bootstrap bootstrap-4


    【解决方案1】:

    您可以添加自定义 CSS 来执行此操作。检查下面的工作小提琴 -

    .card-header-custom {
      min-height:80px;
      display:flex;
      justify-content:center;
      align-items:center;
    }
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <title>Bootstrap Example</title>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css">
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
      <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js"></script>
    </head>
    <body>
     
    <div class="container">
      <h2>Card Header and Footer</h2>
      <div class="row">
        <div class="col-sm-6">
         <div class="card">
            <div class="card-header card-header-custom">Header big content Header big content </div>
            <div class="card-body">Content</div> 
            <div class="card-footer">Footer</div>
          </div>
        </div>
        <div class="col-sm-6">
          <div class="card">
            <div class="card-header card-header-custom">Header</div>
            <div class="card-body">Content</div> 
            <div class="card-footer">Footer</div>
          </div>
        </div>
      </div>
    </div>
    
    </body>
    </html>

    【讨论】:

      【解决方案2】:

      HTML:

      <div>
        <h4>
          <span>One line heading</span>
        </h4>
        <h4>
          <span>Assume this heading has two lines</span>
        </h4>
      </div>
      

      CSS:

      h4 {
        height: 2.5em;
      }
      
      h4 span {
        line-height: 1.25em;
      }
      

      【讨论】:

        猜你喜欢
        • 2022-01-27
        • 2020-05-26
        • 2019-10-27
        • 2019-04-16
        • 1970-01-01
        • 2020-12-23
        • 1970-01-01
        • 1970-01-01
        • 2016-10-19
        相关资源
        最近更新 更多