html - 中心响应图像

标签 html css responsive-design responsive

我的图像不会以 margin: 0 auto; 为中心或padding: 0 auto; 如果我这样做 text-align: center; 也不起作用在 <div>周围。 我认为这是因为图像具有响应性。 那么如何让这些图像居中呢?

@media only screen and (min-width: 1001px) {
  .gallerij {
    max-width: 825px;
    margin: 20px auto;
    padding: 0 10px 30px 200px;
  }
}

.gallerij h1 {
  margin-left: 10px;
}

.gallerij div.img {
  border: 1px solid #ccc;
  padding: 0;
  margin-top: 10px;
  background-color: rgba(211, 211, 211, 0.30);
}

.gallerij div.img:hover {
  border: 1px solid #000000;
}

.gallerij div.img img {
  display: block;
  width: auto;
  max-width: 100%;
  height: 200px;
  padding: 3px;
  margin-left: auto;
  margin-right: auto;
}

.gallerij div.desc {
  padding: 15px;
  text-align: center;
}

.gallerij * {
  box-sizing: border-box;
}

.responsive {
  padding: 0 6px;
  float: left;
  width: 24.9999%;
  max-width: 200px;
}

@media only screen and (max-width: 700px) {
  .responsive {
    width: 49.99999%;
  }
}

@media only screen and (max-width: 500px) {
  .responsive {
    width: 100%;
  }
}

.gallerij .clearfix:after {
  content: "";
  display: table;
  clear: both;
  margin-bottom: 30px;
}
<div class="gallerij">
  <h1 class="page-titel">All articles:</h1><br>
  <div class="responsive">
    <div class="img">
      <a href="#">
        <img src="img/ERD_Easy/img2.jpg" alt="" class="article-img">
      </a>
      <div class="desc">Artikel naam + kleine bescrijving</div>
    </div>
  </div>
  <div class="responsive">
    <div class="img">
      <a href="#">
        <img src="img/ERD_Easy/img4.jpg" alt="" class="article-img">
      </a>
      <div class="desc">Artikel naam + kleine bescrijving</div>
    </div>
  </div>
  <div class="responsive">
    <div class="img">
      <a href="#">
        <img src="img/ERD_Easy/img3.jpg" alt="" class="article-img">
      </a>
      <div class="desc">Artikel naam + kleine bescrijving</div>
    </div>
  </div>
  <div class="responsive">
    <div class="img">
      <a href="#">
        <img src="img/ERD_Easy/img3.jpg" alt="" class="article-img">
      </a>
      <div class="desc">Artikel naam + kleine bescrijving</div>
    </div>
  </div>
  <div class="responsive">
    <div class="img">
      <a href="#">
        <img src="img/ERD_Easy/img3.jpg" alt="" class="article-img">
      </a>
      <div class="desc">Artikel naam + kleine bescrijving</div>
    </div>
  </div>
  <div class="responsive">
    <div class="img">
      <a href="#">
        <img src="img/ERD_Easy/img3.jpg" alt="" class="article-img">
      </a>
      <div class="desc">Artikel naam + kleine bescrijving</div>
    </div>
  </div>
  <div class="responsive">
    <div class="img">
      <a href="#">
        <img src="img/ERD_Easy/img3.jpg" alt="" class="article-img">
      </a>
      <div class="desc">Artikel naam + kleine bescrijving</div>
    </div>
  </div>
  <div class="responsive">
    <div class="img">
      <a href="#">
        <img src="img/ERD_Easy/img3.jpg" alt="" class="article-img">
      </a>
      <div class="desc">Artikel naam + kleine bescrijving</div>
    </div>
  </div>
  <div class="clearfix"></div>
</div>

HTML 看起来那么长,因为我必须制作更多图像,这样您才能明白我的意思。当你点击“整页”时,它们将是彼此相邻的 4 个图像,在这个小图像中(可能)是 3 个,我不知道你是否可以将其缩小,但随后它将变成 2 个图像,最后是 1 个。 当它为 3 和 4 时,它会居中,但当它为 2 或 1 时,它将不再居中。我不知道你是否可以看到它没有在代码片段中居中,所以我将粘贴一些打印屏幕来显示它。

两张相邻的图片:
2 images next to eachother

1 张图片:
1 image

唯一的问题是它们没有居中,我不知道如何做到这一点。

您需要更多代码或信息吗?

最佳答案

将图像包裹在一个总体 div 中,并将其居中 flexbox .

或者,从元素中删除 float:left,将其设置为 display:inline-block,然后使用 text-align 将它们包装在 div 中:中心

flex 盒示例:

<div style="
    display: flex;
    flex-flow: row wrap;
    justify-content: center;
">
    <div class="responsive">
        <div class="img">
            <a href="#">
                <img src="img/ERD_Easy/img2.jpg" alt="" class="article-img">
            </a>
            <div class="desc">Artikel naam + kleine bescrijving</div>
        </div>
    </div>
    ...
</div>

没有 Flexbox 解决方案:

<div style="text-align:center;">
    <div class="responsive" style="float:none;display:inline-block;">
        <div class="img">
            <a href="#">
                <img src="img/ERD_Easy/img2.jpg" alt="" class="article-img">
            </a>
            <div class="desc">Artikel naam + kleine bescrijving</div>
        </div>
    </div>
    ...
</div>

关于html - 中心响应图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42348144/

相关文章:

html - 如何在新标签页/窗口中打开 ASP 页面?

jquery - 容器高度设置为容器中最后一个子项的 css 顶部 + 几像素

javascript - 垂直调整大小的面板固定在屏幕底部

javascript - 将值插入 textarea 绕过必需的检查

html - 尝试根据两个媒体查询显示两个不同的图像

css - 如何用css创建立方体窗口?

javascript - 如何检测 PDF 数据对象是否在 html 对象中加载/播放/有效

PHP购物车添加删除按钮?

html - 在流体布局中将容器 ul/div 居中

javascript - 如何定位应该响应的自定义轮播小部件部分