【问题标题】:Flexbox to create equal height columns for responsive design (pure CSS)Flexbox 为响应式设计创建等高列(纯 CSS)
【发布时间】:2016-04-19 05:20:35
【问题描述】:

我知道有人问过一些关于创建等高列的类似问题,但我没有使用表格,而只是在 CSS 中工作。我对 flexbox 做了很多研究,但我的代码不起作用。 我正在尝试使用媒体查询将文章放入两个或三个等宽的列中。使用此代码,它们将保留在一列中。我尝试这样做的方法是为容器设置最大宽度,然后将文章换行,但我无法让它工作。

<div id="content"><!-- Start content -->
         <div id="slide">             <img src="imgs/slide.jpg" alt="The University of Arizona " />
         </div>
         <section id="recent">
            <article>
               <a href="#"><img src="imgs/recent1.jpg" alt="OSIRIS-REx: Tapping Asteroid RQ36" /></a>
               <h1><a href="#">OSIRIS-REx: Tapping Asteroid RQ36</a></h1>
               <p>Asteroid 1999 RQ36 is 575 meters around and passes near Earth every six years. Not only does it potentially house organic compounds that may have been the precursors to life; it could impact us in 2182. The OSIRIS-REx mission, sponsored by NASA and led by Dante Lauretta, Ph.D., professor in the Lunar and Planetary Sciences Laboratory, aims to pay RQ36 a visit to learn more - and bring a sample back to Earth.</p>
               <a class="readMore" href="#">Read More</a>
            </article>
            <article>
               <a href="#"><img src="imgs/recent2.jpg" alt="Ethics and the Bottom Line" /></a>
               <h1><a href="#">Ethics and the Bottom Line</a></h1>
               <p>With media so focused on corporate wrongdoing, it's good to know that the Eller College of Management is taking a proactive route to turn things around. The College's Center for Leadership Ethics has initiated High School Ethics Forums that provide teen participants hands-on experiences for dealing with personal and professional ethical dilemmas. The goal? Ensure ethics are integral part of the next generation's corporate culture.</p>
               <a class="readMore" href="#">Read More</a>
            </article>
            <article>
               <a href="#"><img src="imgs/recent3.jpg" alt="From Fields to Fuel" /></a>
               <h1><a href="#">From Fields to Fuel</a></h1>
               <p>Developing alternative, sustainable energy sources is essential to the future of Arizona, the nation and the world. At the UA, researchers in the College of Agriculture and Life Sciences are studying how to optimize sweet sorghum as a bio-fuel crop. The work brings together students and professors, government and industry, and represents an education for all involved.</p>
               <a class="readMore" href="#">Read More</a>
            </article>
            <article>
               <a href="#"><img src="imgs/recent4.jpg" alt="Rodriguez Era Begins" /></a>
               <h1><a href="#">Rodriguez Era Begins</a></h1>
               <p>On November 22, 2011, Richard Rodriguez, most recently serving as head coach for Michigan from 2008 to 2010 and an analyst for CBS Sports, became the 30th head coach of the Arizona Wildcats football team. "I'm eager to get back to coaching and look forward to becoming part of the Arizona family," he says. "I believe that outstanding success is on the horizon for Arizona Football."</p>
               <a class="readMore" href="#">Read More</a>
            </article>
         </section>

这是我遇到问题的 CSS 的 sn-p

/*Keep header image large*/
#slide img 
{
   max-width: 400px;
   padding-top:5%;
}

#recent {
    overflow:auto;
}

#content {
    margin:5%;
}

/*articles into two columns*/
#recent article, img
{
    display: -webkit-flex;
   display: flex;
   flex-direction:column;
   flex-wrap:wrap; 
   column-gap:3em;
   margin:1%;
   width:100%;
   overflow:auto;
   columns:3;

}

#recent article {
    width:200px;
   height:600px;
}

【问题讨论】:

  • 你能更详细地描述目标吗?
  • 我补充说我试图让文章分成两到三列等长。
  • 弹性等高列功能仅适用于同级弹性项目。因此,如果您希望article 元素的高度相等,则将display: flex 应用到它们的父级(#recent),这使它成为一个弹性容器。然后从article 元素中删除height: 600px,因为它会覆盖等高列。更多详情:stackoverflow.com/a/33815389/3597276

标签: html css flexbox


【解决方案1】:

您实际上已经包含了 flexbox 和 css 列的代码。我删除了 flexbox,并添加了 css 列前缀。我使用了column-width 而不是columns,所以如果视口的宽度更高,你会得到更多的列。运行代码 sn-p 后尝试点击整页

/*Keep header image large*/

#slide img {
  max-width: 400px;
  padding-top: 5%;
}

