仅使用CSS保持内容垂直居中?

时间:2013-06-07 02:34:17

标签: css css3

我的内容区域应按以下方式运行:

  • 如果没有垂直溢出(目前通过display:table/-cell实现)
  • ,内容将垂直居中
  • 除非有垂直溢出,否则不会显示滚动条
  • 包含div的高度永远不会改变

我只能满足第一点 - 小提琴:

http://jsfiddle.net/PTSkR/125/

这是我的HTML:

<div class="row-fluid card-box">

    <div class="span4 side-study-box">
        <div class="side-box-content">
            <pre class="text-content-saved">TEST 
           TEST</pre>
            </div>
        </div>
</div>

Css:

.side-study-box {
    background-color: white;
    color: black;
    border: 1px solid #3D6AA2;
    text-align: center;
    height: 160px;
    max-height: 160px;
    display: table ;
    margin: 0px ;
    margin-left: -1px;
    position: relative;
    overflow-y: scroll ;
}

    .side-study-box .side-box-content {
        width: calc(100%);
        height: 160px;
        float: right;
        display: table;
        overflow-y: scroll ;
        background-color: white;
    }

    /*#region CONTENT AREAS */

    /*#region TEXT CONTENT */
    .side-study-box .text-content-saved {
        width: calc(100%+29px);
        font-size: 24px;
        display: table-cell;
        vertical-align: middle;
        text-align: center;
        height: 160px !important;
        max-height: 160px ;
        background-color: white;
        padding: 0px ;
        margin: 0px ;
        border: 0px ;
        overflow-y: scroll;
    }

不幸的是我不能使用js作为解决方案的一部分...这只能用css吗?

1 个答案:

答案 0 :(得分:0)

您可以使用overflow:auto;来获得第二点并设置以下内容:

字断裂:正常!重要; 自动换行:正常!重要; white-space:pre!important;

小提琴:http://jsfiddle.net/PTSkR/134/

请记住,由于您使用的是pre标记,这意味着所有空格和换行格式都会计数,因此任何空格或额外的行都可能导致溢出,您可能会错过。见here