css,如何阻止元素被容器压扁

时间:2013-08-31 12:14:46

标签: html css styles

jsfiddle

我希望在调整窗口大小时使.outer更改形状/大小,使其比.outer的内容更窄,只需将样式直接应用于.outer(如果可能)。

HTML:

<div class='outer'>
    <div class='inner' style='background:#f00'>
    </div>
    <div class='inner' style='background:#0f0'>
    </div>
    <div class='inner' style='background:#00f'>
    </div>
</div>

CSS:

.outer, .inner{
    display: inline-block;
    position: relative;
    float: left;
    margin: 0;
    border: 0;
    padding: 0;
    overflow: visible;
}

.outer{
    /*what to put in here*/
}

.inner{
    width:50px;
    height:50px;
}

在jsfiddle中如果你将结果面板调整为更薄,你会看到蓝色被推到下一行,接着是绿色正方形,我希望外面保持其原始形状/大小所以这三个.inner维持他们的立场。

2 个答案:

答案 0 :(得分:3)

为容器设置最小宽度

使用min-width属性

.outer{
    min-width:150px;
}

jsFiddle Demo


使用内联屏幕显示功能

更灵活的方法是使用word-spacingwhite-space等属性,利用inline-block显示:

.outer{
    white-space: nowrap;
    word-spacing: -1em;
}

jsFiddle Demo

答案 1 :(得分:1)

这不是“仅将样式直接应用于.outer”。但这是另一种选择。摆脱float: left,将width更改为min-width并在display: table-cell上添加.inner可获得所需的结果。

<强> CSS

.outer, .inner {
    display: inline-block;
    position: relative;
    margin: 0;
    border: 0;
    padding: 0;
    overflow: visible;
}
.inner {
    min-width:50px;
    height:50px;
    display: table-cell;
}

这是显示此方法的 jsFiddle