#content {
  margin: 5%;
}
/*articles into two columns*/

#recent {
  -webkit-column-width: 200px;
  -moz-column-width: 200px;
  column-width: 200px;
  -webkit-column-gap: 3em;
  -moz-column-gap: 3em;
  column-gap: 3em;
  margin: 1%;
  width: 100%;
  overflow: auto;
}
#recent article img {
  margin: 2% auto;
}
<div id="content">
  <!-- Start content -->
  <div id="slide">
    <img src="imgs/slide.jpg" alt="The University of Arizona " />
  </div>
  <section id="recent">
    <article>
      <a href="#">
        <img src="imgs/recent1.jpg" alt="OSIRIS-REx: Tapping Asteroid RQ36" />
      </a>
      <h1><a href="#">OSIRIS-REx: Tapping Asteroid RQ36</a></h1>
      <p>Asteroid 1999 RQ36 is 575 meters around and passes near Earth every six years. Not only does it potentially house organic compounds that may have been the precursors to life; it could impact us in 2182. The OSIRIS-REx mission, sponsored by NASA
        and led by Dante Lauretta, Ph.D., professor in the Lunar and Planetary Sciences Laboratory, aims to pay RQ36 a visit to learn more - and bring a sample back to Earth.</p>
      <a class="readMore" href="#">Read More</a>
    </article>
    <article>
      <a href="#">
        <img src="imgs/recent2.jpg" alt="Ethics and the Bottom Line" />
      </a>
      <h1><a href="#">Ethics and the Bottom Line</a></h1>
      <p>With media so focused on corporate wrongdoing, it's good to know that the Eller College of Management is taking a proactive route to turn things around. The College's Center for Leadership Ethics has initiated High School Ethics Forums that provide
        teen participants hands-on experiences for dealing with personal and professional ethical dilemmas. The goal? Ensure ethics are integral part of the next generation's corporate culture.</p>
      <a class="readMore" href="#">Read More</a>
    </article>
    <article>
      <a href="#">
        <img src="imgs/recent3.jpg" alt="From Fields to Fuel" />
      </a>
      <h1><a href="#">From Fields to Fuel</a></h1>
      <p>Developing alternative, sustainable energy sources is essential to the future of Arizona, the nation and the world. At the UA, researchers in the College of Agriculture and Life Sciences are studying how to optimize sweet sorghum as a bio-fuel crop.
        The work brings together students and professors, government and industry, and represents an education for all involved.</p>
      <a class="readMore" href="#">Read More</a>
    </article>
    <article>
      <a href="#">
        <img src="imgs/recent4.jpg" alt="Rodriguez Era Begins" />
      </a>
      <h1><a href="#">Rodriguez Era Begins</a></h1>
      <p>On November 22, 2011, Richard Rodriguez, most recently serving as head coach for Michigan from 2008 to 2010 and an analyst for CBS Sports, became the 30th head coach of the Arizona Wildcats football team. "I'm eager to get back to coaching and look
        forward to becoming part of the Arizona family," he says. "I believe that outstanding success is on the horizon for Arizona Football."</p>
      <a class="readMore" href="#">Read More</a>
    </article>
  </section>
</div>

