【问题标题】:a (complicated) horizontal centering of a box盒子的(复杂的)水平居中
【发布时间】:2012-08-11 19:35:06
【问题描述】:

我需要水平(我不在乎垂直)居中三个框(div 或 span,我不在乎)这样中间的总是居中,并且它的宽度是文本所需的最小宽度(单个word) 它包含以下内容:

用简短的文字(一个单词):

--------------------------------------------------------------
|                                                            |
| ----------------------  ----------  ---------------------- |
| |                    |  |xxxxxxxx|  |                    | |
| |                    |  |        |  |                    | |
| ----------------------  ----------  ---------------------- |
|                                                            |
--------------------------------------------------------------

带有长文本(又是一个单词):

--------------------------------------------------------------
|                                                            |
| -----------  ------------------------------  ------------- |
| |         |  |xxxxxxxxxxxxxxxxxxxxxxxxxxxx|  |           | |
| |         |  |                            |  |           | |
| -----------  ------------------------------  ------------- |
|                                                            |
--------------------------------------------------------------

这可能吗?

我的最后一次尝试远未成功(因为方框重叠,我不希望这样):

<div style="position:relative;";>
<span style="display:block;width:100px;margin:0 auto;text-align:center;border:1px solid red"><h1>mid_text</h1>
<span style="text-align:right;position:absolute;top:0em;left:0;display:block;width:50%;float:left;border:1px solid red">left text</span>
<span style="text-align:left;position:absolute;top:0em;left:50%;display:block;float:right;width:50%;border:1px solid red">right text</span>
</span>
</div>

【问题讨论】:

    标签: css html centering


    【解决方案1】:

    CSS

    将此添加到您的 CSS 文件中:

    body
    {
        padding:20px;
    }
    .wrapper
    {
        display:table;
        width:100%;
    }
    .wrapper .left,
    .wrapper .center,
    .wrapper .right
    {
        padding:0 20px;
        display:table-cell;
    }
    .wrapper .left,
    .wrapper .right
    {
        width:50%;
        background-color:#2b88f1;
    }
    .wrapper .center
    {
        text-align:center;
        background-color:#fff;
    }
    

    HTML

    这就是你的 HTML 代码的样子:

    <div class="wrapper">
       <div class="left">
           left
        </div>
        <div class="center"> 
            center
        </div>
        <div class="right">
            right
        </div>
    </div>
    
    <hr>
    
    <div class="wrapper">
       <div class="left">
           left
        </div>
        <div class="center"> 
            ceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeenter
        </div>
        <div class="right">
            right
        </div>
    </div>
    

    ​ 示例:http://jsfiddle.net/YVhLt/

    【讨论】:

    • 很好的解决方案,但不是 100%,如果我们在中心取两个词而不是 ceeeeeentr,即插入文本“center something”
    • 你的意思是因为换行?然后,OP 需要将white-space:nowrap; 添加到.wrapper .center
    • 如果需要 IE7 支持,请使用实际的 HTML 表格而不是 display:table,并使用相同的基本设置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-15
    • 2015-10-25
    • 2013-12-28
    • 1970-01-01
    • 2020-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多