我需要两列div,它们响应并在屏幕尺寸下降时互相折叠。他们应该始终居中。但无论我做什么,我都无法让这些div彼此相邻。它必须都是内联CSS。
<div id="container" style="width: 100%; margin: 0 auto;">
<div class="block" style="float: left; width:50%;">left div</div>
<div class="block" style="float: left; width:50%;">right div</div>
<div class="block" style="float: left; width:50%;">left div</div>
<div class="block" style="float: left; width:50%;">right div</div>
<div class="block" style="float: left; width:50%;">left div</div>
<div class="block" style="float: left; width:50%;">right div</div>
</div>
我尝试将左右div更改为宽度42%,这意味着它们彼此相邻,但是当在桌面或手机上查看时,它会消除这些div。当它在移动设备上向下折叠到一列时,它们应该是全宽的。
答案 0 :(得分:1)
如果您的目标是在width: 42%
上实现的,则所有div可能都有一些边距和/或填充。
元素的总水平尺寸通过其宽度 + 填充 + 边距来衡量。因此,当您在结果中设置width: 50%
时,您获得了50%+填充+边距,因此无法在一行中放入两个div。
如果你设置
<div class="block" style="float: left; width:50%; margin: 0; padding: 0;">left div</div>
<div class="block" style="float: left; width:50%; margin: 0; padding: 0;">right div</div>
对于你所有divs
你应该没问题。
要将布局更改为特定分辨率的一列,您需要引入media-query
。例如:
<style>
@media only screen and (max-width: 360px) {
div.block {
width: 100%;
}
}
</style>
当然,max-width
值取决于您的目标设备。以下是一些流行移动设备的一些示例分辨率:
答案 1 :(得分:0)
.block{
float: left; width:49%; //Change this to 50%
border: 1px solid green; //Change to 0px
}
.left{
text-align: left;
}
.right{
text-align: right;
}
HTML:
<div id="container" style="width: 100%; margin: 0 auto;">
<div class="block right">left div</div>
<div class="block left">right div</div>
<div class="block right">left div</div>
<div class="block left">right div</div>
<div class="block right">left div</div>
<div class="block left">right div</div>
</div>
答案 2 :(得分:0)
fiddle
div是彼此相邻的?
也许他们继承了一些其他的CSS,并从父元素中获得边距或填充
试试margin: 0; padding: 0;
要在较小的屏幕上100%使用它们,您必须使用media queries
例如:
@media screen and (max-width: 600px) {
.block {
width: 100%;
}
}
希望这有点帮助。