【讨论】:

    【解决方案2】:

    在使用 flex 布局时,我总是参考本指南:https://css-tricks.com/snippets/css/a-guide-to-flexbox/

    您需要记住的最重要的事情是您需要将弹性代码应用到包装器,而不是元素。看看下面的例子:https://jsfiddle.net/cfez8hz2/

    我将包装器上的 css 限制为 flex 所需的代码。文章的边距和背景只是为了让事情可见。而宽度决定了一行中的项数。

    css 并不难理解(您可能需要为旧版浏览器添加所需的前缀):

    #recent {
      display: flex;
      flex-direction: row;
      flex-flow: wrap;
      justify-content: space-between;
      align-items: stretch;
    }
    
    #recent article {
      width: 45%;
      margin: 20px 0;
      background: #ccc;
    } 
    

    【讨论】:

    • 谢谢,这是我最终使用的解决方案。
    • 它说我的声望必须达到 15 才能公开投票,抱歉:/
    【解决方案3】:

    试试这个:

    (我复制了您的上一篇文章,以表明列的对齐方式确实是相同的高度。)

    变化亮点:

    1. 您希望 display: flex; 在父元素中,#recent,而不是 #recent article, img
    2. align-items: stretch; 将列的高度设置为相同。具体来说,除非有包装,否则它应该从上到下到达。
    3. flex-basis: 33.3%; 指定在分配任何剩余空间之前元素的默认大小。在您的情况下,您可以想象它只是指定了列的大小。
    4. 删除了flex-direction: column,因为这实际上意味着您希望它们相互堆叠。
    5. 删除了 CSS 列项,因为使用 flexbox 不需要这些属性。

    /*Keep header image large*/
    
    #slide img {
      max-width: 400px;
      padding-top: 5%;
    }
    
    #content {
      margin: 5%;
    }
    /*articles into two columns*/
    
    #recent {
      overflow: auto;
      display: flex;
      align-items: stretch;
      flex-wrap: wrap;
    }
    #recent article {
      flex-basis: 33.3%;
    
    }
    #recent article img {
      margin: 2% auto;
    }
    <div id="content">
      <!-- Start content -->
      <div id="slide">
        <img src="imgs/slide.jpg" alt="The University of Arizona " />
      </div>
      <section id="recent">
        <article>
          <a href="#">
            <img src="imgs/recent1.jpg" alt="OSIRIS-REx: Tapping Asteroid RQ36" />
          </a>
          <h1><a href="#">OSIRIS-REx: Tapping Asteroid RQ36</a></h1>
          <p>Asteroid 1999 RQ36 is 575 meters around and passes near Earth every six years. Not only does it potentially house organic compounds that may have been the precursors to life; it could impact us in 2182. The OSIRIS-REx mission, sponsored by NASA
            and led by Dante Lauretta, Ph.D., professor in the Lunar and Planetary Sciences Laboratory, aims to pay RQ36 a visit to learn more - and bring a sample back to Earth.</p>
          <a class="readMore" href="#">Read More</a>
        </article>
        <article>
          <a href="#">
            <img src="imgs/recent2.jpg" alt="Ethics and the Bottom Line" />
          </a>
          <h1><a href="#">Ethics and the Bottom Line</a></h1>
          <p>With media so focused on corporate wrongdoing, it's good to know that the Eller College of Management is taking a proactive route to turn things around. The College's Center for Leadership Ethics has initiated High School Ethics Forums that provide
            teen participants hands-on experiences for dealing with personal and professional ethical dilemmas. The goal? Ensure ethics are integral part of the next generation's corporate culture.</p>
          <a class="readMore" href="#">Read More</a>
        </article>
        <article>
          <a href="#">
            <img src="imgs/recent3.jpg" alt="From Fields to Fuel" />
          </a>
          <h1><a href="#">From Fields to Fuel</a></h1>
          <p>Developing alternative, sustainable energy sources is essential to the future of Arizona, the nation and the world. At the UA, researchers in the College of Agriculture and Life Sciences are studying how to optimize sweet sorghum as a bio-fuel crop.
            The work brings together students and professors, government and industry, and represents an education for all involved.</p>
          <a class="readMore" href="#">Read More</a>
        </article>
        <article>
          <a href="#">
            <img src="imgs/recent4.jpg" alt="Rodriguez Era Begins" />
          </a>
          <h1><a href="#">Rodriguez Era Begins</a></h1>
          <p>On November 22, 2011, Richard Rodriguez, most recently serving as head coach for Michigan from 2008 to 2010 and an analyst for CBS Sports, became the 30th head coach of the Arizona Wildcats football team. "I'm eager to get back to coaching and look
            forward to becoming part of the Arizona family," he says. "I believe that outstanding success is on the horizon for Arizona Football."</p>
          <a class="readMore" href="#">Read More</a>
        </article>
        <article>
          <a href="#">
            <img src="imgs/recent4.jpg" alt="Rodriguez Era Begins" />
          </a>
          <h1><a href="#">Rodriguez Era Begins</a></h1>
          <p>On November 22, 2011, Richard Rodriguez, most recently serving as head coach for Michigan from 2008 to 2010 and an analyst for CBS Sports, became the 30th head coach of the Arizona Wildcats football team. "I'm eager to get back to coaching and look
            forward to becoming part of the Arizona family," he says. "I believe that outstanding success is on the horizon for Arizona Football."</p>
          <a class="readMore" href="#">Read More</a>
        </article>
        <article>
          <a href="#">
            <img src="imgs/recent4.jpg" alt="Rodriguez Era Begins" />
          </a>
          <h1><a href="#">Rodriguez Era Begins</a></h1>
          <p>On November 22, 2011, Richard Rodriguez, most recently serving as head coach for Michigan from 2008 to 2010 and an analyst for CBS Sports, became the 30th head coach of the Arizona Wildcats football team. "I'm eager to get back to coaching and look
            forward to becoming part of the Arizona family," he says. "I believe that outstanding success is on the horizon for Arizona Football."</p>
          <a class="readMore" href="#">Read More</a>
        </article>
      </section>

    flexbox 的良好参考:https://css-tricks.com/snippets/css/a-guide-to-flexbox/

    【讨论】:

      猜你喜欢
      • 2013-11-19
      • 2023-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多