我不知道自己在哪里犯错。我有3个div(实际上是ul li),我想让它们响应。 div需要从1180px到500px并排,并且在500px(小于500px)之后,div的宽度必须为100%,并且彼此之间必须靠得住,我做到了。唯一的问题是如何使它们从1180px到500px并排?这是代码
<section class="portfolio">
<div class="wrapper">
<ul>
<li>
<div class="portfolio_item">
<img class="img-responsive" src="images/1.jpg" alt="" />
<div class="portfolio_title">
<h3>LEFT</h3>
</div><!-- end portfolio_title !-->
</div><!-- end portfolio_item !-->
</li><!-- end li !-->
<li>
<div class="portfolio_item">
<img class="img-responsive" src="images/2.jpg" alt="" />
<div class="portfolio_title">
<h3>MIDDLE</h3>
</div><!-- end portfolio_title !-->
</div><!-- end portfolio_item !-->
</li><!-- end li !-->
<li>
<div class="portfolio_item">
<img class="img-responsive" src="images/3.jpg" alt="" />
<div class="portfolio_title">
<h3>RIGHT</h3>
</div><!-- end portfolio_title !-->
</div><!-- end portfolio_item !-->
</li><!-- end li !-->
</ul><!-- end ul !-->
</div><!-- end wrapper !-->
</section><!-- end section portfolio !-->
.wrapper {
width: 1180px;
margin: 0 auto;
position: relative;
}
.portfolio {
margin: 100px auto 38px auto;
}
.portfolio ul {
list-style-type: none;
overflow: hidden;
margin-left: -62px;
}
.portfolio ul li {
float: left;
margin-left: 62px;
margin-bottom: 62px;
position: relative;
display: block;
overflow: hidden;
width: 352px;
height: 334px;
}
.portfolio ul li .portfolio_item img {
width: 100%;
height: auto;
}
@media screen and (max-width: 1180px) {
.wrapper {
width: 100%;
}
.portfolio ul {
margin-left: -5.2542372881355932203389830508475%;
}
.portfolio ul li {
margin-left: 5.2542372881355932203389830508475%;
margin-bottom: 5.2542372881355932203389830508475%;
width: 29.830508474576271186440677966102%;
height: auto;
}
}
@media screen and (max-width: 500px) {
.portfolio ul {
text-align: center;
margin: 0 auto;
}
.portfolio ul li {
margin-bottom: 5.2542372881355932203389830508475%;
width: 90%;
height: auto;
float: none;
}
}
最佳答案
.wrapper
是1180px的宽度。所包含的.portfolio ul li
的宽度为352px。但是它们还带有62px的左边距。
由于它们是三个元素,因此(352 + 62)x 3 = 1242px,因此它们不适合1180包装器。
减小宽度或边距(或使它们基于百分比)。In this example,我将.portfolio ul li
宽度分别更改为331px,现在这3个元素可以并排放置。
编辑:以前的修复工作超过1180px。要在500px和1180px之间有一个响应式解决方案,可以在@media screen and (max-width: 1180px) {
部分的宽度中进行以下调整:
.portfolio ul {
/* Using full space in the container */
margin-left: 0;
padding-left:0;
}
.portfolio ul li {
/* Making sure the 3 elements width and margin add up to 100%
(2.5 + 2.5 + 28) x 3 =~ 100% */
margin-left: 2.5%;
margin-right: 2.5%;
width: 28%;
height: auto;
}
这在工作in this codepen。
关于html - 三个div并排响应,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31165857/