首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >css垂直内联2内嵌块在另一个内联块中

css垂直内联2内嵌块在另一个内联块中
EN

Stack Overflow用户
提问于 2014-05-14 13:18:53
回答 2查看 54关注 0票数 1

看看这把小提琴

http://jsfiddle.net/9S4zc/2/

  1. 为什么在firefox和chrome中,这看起来不一样(文本不对齐)
  2. 我如何在里面的文本:前元素是垂直对齐,最好没有线高度?

这里看起来就像

代码语言:javascript
复制
<div class="middle">
<div class="inner"> Small text </div>
</div>

css看起来像

代码语言:javascript
复制
.middle {
    display: inline-block;
    border: 1px solid black;
    height: 150px;
    vertical-align:middle;
}

.middle:before {
    content: '';
    height: 100%;
    display: inline-block;
    vertical-align:middle;
}

.inner {
    display:inline-block;
    vertical-align: middle;
    font-size: 25px;
    /* height: 30px; */
    text-align:center;
}

.inner:before {
    content: "Big Text";
    font-size: 50px;  
    display:inline-block;
    margin-right: 20px;
    vertical-align: middle;
    border: 1px solid red;
    height: 90px;
}
EN

回答 2

Stack Overflow用户

发布于 2014-05-14 13:34:38

inner:before伪元素与使用具有display: inline-block;属性的DIV元素相同。

通常,在CSS中,我们使用display: table-cell;属性使内容垂直对齐,或者在现代浏览器中使用CSS Flex,但在本例中,显示属性设置为inline-block,除了line-height(您不想使用)或其他一些将内容推送到中间的黑客之外,没有其他选择。

据我所知,这方面没有其他选择。我很想知道是否有人有更好的解释。

票数 0
EN

Stack Overflow用户

发布于 2014-05-14 14:05:20

虽然您不喜欢使用line-height,但在这里它似乎是最好的解决方案。

只需将height: 90px;替换为line-height: 90px;,一切都是垂直居中的。(除非粗大的文本是多行文本-在这种情况下,行高不起作用)

更新小提琴

代码语言:javascript
复制
.inner:before {
    content: "Big Text";
    font-size: 50px;  
    display:inline-block;
    margin-right: 20px;
    vertical-align: middle;
    border: 1px solid red;
    line-height: 90px; /* <--- */
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23655897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档