隐藏显示表和溢出

时间:2013-05-29 21:14:44

标签: html css overflow vertical-alignment

我正在制作Img以获得乐趣。但是现在我的div中有一些文字。我用了代码:

display: table-cell;
vertical-align: middle;

让文本在我的div中精美居中。我也有这个代码:

.vertical-smallborder{
    position: relative;
    width: 217px;
    height: 350px;
    border: 5px solid white;
    outline: 1px solid #c8c8c8;
    float:left;
    display: table;

    -webkit-transition: all .3s;
    -moz-transition: all .3s;
    -ms-transition: all .3s;
    -o-transition: all .3s;
    transition: all .3s;

    overflow: hidden;
}

我在那边找到了display: table的文字。如果我删除它,文本将不会在div中居中。

现在我遇到溢出问题:隐藏了。在 FireFox IE 溢出:如果有display: table,则隐藏不再有效。

Google Chrome Safari 一起支持display: tableOverflow:hidden

注意:它必须是纯CSS。所以我不能使用任何JavaScript。

由于

2 个答案:

答案 0 :(得分:7)

对于Firefox - 概念验证

我创建了一个演示如下:

<div class="image-clipper">
    <img src="http://placekitten.com/400/500" style="margin: -150px 0 0 -100px;" />
    <div class="text-panel">
        <div class="text-cell">
        <h1>Overhemd<br/>24,95</h1>
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
        </div>
    </div>
</div>

并使用以下CSS:

.image-clipper {
    width: 250px;
    height: 300px;
    border: 5px solid red;
    overflow: hidden;
    position: relative;
}
.image-clipper .text-panel {
    position: absolute;
    top: 0;
    left: 0;
    display: table;
    height: 100%;
}
.image-clipper .text-cell {
    display: table-cell;
    vertical-align: middle;
    padding: 20px; /* works okay */
    background-color: rgba(255,255,255,0.5); /* applied to entire cell */
}

我能够在父元素中剪切图像,并根据需要定位表/表格单元格。

请参阅演示:http://jsfiddle.net/audetwebdesign/JpMXP/

<强>后记

我没有时间深入审核您的样式表,也没有时间调查表格/表格单元格与overflow: hidden如何互动的完整详情。但是,这种方法似乎有效并且相对容易理解。

答案 1 :(得分:0)

我建议你删除你的css:

display: table

并将顶部和左侧属性赋予:

.vertical-smallborder .text

然后,如果一个文本更长,则所有文本都将对齐,因为它们具有相同的顶部起点。它会更美。