我已经设置了margin: 0 33% 0 0;
,但是我还要确保保证金是至少某个px
金额。我知道CSS中没有min-margin
,所以我想知道这里是否有任何选项?
在元素的右侧放置div
,其中[%]为%width
,静态min-width
。
<div style="position:relative; float:left; margin:0">
<div style="position:relative; float:left; width:33%; min-width:200px">
这里真正的解决方案是使用媒体查询断点来确定何时33%的像素不再对您有用,并且应该被最小边距(以像素为单位)覆盖。
/*Margin by percentage:*/
div{
margin: 0 33% 0 0;
}
/*Margin by pixel:*/
@media screen and ( max-width: 200px ){
div{
margin: 0 15px 0 0;
}
}
在上面的代码中,将max-width
更改为33%右边距不再适用的任何屏幕宽度。
您可以尝试这个
.mm:before {
content: "";
display: inline-block;
width: 33%;
min-width: 200px;
}
Carl Papworth,在这种情况下,您可以使用此:
body {margin-left: 60px; margin-right: 60px; width:calc(100%-120px); }
div#container {width:33%;}
如果您使用的是span
,那么您必须这样做:
span{
display:block;
margin:auto;
}
如果您使用的是div
,那么您可以执行此操作:
div{
margin:auto;
}
怎么样?
body {margin-left: 60px; margin-right: 60px; }
div#container {width:33%;}
我已经使用了前面提到的几种解决方案,但是在流畅,真正响应的环境中,我认为最好的选择是在相应的容器/包装器上设置适当的填充物。例:样式:
html {
background-color: #fff;
padding: 0 4em;
}
body {
margin: 0 auto;
max-width: 42em;
background-color: #ddf;
}
现在以各种窗口宽度播放,并尝试各种字体大小。
也尝试working demo。
您可以将您的商品保留在“容器” div中,并将填充设置为您想要的“最小利润”。它可能不完全是您要寻找的内容,但是它给了您最小保证金大小的感觉。
<div class="container">
<div class="your_div_with_items">
'items'
</div>
</div>
然后是CSS:
.container
{
padding: 0 'min_margin_ammount' 0 0;
}
.your_div_with_items
{
margin: 0 33% 0 0;
}
据我了解,您可以在元素周围放置一个div,以定义填充。外部元素的填充就像内部元素的空白。
想象您希望至少有1px的边距:
<div style="padding:1px">
<div style="margin: 0 33% 0 0;">
interesting content
</div>
</div>
编辑:这就像伊米加斯的答案,但我认为更容易理解。
也可以测试屏幕宽度/高度的一定百分比是否小于以像素为单位的长度。
这是使用JavaScript的简单解决方案:
<body>
<div id="demo">
<p> Hello World! </p>
</div>
<script>
if (((window.innerWidth / 100) * 33) < 250) { /* Gets 33% of window width in pixels, tests if it is less than required minimum length (250px) */
document.getElementById("demo").style.margin = "0 250px 0 0" /* If true, set margin to length in pixels */
} else {
document.getElementById("demo").style.margin = "0 33% 0 0" /* If not true, the widow is big enough and percentage length is set */
}
</script>
</body>
我知道比赛已经很晚了,但是您尝试过吗?
margin: 0 max(33%, 20px) 0 0
其中20px是无论您希望至少具有一定数量的像素。因此,边距将保持流畅,但永远不会低于20px。
希望有帮助!