【问题标题】:Make 4 Divs align side by side using flexbox使用 flexbox 使 4 个 Div 并排对齐
【发布时间】:2020-06-10 03:02:48
【问题描述】:

所以我很难将我的卡片并排对齐。它们是一堆 div,包裹在 <ul> 下的列表中

我对更换显示器犹豫不决,因为它对我的响应能力至关重要。改变立场没有帮助。

我不想改变它在移动设备上的外观,因为它与我的其他元素完美搭配。也许你可以分享一些资源来提供帮助。

这是我的html

        <ul class="cards">
          <li class="cards_item">
            <div class="card">
              <div class="card_image"><img src="./assets/Blog-post/post-5.jpg"></div>
              <div class="card_content">
                <h2 class="card_title">Card Grid Layout</h2>
                <p class="card_text">Demo of pixel perfect pure CSS simple responsive card grid layout</p>
                <button class="btn card_btn">Read More</button>
              </div>
            </div>
          </li>
          <li class="cards_item">
            <div class="card">
              <div class="card_image"><img src="./assets/Blog-post/post-2.jpg"></div>
              <div class="card_content">
                <h2 class="card_title">Card Grid Layout</h2>
                <p class="card_text">Demo of pixel perfect pure CSS simple responsive card grid layout</p>
                <button class="btn card_btn">Read More</button>
              </div>
            </div>
          </li>
          <li class="cards_item">
            <div class="card">
              <div class="card_image"><img src="./assets/Blog-post/post-6.png"></div>
              <div class="card_content">
                <h2 class="card_title">Card Grid Layout</h2>
                <p class="card_text">Demo of pixel perfect pure CSS simple responsive card grid layout</p>
                <button class="btn card_btn">Read More</button>
              </div>
            </div>
          </li>
          <li class="cards_item">
            <div class="card">
              <div class="card_image"><img src="./assets/Blog-post/post-1.jpg"></div>
              <div class="card_content">
                <h2 class="card_title">Card Grid Layout</h2>
                <p class="card_text">Demo of pixel perfect pure CSS simple responsive card grid layout</p>
                <button class="btn card_btn">Read More</button>
              </div>
            </div>
          </li>


        </ul>
      </div>

这是我的 CSS

/* Design */
*{
  box-sizing: border-box;
}



.main-card{
  max-width: 900px;
  margin: 0 auto;
  position: relative;
 right: 10%;

}



img {
  height: auto;
  max-width: 100%;
  vertical-align: middle;
}

