【发布时间】:2016-12-15 06:16:18
【问题描述】:
这是我目前正在练习的 HTML 代码。 CSS 不完整,因为我不知道该怎么做:
.container {
margin: auto;
width: 700px;
border: solid blue 2px;
}
.container div {
padding: 10px 0;
vertical-align: top;
}
#orange {
background-color: coral;
}
#blue {
background-color: lightblue;
}
.container > div .content {
border: dotted black 1px;
height: 100px;
width: 250px;
margin: auto;
display: block;
text-align: center;
}
<div class="container">
<div id="orange">
<div class="content">content
<br />width: 250px</div>
</div>
<div id="blue">
<div class="content">content
<br />width: 250px</div>
</div>
</div>
当容器足够大时,橙色和蓝色块应该并排放置,如下所示:
如果我减小容器的宽度,橙色和蓝色块内的水平边距会缩小,直到它们的边框与内容的边框相交:
这是我在减小容器宽度时想要获得的结果:
有人知道怎么做吗? 如果可能的话,不用 JS。并且容器不依赖于屏幕大小,所以我不能使用基于设备宽度的媒体查询。 当然,该解决方案必须与尽可能多的网络浏览器兼容(包括最新版本的 IE)。
编辑:
我考虑过使用flexbox,但我希望我能找到没有的解决方案。
顺便说一句,我有兴趣在 CSS 代码中编写仅适用于 IE9 及以下版本的特定规则。
编辑2: 似乎不可能通过以下限制做我想做的事:
- 没有JS
- 对屏幕尺寸没有条件,而是在容器尺寸上
所以我想我必须至少放弃其中一个......
【问题讨论】:
-
探索flexbox -
display: flex -
在
.container中使用display:inline-block -
按照@Pugazh 的建议使用 flexbox。他附加的链接中有很好的参考。
-
您还可以查看媒体查询:w3schools.com/cssref/css3_pr_mediaquery.asp 或 css-tricks.com/snippets/css/media-queries-for-standard-devices - 如果您正在寻找它在旧版浏览器上的工作。 Flexbox 适用于现代浏览器
-
@Pugazh:是的,我已经把这篇文章加红了(顺便说一句,这很好)。但是,在一个完美的世界里,我需要 IE9 兼容性......而且 IE9 不支持 flexbox。 :( 但是如果我没有找到其他解决方案,我会尝试使用 flexbox。
标签: css responsive