CSS:垂直居中文本,具有一个固定宽度的容器和流畅的文本长度

发布于 2024-11-19 11:11:06 字数 650 浏览 3 评论 0原文

我无法为这种完全流畅的布局找到正确的解决方案。我希望以下小提琴中的副标题在图标旁边垂直居中对齐。根据浏览器的大小(以及不同的文本长度),副标题可能会分成多行。

我准备了两个小提琴 - 第一次尝试是我的首选方法,因为我已经更彻底地测试了类似的布局:

http://jsfiddle .net/mmDFC/

第二个小提琴是使用 display:table-cell; 在相同情况下的尝试,但我一生都无法修复丢失的权利文字对齐,我也从来没有彻底测试 IE6+ 与此显示类型兼容:

http://jsfiddle.net/mmDFC/1/ (此几乎可以工作,保存 text-align:right; 的损失)

我查找了一系列类似标题的问题,但找不到我想要的东西,所以很好的答案向我指出了一个我'错过了,或者想出了一个解决方案以上。

一切都以垂直对齐文本的名义... :/


浏览器更新:我在 Chrome 中摆弄,我看到 IE8 的行为类似,但 Ffox3 对于解决方案 2 的行为不同。

I'm having trouble finding the right solution for this fully fluid layout. I want the Sub-title in the following fiddles to be vertically center aligned next to the icon. The Sub-title may break onto multiple lines depending on the size of the browser (and varying length of text).

I have two fiddles prepared - the first attempt is my preferred approach as I've more thoroughly tested similar layouts:

http://jsfiddle.net/mmDFC/

The second fiddle, is an attempt on the same situation using display:table-cell;, but for the life of me I couldn't fix up the lost right text alignment, and I've also never thoroughly tested IE6+ compat with this display type:

http://jsfiddle.net/mmDFC/1/ (this almost works, save the loss of text-align:right;)

I have looked up a host of similarly titled SO questions but couldn't find what I wanted, so great answer points me to one I've missed, or come up with a solution to the above.

All in the name of vertical aligned text... :/


Browser update: I fiddled in Chrome, I see IE8 behaves similarly, but Ffox3 behaves differently for solution 2.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

半岛未凉 2024-11-26 11:11:06

如果我理解你想要什么,你只需要将 display:table 添加到 h2

<div class="wrapper clearfix">
    <h1>Main Title</h1>
    <h2>
        <span id="fluid">
            Fluid Span
        </span>
        <span id="icon">
            Lots of long text...
        </span>

    </h2>
</div>

.clearfix:after {
    content:"";
    display:block;
    clear:both; 
}
h2 {
    float:right;  
    text-align:right; 
    background-color:#999;
    display:table;
    width:43%;
}
span {
    background-color:#ccc;   
    border:1px #000 solid;
    vertical-align:middle;
}
span#fluid {
    display:table-cell;

    height:100%;

}

span#icon { 
    display:table-cell;
    width:60px;
    height:40px;
}

http://jsfiddle.net/thomas4g/WecP4/28/

如果这不是您想要的,请告诉我。

If I understand what you want right, you just need to add display:table to the h2

<div class="wrapper clearfix">
    <h1>Main Title</h1>
    <h2>
        <span id="fluid">
            Fluid Span
        </span>
        <span id="icon">
            Lots of long text...
        </span>

    </h2>
</div>

.clearfix:after {
    content:"";
    display:block;
    clear:both; 
}
h2 {
    float:right;  
    text-align:right; 
    background-color:#999;
    display:table;
    width:43%;
}
span {
    background-color:#ccc;   
    border:1px #000 solid;
    vertical-align:middle;
}
span#fluid {
    display:table-cell;

    height:100%;

}

span#icon { 
    display:table-cell;
    width:60px;
    height:40px;
}

http://jsfiddle.net/thomas4g/WecP4/28/

Let me know if this isn't what you want.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文