.btn {
    margin: 10px;
    font-family: "Arial Black", Gadget, sans-serif;
    font-size: 15px;
    padding: 10px;
    text-align: center;
    text-transform: uppercase;
    transition: 0.5s;
    background-size: 200% auto;
    color: #FFF;
    box-shadow: 0 0 20px #eee;
     border-radius: 10px; 
    width: 200px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
    transition: all 0.3s cubic-bezier(.25,.8,.25,1);
    cursor: pointer;
    display: inline-block;
     border-radius: 25px;
     background-image: linear-gradient(to right, #89B0D5  0%,  #E677F1   51%,  #9A669F   100%);
}


.btn:hover {
    box-shadow: 0 10px 20px rgba(0,0,0,0.19), 0 6px 6px rgba(0,0,0,0.23);
    margin: 8px 10px 12px;
}

.cards {
   display: flex;
  flex-wrap: wrap; 
  list-style: none;
 position: relative;

}

.cards_item {
  display: inline-block;
  padding: 1rem;
}

@media (min-width: 40rem) {
  .cards_item {
    width: 50%;
  }
}

@media (min-width: 56rem) {
  .cards_item {
    width: 33.3333%;
  }
}

.card {
  background-color: white;
  border-radius: 0.25rem;
  box-shadow: 0 20px 40px -14px rgba(0, 0, 0, 0.25);
   display: flex;
  flex-direction: column; 

  position: relative;

}

.card_content {
  padding: 1rem;
  background: white
}

.card_title {
  color: black;
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: capitalize;

}

.card_text {
  color: black;
  font-size: 0.875rem;
  line-height: 1.5;
  margin-bottom: 1.25rem;    
  font-weight: 400;
}

你有什么建议吗?有什么帮助吗?

【问题讨论】:

    标签: javascript html css responsive-design user-experience


    【解决方案1】:

    据我了解您的问题。您可以删除 display: flex;弹性方向:列; 来自

    .card {
      background-color: white;
      border-radius: 0.25rem;
      box-shadow: 0 20px 40px -14px rgba(0, 0, 0, 0.25);
       display: flex;
      flex-direction: column; 
      position: relative;
    }
    

    然后添加

    ul {
        display: flex;
        flex-flow:row wrap;
        flex-direction:row;
    }
    
    
    

    【讨论】:

      【解决方案2】:

      尝试像下面这样添加行和列。

      /* Design */
      
      .row {
          display: flex;
          flex-wrap: wrap;
            max-width: 100%;
          flex: 50%;
        }
      .column {
        flex: 50%;
        padding: 20px;
      }
      
      *{
        box-sizing: border-box;
      }
      
      
      
      .main-card{
        max-width: 900px;
        margin: 0 auto;
        position: relative;
       right: 10%;
      
      }
      
      
      
      img {
        height: auto;
        max-width: 100%;
        vertical-align: middle;
      }
      
      .btn {
          margin: 10px;
          font-family: "Arial Black", Gadget, sans-serif;
          font-size: 15px;
          padding: 10px;
          text-align: center;
          text-transform: uppercase;
          transition: 0.5s;
          background-size: 200% auto;
          color: #FFF;
          box-shadow: 0 0 20px #eee;
           border-radius: 10px; 
          width: 200px;
          box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
          transition: all 0.3s cubic-bezier(.25,.8,.25,1);
          cursor: pointer;
          display: inline-block;
           border-radius: 25px;
           background-image: linear-gradient(to right, #89B0D5  0%,  #E677F1   51%,  #9A669F   100%);
      }
      
      
      .btn:hover {
          box-shadow: 0 10px 20px rgba(0,0,0,0.19), 0 6px 6px rgba(0,0,0,0.23);
          margin: 8px 10px 12px;
      }
      
      .cards {
         display: flex;
        flex-wrap: wrap; 
        list-style: none;
       position: relative;
      
      }
      
      .cards_item {
        display: inline-block;
        padding: 1rem;
      }
      
      @media (min-width: 40rem) {
        .cards_item {
          width: 50%;
        }
      }
      
      @media (min-width: 56rem) {
        .cards_item {
          width: 33.3333%;
        }
      }
      
      .card {
        background-color: white;
        border-radius: 0.25rem;
        box-shadow: 0 20px 40px -14px rgba(0, 0, 0, 0.25);
         display: flex;
        flex-direction: column; 
      
        position: relative;
      
      }
      
      .card_content {
        padding: 1rem;
        background: white
      }
      
      .card_title {
        color: black;
        font-size: 1.1rem;
        font-weight: 700;
        letter-spacing: 1px;
        text-transform: capitalize;
      
      }
      
      .card_text {
        color: black;
        font-size: 0.875rem;
        line-height: 1.5;
        margin-bottom: 1.25rem;    
        font-weight: 400;
      }
       
       <ul class="cards">
        <div class="row">
                <div class="column">
                <li class="cards_item">
                  <div class="card">
                    <div class="card_image"><img src="./assets/Blog-post/post-5.jpg"></div>
                    <div class="card_content">
                      <h2 class="card_title">Card Grid Layout</h2>
                      <p class="card_text">Demo of pixel perfect pure CSS simple responsive card grid 
                     
      layout</p>
      
                      <button class="btn card_btn">Read More</button>
                    </div>
                  </div>
                  
                </li>
                </div>
      <div class="column"> 
                <li class="cards_item">
                  <div class="card">
                    <div class="card_image"><img src="./assets/Blog-post/post-2.jpg"></div>
                    <div class="card_content">
                      <h2 class="card_title">Card Grid Layout</h2>
                      <p class="card_text">Demo of pixel perfect pure CSS simple responsive card grid layout</p>
                     
                      <button class="btn card_btn">Read More</button>
                    </div>
                  </div>
                   
                </li>
                </div>
                      <div class="column"> 
                <li class="cards_item">
                  <div class="card">
                    <div class="card_image"><img src="./assets/Blog-post/post-6.png"></div>
                    <div class="card_content">
                      <h2 class="card_title">Card Grid Layout</h2>
                      <p class="card_text">Demo of pixel perfect pure CSS simple responsive card grid layout</p>
                      <button class="btn card_btn">Read More</button>
                    </div>
                  </div>
                  
                </li>
               
      </div>
      <div class="column"> 
                <li class="cards_item">
                  <div class="card">
                    <div class="card_image"><img src="./assets/Blog-post/post-1.jpg"></div>
                    <div class="card_content">
                      <h2 class="card_title">Card Grid Layout</h2>
                      <p class="card_text">Demo of pixel perfect pure CSS simple responsive card grid layout</p>
                      <button class="btn card_btn">Read More</button>
                    </div>
                  </div>
                  </div>
                </li>
      </div>
      </div>
      
              </ul>
              </div>
            </div>

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-06-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多