我已经设置了margin: 0 33% 0 0;
,但我还想确保这个边距至少有一定的px
值。 我知道CSS中没有min-margin
,所以我想知道我是否有任何选项?
真正的解决方案是使用媒体查询断点来确定当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%右边距的屏幕宽度。在您的元素右侧放置一个具有%width
和静态min-width
的div
。
<div style="position:relative; float:left; margin:0">
<div style="position:relative; float:left; width:33%; min-width:200px">
clear
,因为这样会导致布局被推到不想要的位置。解决方法是在父级div上设置 overflow:hidden
,但这并不是一个理想的方案,会限制像HTML工具提示这样的元素的使用,因为它们可能被非溢出的div的边界框剪裁掉。 - Kafosodiv
中使用 float:right
? - Alexis Wilke你可以尝试这个。
.mm:before {
content: "";
display: inline-block;
width: 33%;
min-width: 200px;
}
我知道现在有点晚了,但你试过这个吗?
margin: 0 max(33%, 20px) 0 0
其中20px是你想要的像素数最小值。因此,边距将保持流动性但永远不会低于20px。
希望这有所帮助!
max()
值时,只有在调试工具中添加它才有效,而不是直接使用?我的浏览器是火狐浏览器,我正在使用React-Sass。 - Sapinder Singh在这种情况下,您可以使用Carl Papworth提供的方法:
body {margin-left: 60px; margin-right: 60px; width:calc(100%-120px); }
div#container {width:33%;}
这个怎么样?
body {margin-left: 60px; margin-right: 60px; }
div#container {width:33%;}
box-sizing: border-box;
:) - Brett<div style="padding:1px">
<div style="margin: 0 33% 0 0;">
interesting content
</div>
</div>
编辑:这个答案类似于Imigas的答案,但我认为更易于理解。
<div class="container">
<div class="your_div_with_items">
'items'
</div>
</div>
.container
{
padding: 0 'min_margin_ammount' 0 0;
}
.your_div_with_items
{
margin: 0 33% 0 0;
}
span
,那么您需要这样做:span{
display:block;
margin:auto;
}
如果你正在使用 div
,那么你可以这样做:
div{
margin:auto;
}
我已经尝试了几种上述的解决方案,但在流畅和真正响应的环境中,我认为最好的选择是在相应的容器/包装器上设置适当的填充。例如: 样式:
html {
background-color: #fff;
padding: 0 4em;
}
body {
margin: 0 auto;
max-width: 42em;
background-color: #ddf;
}
现在尝试不同的窗口宽度,还可以尝试不同的字体大小。
同时也可以尝试工作演示。