【问题标题】:How to align image, text and button on one line with out tables如何在没有表格的情况下将图像、文本和按钮对齐在一行
【发布时间】:2023-03-27 16:21:01
【问题描述】:

我正在尝试在同一行对齐电影海报图像、描述文本和添加到购物车按钮。文本需要居中对齐,而不是环绕按钮或图像。它应该是这样的。

但是,使用我当前的代码,它看起来像这样。影片描述文本不是居中对齐的,而是环绕在按钮周围。

这是我的代码。如何修改它以使其看起来像第一张图片?

    <div class="card-block">
        <div class="pull-left"><img src="https://{{movie.image}}" alt="[Image Missing]" width="70px" /></div>
        <br><span>{{movie.description}}</span>
        <span>
            <button class="float-right btn btn-sm btn-success" (click)="addToCart(movie)">
                Add to Cart
            </button></span>
    </div>

【问题讨论】:

    标签: html css


    【解决方案1】:

    有很多方法可以解决您的问题。

    您可以使用flex

     .container {
          display: flex;
          align-items: center;
         }
         
    .container .item:nth-child(2){ /*Only second item padding and center text*/
      padding-left: 1em;
      padding-right: 1em;
      text-align: center;
    }
        <div class="container">
          <div class="item">
              <img src="https://via.placeholder.com/80x100">
          </div>
          <div class="item">
              <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc sagittis sagittis enim. Nulla viverra aliquam.</p>
          </div>
          <div class="item">
              <button> Add to cart </button>
          </div>
        </div>

    或者您可以尝试使用新的CSS-Grid,但某些浏览器根本不支持它

    .container {
          display: grid;
          grid-template-columns: 1fr 4fr 1fr; /*Here you set how many columns will be and how much of the space they will take, for example there are 3 values, meaning 3 columns, the first and the last one will take 1 space of the row, and the second one will take 4 spaces*/
          align-items: center;
          grid-gap: 1em; /*The gap between items*/
        }
        
        .container .item:nth-child(2) {
           text-align: center;
        }
        <div class="container">
                  <div class="item">
                      <img src="https://via.placeholder.com/80x100">
                  </div>
                  <div class="item">
                      <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc sagittis sagittis enim. Nulla viverra aliquam.</p>
                  </div>
                  <div class="item">
                      <button> Add to cart </button>
                  </div>
                </div>

    【讨论】:

    • 酷。第二个例子最接近我想要的。当我最大化时,该按钮并没有一直向右刷新,但至少与其他按钮对齐。
    【解决方案2】:

    尝试改用flex,这是示例:

    .wrapper {
      display: flex;
      flex-direction: row;
      align-items: center
    }
    p {
      text-align:center
    }
    <div class="wrapper">
      <img src="https://via.placeholder.com/150" />
      <p>
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sit amet est vel erat rutrum tempus. Etiam auctor dapibus magna, ut auctor metus pretium sed.
      </p>
      <button>
        Add
      </button>
    </div>

    希望对您有所帮助。

    【讨论】:

    • 谢谢!差不多好了。如何使按钮齐平向右对齐?使用此修复程序,当我最大化窗口时,它不会齐平。
    • @myfunnyfella 我想知道你的按钮被一个跨度包裹着,对吧?在这种情况下,您只需在 span 中添加一行 CSS:text-align: right;
    猜你喜欢
    • 2015-02-22
    • 1970-01-01
    • 2010-10-10
    • 2012-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-09
    相关资源
    最近更新 更多