html - 如何在媒体查询中重置居中

标签 html css flexbox bootstrap-4

我有两个 div 包裹着另一个 div (id="about")。使用全尺寸浏览器,它会水平和垂直居中显示,这正是我想要的。但是,当窗口的大小调整得更小时,我希望这两个 div 堆叠在一起而不是并排。

对于我的尝试,我想基本上重置该包装器(关于)。我的 CSS:

#icon{
    border: solid;
    border-color: red;
    border-width: 2px;

    max-width: 200px;
}
#about{
    min-height: 100%;
    min-height: 100vh;  

    <!-- These two lines horizontally and vertically centers about -->
    <!-- If removed, its responsive and stacks up the way that I want,
         BUT it no longer is centered vertically and sits on top of the page -->
    display: flex;
    align-items: center;
}
#aboutInfo{
    border: solid;
    border-color: red;
    border-width: 2px;  
    padding: 0;
}
@media (max-width: 768px){      
    #icon {
        max-width: 100px;
    }
    <!-- ATTEMPT TO RESET -->
    #about {
        float: none;
        width: 100%;
    }       
}

如何重置居中,以便在调整窗口大小时它堆叠起来,但在较大的浏览器中仍然居中。这是我的 HTML:

<div class="container text-center">
    <div class="row">
        <div id="about">

        <div class="col-sm-4 padding-0">
            <img src="img/html5.png" id="icon">
        </div>


        <div class="col-sm-6 padding-0">
            <div id="aboutInfo">
                <h1>Lorem Ipsum.</h1>
                <p>
                  Lorem ipsum dolor sit amet, consectetur adipiscing elit. <br> 
                  Suspendisse malesuada lacus commodo enim varius, <br> non gravida ipsum faucibus. 
                  Vivamus pretium pulvinar <br> elementum. In vehicula ut elit vitae dapibus. 
                  Cras ipsum <br> neque, finibus id mattis vehicula, rhoncus in mauris. 
                  In <br> hendrerit vitae velit vel consequat. Duis eleifend dui vel <br> tempor 
                  maximus. Aliquam rutrum id dolor vel ullamcorper. <br> Nunc cursus sapien 
                  a ex porta dictum.
                </p>
            </div>
        </div>

        </div> <!-- end of about -->
    </div> <-- end of row -->
</div>

最佳答案

你可以这样做:

body {margin: 0}

#icon {
  border: 2px solid red;
  max-width: 200px;
}

#about {
  min-height: 100%;
  min-height: 100vh;  
  display: flex;
  align-items: center;
  justify-content: center; /* added */
}

#aboutInfo {
  border: 2px solid red; 
}

@media (max-width: 768px) {      
  #icon {max-width: 100px}
  #about {flex-direction: column} /* added */
}
<div class="container text-center">
  <div class="row">
    <div id="about">
      <div class="col-sm-4 padding-0">
        <img id="icon" src="https://placehold.it/200x150" alt="">
      </div>
      <div class="col-sm-6 padding-0">
        <div id="aboutInfo">
          <h1>Lorem Ipsum.</h1>
          <p>
            Lorem ipsum dolor sit amet, consectetur adipiscing elit. <br> 
            Suspendisse malesuada lacus commodo enim varius, <br> non gravida ipsum faucibus. 
            Vivamus pretium pulvinar <br> elementum. In vehicula ut elit vitae dapibus. 
            Cras ipsum <br> neque, finibus id mattis vehicula, rhoncus in mauris. 
            In <br> hendrerit vitae velit vel consequat. Duis eleifend dui vel <br> tempor 
            maximus. Aliquam rutrum id dolor vel ullamcorper. <br> Nunc cursus sapien 
            a ex porta dictum.
          </p>
        </div>
      </div>
    </div> <!-- end of about -->
  </div> <!-- end of row -->
</div>

默认情况下,flex-containerparent 按行堆叠 flex-itemschildren,但你可以通过将 flex-direction property 设置为 columnvalue 轻松更改。

关于html - 如何在媒体查询中重置居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46733417/

相关文章:

php - 如果为空则隐藏 HTML/JQuery 表格(footable)

html - 如何使用 Flex 水平和垂直对齐 div 中的元素

html - 如何使用 flexbox 强制分成相等的部分

javascript - 如何将 jquery 插件 (HTML) 包含到 JS 代码中

html - 圆圈在 IE8 中显示不正确

javascript - 隐藏多个div的函数

css - 为什么我不能使用 z-index 在 SVG 上放置一个 div

css - Bootstrap - div 溢出

html - 调整移动页脚的大小

html - 如何将侧边栏滑出 View 并调整内容 flexbox 的大小以填充空白?