代码之家  ›  专栏  ›  技术社区  ›  MK-DK

对齐按钮而不影响其他按钮

  •  1
  • MK-DK  · 技术社区  · 7 年前

    我正在使用Bootstrap 3.3.7。

    我需要按钮1像下图一样对齐,但按钮不应影响按钮2。在那之前你可以看到演示版 here .

    Demo Version

    我试着设置一个 margin-top:80px; 在按钮1上,但在下面不起作用 < 768px . 我试着做一个新的 row col-sm-12 在卡片里面,但是按钮会在文本上方移动。按钮2我给班级打了电话 cta-right ,所以我知道按钮正对齐。

    所以,怎么能把按钮1行的图片,不管文字只有4行?

    我已经尽可能多地删除了代码,所以问题不会太长。

        body {
          background-color: #f5f5f5;
        }
        div {
          background-color: #fff;
        }
        .index-content a:hover {
          color: black;
          text-decoration: none;
        }
        .index-content .row {
          margin-top: 20px;
        }
        .index-content a {
          color: black;
        }
        .index-content .card {
          background-color: #FFFFFF;
          padding: 0;
          -webkit-border-radius: 4px;
          -moz-border-radius: 4px;
          border-radius: 4px;
          box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.3);
        }
        .index-content .card:hover {
          box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.3);
          color: black;
        }
        .index-content .card img {
          width: 100%;
          border-top-left-radius: 4px;
          border-top-right-radius: 4px;
          height: 350px;
        }
        .index-content .card h4 {
          margin: 20px;
        }
        .index-content .card p {
          margin: 20px;
          opacity: 0.65;
        }
        .index-content .blue-button {
          width: 100px;
          -webkit-transition: background-color 1s, color 1s;
          /* For Safari 3.1 to 6.0 */
          transition: background-color 0.5s, color 0.5s;
          min-height: 20px;
          background-color: #4CAF50;
          color: #ffffff;
          border-radius: 4px;
          text-align: center;
          font-weight: lighter;
          margin: 0px 20px 15px 20px;
          padding: 5px 0px;
          display: inline-block;
        }
        .index-content .blue-button:hover {
          background-color: #dadada;
          color: #002E5B;
        }
        /* Set width between block elements */
        .small-padding.top {
           padding-top:10px;
        }
    
        .small-padding.bottom {
            padding-bottom:10px;
        } 
        .small-padding.left {
            padding-left:5px;
        }
    
        .small-padding.right {
            padding-right:5px;
        }
    
        .row [class*="col-"] {
          padding-left: 5px;
          padding-right: 5px;
        }
    
        .margin_bottom {
          margin-bottom: 10px;
        }
        .row [class*="col-"] {
          padding-right: 5px;
          padding-left: 5px;
        }
        .row {
          margin-left: -5px;
          margin-right: -5px;
        }
        .card-img-bottom {
          color: #fff;
          height: 20rem;
          background: url(images/img1.jpg) center no-repeat;
          background-size: cover;
        }
        .img-responsive { 
            height: 100%;
        }
        /* Button Position */
        .centered {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
        }
    
        .bottom-right {
            position: absolute;
            bottom: 8px;
            right: 16px;
        }
    
        .bottom-left {
            position: absolute;
            bottom: 8px;
            left: 16px;
        }
    
        .inner-wrapper {
          text-align: center;
          background: none;
        }
        /* Set full width on columns */
        @media (max-width: 768px) {
            .img-responsive {
            width: 100%;
            }
        }
    
        /* GRID ELEMENTS MEDIA QUERIES */
        @media (min-width: 768px) {
          .card {
            position: relative;
          }
          .card-content {
            position: absolute;
            bottom: 0;
            width: 100%;
            background: rgba(0, 0, 0, 0.5);
          }
          .card-content h4,
          .card-content p {
            color: white;
            width: 100%;
            float: left;
            margin: 0 0 5px;
          }
          .card-content a {
            float: right;
          }
          .index-content .card h4,
          .index-content .card p {
            padding: 15px 20px;
            margin: 0;
          }
          .index-content .card p {
            padding: 0 20px 15px;
            margin: 0;
          }
          .card-content-textbox {
            position: absolute;
            top: 0;
            left: 0;
            background: rgba(255, 255, 255, 0.7);
            /*right: 0;*//* top position on right*/
            margin: 15px;
            max-width: 300px;
            height: 91%
          }
        }
    
    /* Grid with different placement of position buttons */
    .centered {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
    }
    
    .bottom-right {
        position: absolute;
        bottom: 8px;
        right: 16px;
    }
    
    .bottom-left {
        position: absolute;
        bottom: 8px;
        left: 16px;
    }
    
    .inner-wrapper {
      text-align: center;
      background: none;
    }
    <div class="container">
        <!-- Full width Banner -->
        <div class="row">
          <a href="#">
            <div class="col-md-12 small-padding top bottom">
                <div class="index-content">
                    <div class="card">
                        <img src="http://placehold.it/1200x500"></img>
                        <div class="card-content-textbox">
                            <h4>BMW & HEADLINE 2018</h4>
                            <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
                            <a href="#" class="blue-button">BUTTON 1</a>
                        </div>
                    </div>
                </div>
            </div>
          </a>
        </div>
        <!-- Col 4 - 8 -->
        <div class="row">
            <div class="col-sm-4 small-padding right bottom">
                <div class="index-content">
                    <div class="card">
                        <img src="http://placehold.it/390x500"></img>
                        <div class="card-content">
                            <h4>BMW & HEADLINE 2018</h4>
                            <a href="#" class="blue-button">BUTTON 2</a>
                        </div>
                    </div>
                </div>
            </div>
            <div class="col-sm-8 small-padding left bottom">
                <div class="index-content">
                    <div class="card">
                        <img src="http://placehold.it/800x500"></img>
                        <div class="card-content">
                            <h4>BMW & HEADLINE 2018</h4>
                            <!-- <p>Brødtekst</p> -->
                            <a href="#" class="blue-button">BUTTON 2</a>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    2 回复  |  直到 7 年前
        1
  •  1
  •   Razvan Zamfir    7 年前

    利用 flexbox :

    body {
          background-color: #f5f5f5;
        }
        .flexbox-column {
          display: flex;
          flex-direction:column; /*Stack flex items verically*/
        }
        .flexbox-column .bottom-button {
          margin-top: auto !important /*Send button to bottom*/;
          margin-bottom: 10px;
        }
        div {
          background-color: #fff;
        }
        .index-content a:hover {
          color: black;
          text-decoration: none;
        }
        .index-content .row {
          margin-top: 20px;
        }
        .index-content a {
          color: black;
        }
        .index-content .card {
          background-color: #FFFFFF;
          padding: 0;
          -webkit-border-radius: 4px;
          -moz-border-radius: 4px;
          border-radius: 4px;
          box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.3);
        }
        .index-content .card:hover {
          box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.3);
          color: black;
        }
        .index-content .card img {
          width: 100%;
          border-top-left-radius: 4px;
          border-top-right-radius: 4px;
          height: 350px;
        }
        .index-content .card h4 {
          margin: 20px;
        }
        .index-content .card p {
          margin: 20px;
          opacity: 0.65;
        }
        .index-content .blue-button {
          width: 100px;
          -webkit-transition: background-color 1s, color 1s;
          /* For Safari 3.1 to 6.0 */
          transition: background-color 0.5s, color 0.5s;
          min-height: 20px;
          background-color: #4CAF50;
          color: #ffffff;
          border-radius: 4px;
          text-align: center;
          font-weight: lighter;
          margin: 0px 20px 15px 20px;
          padding: 5px 0px;
          display: inline-block;
        }
        .index-content .blue-button:hover {
          background-color: #dadada;
          color: #002E5B;
        }
        /* Set width between block elements */
        .small-padding.top {
           padding-top:10px;
        }
    
        .small-padding.bottom {
            padding-bottom:10px;
        } 
        .small-padding.left {
            padding-left:5px;
        }
    
        .small-padding.right {
            padding-right:5px;
        }
    
        .row [class*="col-"] {
          padding-left: 5px;
          padding-right: 5px;
        }
    
        .margin_bottom {
          margin-bottom: 10px;
        }
        .row [class*="col-"] {
          padding-right: 5px;
          padding-left: 5px;
        }
        .row {
          margin-left: -5px;
          margin-right: -5px;
        }
        .card-img-bottom {
          color: #fff;
          height: 20rem;
          background: url(images/img1.jpg) center no-repeat;
          background-size: cover;
        }
        .img-responsive { 
            height: 100%;
        }
        /* Button Position */
        .centered {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
        }
    
        .bottom-right {
            position: absolute;
            bottom: 8px;
            right: 16px;
        }
    
        .bottom-left {
            position: absolute;
            bottom: 8px;
            left: 16px;
        }
    
        .inner-wrapper {
          text-align: center;
          background: none;
        }
        /* Set full width on columns */
        @media (max-width: 768px) {
            .img-responsive {
            width: 100%;
            }
        }
    
        /* GRID ELEMENTS MEDIA QUERIES */
        @media (min-width: 768px) {
          .card {
            position: relative;
          }
          .card-content {
            position: absolute;
            bottom: 0;
            width: 100%;
            background: rgba(0, 0, 0, 0.5);
          }
          .card-content h4,
          .card-content p {
            color: white;
            width: 100%;
            float: left;
            margin: 0 0 5px;
          }
          .card-content a {
            float: right;
          }
          .index-content .card h4,
          .index-content .card p {
            padding: 15px 20px;
            margin: 0;
          }
          .index-content .card p {
            padding: 0 20px 15px;
            margin: 0;
          }
          .card-content-textbox {
            position: absolute;
            top: 0;
            left: 0;
            background: rgba(255, 255, 255, 0.7);
            /*right: 0;*//* top position on right*/
            margin: 15px;
            max-width: 300px;
            height: 91%
          }
        }
    
    /* Grid with different placement of position buttons */
    .centered {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
    }
    
    .bottom-right {
        position: absolute;
        bottom: 8px;
        right: 16px;
    }
    
    .bottom-left {
        position: absolute;
        bottom: 8px;
        left: 16px;
    }
    
    .inner-wrapper {
      text-align: center;
      background: none;
    }
    <div class="container">
        <!-- Full width Banner -->
        <div class="row">
          <a href="#">
            <div class="col-md-12 small-padding top bottom">
                <div class="index-content">
                    <div class="card">
                        <img src="http://placehold.it/1200x500"></img>
                        <div class="card-content-textbox flexbox-column">
                            <h4>BMW & HEADLINE 2018</h4>
                            <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
                            <a href="#" class="blue-button bottom-button">BUTTON 1</a>
                        </div>
                    </div>
                </div>
            </div>
          </a>
        </div>
        <!-- Col 4 - 8 -->
        <div class="row">
            <div class="col-sm-4 small-padding right bottom">
                <div class="index-content">
                    <div class="card">
                        <img src="http://placehold.it/390x500"></img>
                        <div class="card-content">
                            <h4>BMW & HEADLINE 2018</h4>
                            <a href="#" class="blue-button">BUTTON 2</a>
                        </div>
                    </div>
                </div>
            </div>
            <div class="col-sm-8 small-padding left bottom">
                <div class="index-content">
                    <div class="card">
                        <img src="http://placehold.it/800x500"></img>
                        <div class="card-content">
                            <h4>BMW & HEADLINE 2018</h4>
                            <!-- <p>Brødtekst</p> -->
                            <a href="#" class="blue-button">BUTTON 2</a>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>

    你可以使用 .flexbox-column .bottom-button 在网站上的任何地方进行分类,并在底部放置所需数量的按钮。

        2
  •  1
  •   Chaska    7 年前

    加一个怎么样

    .top .index-content .blue-button {
      position: absolute;
      bottom: 0;
    }
    

    屏幕宽度>768?

    body {
          background-color: #f5f5f5;
        }
        div {
          background-color: #fff;
        }
        .index-content a:hover {
          color: black;
          text-decoration: none;
        }
        .index-content .row {
          margin-top: 20px;
        }
        .index-content a {
          color: black;
        }
        .index-content .card {
          background-color: #FFFFFF;
          padding: 0;
          -webkit-border-radius: 4px;
          -moz-border-radius: 4px;
          border-radius: 4px;
          box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.3);
        }
        .index-content .card:hover {
          box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.3);
          color: black;
        }
        .index-content .card img {
          width: 100%;
          border-top-left-radius: 4px;
          border-top-right-radius: 4px;
          height: 350px;
        }
        .index-content .card h4 {
          margin: 20px;
        }
        .index-content .card p {
          margin: 20px;
          opacity: 0.65;
        }
        .index-content .blue-button {
          width: 100px;
          -webkit-transition: background-color 1s, color 1s;
          /* For Safari 3.1 to 6.0 */
          transition: background-color 0.5s, color 0.5s;
          min-height: 20px;
          background-color: #4CAF50;
          color: #ffffff;
          border-radius: 4px;
          text-align: center;
          font-weight: lighter;
          margin: 0px 20px 15px 20px;
          padding: 5px 0px;
          display: inline-block;
        }
        .index-content .blue-button:hover {
          background-color: #dadada;
          color: #002E5B;
        }
        /* Set width between block elements */
        .small-padding.top {
           padding-top:10px;
        }
    
        .small-padding.bottom {
            padding-bottom:10px;
        } 
        .small-padding.left {
            padding-left:5px;
        }
    
        .small-padding.right {
            padding-right:5px;
        }
    
        .row [class*="col-"] {
          padding-left: 5px;
          padding-right: 5px;
        }
    
        .margin_bottom {
          margin-bottom: 10px;
        }
        .row [class*="col-"] {
          padding-right: 5px;
          padding-left: 5px;
        }
        .row {
          margin-left: -5px;
          margin-right: -5px;
        }
        .card-img-bottom {
          color: #fff;
          height: 20rem;
          background: url(images/img1.jpg) center no-repeat;
          background-size: cover;
        }
        .img-responsive { 
            height: 100%;
        }
        /* Button Position */
        .centered {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
        }
    
        .bottom-right {
            position: absolute;
            bottom: 8px;
            right: 16px;
        }
    
        .bottom-left {
            position: absolute;
            bottom: 8px;
            left: 16px;
        }
    
        .inner-wrapper {
          text-align: center;
          background: none;
        }
        /* Set full width on columns */
        @media (max-width: 768px) {
            .img-responsive {
            width: 100%;
            }
        }
    
        /* GRID ELEMENTS MEDIA QUERIES */
        @media (min-width: 768px) {
        .top .index-content .blue-button {
          position: absolute;
          bottom: 0;
        }
          .card {
            position: relative;
          }
          .card-content {
            position: absolute;
            bottom: 0;
            width: 100%;
            background: rgba(0, 0, 0, 0.5);
          }
          .card-content h4,
          .card-content p {
            color: white;
            width: 100%;
            float: left;
            margin: 0 0 5px;
          }
          .card-content a {
            float: right;
          }
          .index-content .card h4,
          .index-content .card p {
            padding: 15px 20px;
            margin: 0;
          }
          .index-content .card p {
            padding: 0 20px 15px;
            margin: 0;
          }
          .card-content-textbox {
            position: absolute;
            top: 0;
            left: 0;
            background: rgba(255, 255, 255, 0.7);
            /*right: 0;*//* top position on right*/
            margin: 15px;
            max-width: 300px;
            height: 91%
          }
        }
    
    /* Grid with different placement of position buttons */
    .centered {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
    }
    
    .bottom-right {
        position: absolute;
        bottom: 8px;
        right: 16px;
    }
    
    .bottom-left {
        position: absolute;
        bottom: 8px;
        left: 16px;
    }
    
    .inner-wrapper {
      text-align: center;
      background: none;
    }
    <div class="container">
        <!-- Full width Banner -->
        <div class="row">
          <a href="#">
            <div class="col-md-12 small-padding top bottom">
                <div class="index-content">
                    <div class="card">
                        <img src="http://placehold.it/1200x500"></img>
                        <div class="card-content-textbox">
                            <h4>BMW & HEADLINE 2018</h4>
                            <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
                            <a href="#" class="blue-button">BUTTON 1</a>
                        </div>
                    </div>
                </div>
            </div>
          </a>
        </div>
        <!-- Col 4 - 8 -->
        <div class="row">
            <div class="col-sm-4 small-padding right bottom">
                <div class="index-content">
                    <div class="card">
                        <img src="http://placehold.it/390x500"></img>
                        <div class="card-content">
                            <h4>BMW & HEADLINE 2018</h4>
                            <a href="#" class="blue-button">BUTTON 2</a>
                        </div>
                    </div>
                </div>
            </div>
            <div class="col-sm-8 small-padding left bottom">
                <div class="index-content">
                    <div class="card">
                        <img src="http://placehold.it/800x500"></img>
                        <div class="card-content">
                            <h4>BMW & HEADLINE 2018</h4>
                            <!-- <p>Brødtekst</p> -->
                            <a href="#" class="blue-button">BUTTON 2</a>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>