【问题标题】:Images not stacking column wise within a row in bootstrap 4.0在引导程序 4.0 的一行中,图像没有按列堆叠
【发布时间】:2018-09-28 17:15:43
【问题描述】:

我正在尝试使用引导程序创建响应式网页。在小视图(xs 和 sm)中,页面工作正常。我为较小的视图隐藏了一些图像,它具有非常标准的布局。

当我增加屏幕尺寸时问题就开始了。在大视图(> = md)中,我尝试将四个图像按列堆叠成一行。无论我做什么,第四张图片总是进入下一行。

我尝试将边距、填充和边框设置为零,但仍然没有成功。我在代码笔中附加了我的问题的链接。实际的 html 文件和 css 稍大一些,所以我缩小了范围,只显示有问题的部分。请忽略我的代码中任何未使用的类或 ID。谢谢

https://codepen.io/maheenul/pen/mLdmvy?editors=1100

HTML:

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Responsive Design Lab</title>
        <link rel="stylesheet" type="text/css" href="css/responsive.css"/>
        <meta charset = "UTF-8">
        <!-- Latest compiled and minified CSS -->
        <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-9gVQ4dYFwwWSjIDZnLEWnxCjeSWFphJiwGPXr1jddIhOegiu1FwO5qRGvFXOdJZ4" crossorigin="anonymous">

    </head>

    <body>

        <section id = "center">
            <div class="container">
                <div class="row">
                    <div class="col-12">
                        <h2>Images not confined within the row</h2>
                        <div class="myClass">
                            <h3> Loren Ipsum</h3>
                        </div>
                    </div>
                </div>

                <div class="row  d-none d-md-block">
                    <img class="col-md-3" src="https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcTzDojh5E0fzvTg4nWYs0JadpTwcS2S1KHOtnVQnlruNqmNvfIk" alt="Football">
                    <img class="col-md-3" src="https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcTO8WIJ5ygVENopHPC5Op9z4ua-MoGD-LoUZuEd6vdL-EMro28CWw" alt="Solar Car">
                    <img class="col-md-3" src="http://www-personal.umich.edu/~jensenl/visuals/album/annarbor/IMG_1051.jpg" alt="campus">
                    <img class="col-md-3" src="https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcTzDojh5E0fzvTg4nWYs0JadpTwcS2S1KHOtnVQnlruNqmNvfIk" alt="Football">
                </div>
            </div>

        </section>

        <footer>
            <p>The images above don't stack .<br/> Responsive Design</p>
        </footer>
    </body>
</html>

CSS:

body{
    margin: 1%;
    padding:1%;
    background-color: rgba(0,0,255,.2) !important;
    font-size: 100%;
    min-width: 500px;
}

header, footer{
    background-color:#0066FF;
    padding: 1%;
    margin: 1%;
}

header h1{
    font-size: 3rem;
    color:rgba(0,0,0,.7);;
}

section{
    margin:0%;
    padding:0%;
}

.myClass{
    margin: 0em 1em;
    padding:.75em;
    border: 1px solid black;
    border-radius: .25%;
}

footer{
    clear: both;
    text-align:center;
    text-transform: uppercase;
}


@media screen and (min-width: 768px){
    header, footer{
        background-color:transparent;
    }

    img{
        display: inline-block;
        margin: 0;
        padding: 0;
        border:0; 
        overflow: auto;
    }

}

【问题讨论】:

  • 最简单的解决方法是将图像包装在 &lt;div class="col-md-3"&gt;...&lt;/div&gt; 中,而不是将类直接应用于图像。
  • 试过但让事情变得更糟。图像溢出 div 并堆叠在一起。感谢您的意见:)

标签: html css twitter-bootstrap responsive-design bootstrap-4


【解决方案1】:

添加字体大小:0;在

上。 图像之间的空间占用空间,这就是为什么它不适合 1 行。

【讨论】:

【解决方案2】:

row d-none d-md-block 遇到的问题是 Bootstrap 4 中的 Grid 不是块元素;它是弹性的。此代码将 MD+ 设备上的显示方法从 flex 更改为 block。

要使用的正确类是row d-none d-md-flex。当你这样做时,你会恢复 Bootstrap 的 Grid 行为;但是当您将 Grid 直接应用于图像时,也会导致图像显示不正确。为了解决这个问题,我们必须将列包裹在图像周围,然后将一些响应式图像行为应用于实际的图像元素。

<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9gVQ4dYFwwWSjIDZnLEWnxCjeSWFphJiwGPXr1jddIhOegiu1FwO5qRGvFXOdJZ4" crossorigin="anonymous">

<div class="container">
  <div class="row">
    <div class="col-12">
      <h2>Images not confined within the row</h2>
      <div class="my-3 p-3 border border-secondary bg-secondary text-light">
        <h3>Loren Ipsum</h3>
      </div>
    </div>
  </div>
            
  <div class="row align-items-center d-none d-md-flex">
    <div class="col-md-3"><img src="https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcTzDojh5E0fzvTg4nWYs0JadpTwcS2S1KHOtnVQnlruNqmNvfIk" class="img-fluid img-thumbnail" alt="Football"></div>
    <div class="col-md-3"><img src="https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcTO8WIJ5ygVENopHPC5Op9z4ua-MoGD-LoUZuEd6vdL-EMro28CWw" class="img-fluid img-thumbnail" alt="Solar Car"></div>
    <div class="col-md-3"><img src="http://www-personal.umich.edu/~jensenl/visuals/album/annarbor/IMG_1051.jpg" class="img-fluid img-thumbnail" alt="campus"></div>
    <div class="col-md-3"><img src="https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcTzDojh5E0fzvTg4nWYs0JadpTwcS2S1KHOtnVQnlruNqmNvfIk" class="img-fluid img-thumbnail" alt="Football"></div>
  </div>
</div>

注意:因为我们在最小的断点处隐藏元素,所以您需要展开 sn-p 才能看到完整的结果。

【讨论】:

    猜你喜欢
    • 2015-06-09
    • 2017-10-28
    • 2017-11-11
    • 2016-04-28
    • 2016-11-20
    • 2015-07-30
    • 2019-05-19
    • 2019-09-01
    • 1970-01-01
    相关资源
    最近更新 更多