【问题标题】:2x2 Image Responsive Image Grid2x2 图像响应式图像网格
【发布时间】:2017-08-28 09:03:29
【问题描述】:

我正在尝试在 2x2(水平 x 垂直)网格中制作图像网格。当屏幕调整为较小尺寸时,我希望这些图像以 1x4 垂直格式显示,以便它们保留大部分尺寸。我从各个网站上找到了几篇有些相关的文章,但它们的内容都填满了整个页面。这不是我想做的事情。下图显示了 2x2 网格的外观。在网站的调整大小版本上,图像填满整个屏幕是完全可以的。我该怎么做呢?

我现在添加了一些屏幕截图,说明我希望最终产品的外观大致如何,但用图片代替了红色方块。
e.g. desktop resolution
e.g. smartphone resolution

.imageLineTop {
	display: inline-block;
	width: 100%;
	height: 725px;
	top: 60%;
	left: 50%;
	transform: translate(50%, 50%);
}

.imageLineBottom {
	display: inline-block;
	margin-top: 45px;
	width: 100%;
	height: 725px;
	top: 60%;
	left: 50%;
	transform: translate(50%, 50%);
}

#img0 {
	height: 700px;
}

#img1 {
	height: 700px;
}

#img2 {
	height: 700px;
}

#img3 {
	height: 700px;
}

#fadeBox0 {
	width: 478px;
	height: 700px;
	background-color: black;
	opacity: 0.5;
	left: 24%;
	position: absolute;
	display: none;
}

#fadeBox1 {
	width: 478px;
	height: 700px;
	background-color: black;
	opacity: 0.5;
	right: 24%;
	position: absolute;
	display: none;
}

#fadeBox2 {
	width: 478px;
	height: 700px;
	background-color: black;
	opacity: 0.5;
	left: 24%;
	position: absolute;
	display: none;
}

#fadeBox3 {
	width: 478px;
	height: 700px;
	background-color: black;
	opacity: 0.5;
	right: 24%;
	position: absolute;
	display: none;
}
	<!--Top image line-->
		<section class="imageLineTop">
			<img class="discoverImage" id="img0" src="assets/imgs/1.jpg">
			<img class="discoverImage" id="img1" src="assets/imgs/2.jpg">

			<section id="fadeBox0">
				<h3 class="imageInlineTitle">Purity.</h3>
			</section>

			<section id="fadeBox1">
				<h3 class="imageInlineTitle">Style.</h3>
			</section>
		</section>

		<!--Bottom image line-->
		<section class="imageLineBottom">
			<img class="discoverImage" id="img2" src="assets/imgs/3.jpg">
			<img class="discoverImage" id="img3" src="assets/imgs/4.jpg">

			<section id="fadeBox2">
				<h3 class="imageInlineTitle">Integrity.</h3>
			</section>


			<section id="fadeBox3">
				<h3 class="imageInlineTitle">Courage.</h3>
			</section>
		</section>

【问题讨论】:

  • 因此,只需将这 2 个图像放在具有最大宽度的父 div 中,并将父 div 居中。
  • 你能贴出你的代码吗?
  • 好的,马上上传。

标签: html css image responsive


【解决方案1】:

我不太确定你的最终目标是什么,但是一旦窗口小于它们的实际大小,你可以让你的图像换行:

.img0, .img1, .img2, .img3 {position: relative}

记住在这种情况下不要使用百分比宽度。

请看下面的小提琴。希望对您有所帮助。

https://jsfiddle.net/7rtb084r/

【讨论】:

  • 非常感谢!自从提出这个问题以来,我已经设法解决了类似的问题,但我仍然在苦苦挣扎,因为我也希望“网格”始终处于中心位置。所以当它是 2x2 时,连续两幅图像的中间点在屏幕宽度的 50% 处,然后当调整为 1x4 时,图像中间点在屏幕宽度的 50% 处。抱歉,如果我没有说清楚,我只是在努力让我了解我在这里所做的事情,所以不知道如何把我的话写在纸上。
  • @Josh 因此,您需要将每一行图像放入父 div 中,然后添加 {margin-left: auto;边距右:自动;宽度:1010px} 到父级。这是假设图像为 500 像素。看到这个小提琴:jsfiddle.net/7rtb084r/4
  • 谢谢,是的,这让我到达了我想要的地方。但是,如果我将这两个小提琴结合起来,它似乎不起作用。它们将彼此独立地正确执行,但当组合时,它们不会。任何关于如何组合它们的提示将不胜感激,所以提前谢谢你!
  • 我现在还在帖子的主体中添加了几张图片,展示了我最终想要实现的目标。
  • @Josh 嗨,如果没有看到确切的代码,这很困难,因为媒体查询在 JsFiddle 上不起作用。但这里有一个 Fiddle 可以显示你想要什么:jsfiddle.net/maL8pdtv。然后,您需要添加一个媒体查询,说明当屏幕小于两个图像时(如果您的图像为 500 像素,则约为 1010 像素)然后它应该将它们放在一行上。类似:'@'media only screen and (max-width: 1010px) { .img1, .img2, .img3, .img4 {width: 80%;左边距:自动; margin-right: auto} .contentTop, .contentBottom {width: auto} } 希望这会有所帮助。 -删除''周围和符号
猜你喜欢
  • 1970-01-01
  • 2017-01-12
  • 2016-08-25
  • 2020-07-11
  • 2020-01-27
  • 1970-01-01
  • 2012-11-25
  • 2013-09-29
  • 1970-01-01
相关资源
最近更新 更多