繁体   English   中英

如何垂直对齐跨度标签内的某些内容?

[英]How do I vertically align something inside a span tag?

如何让“x”在跨度中间垂直对齐?

.foo {
    height: 50px;
    border: solid black 1px;
    display: inline-block;
    vertical-align: middle;
}

<span class="foo">
   x
</span>

使用line-height:50px; 而不是高度。 这应该够了吧 ;)

请注意,如果在span有一个较长的句子,因为没有足够的空间, line-height处理方法会失败。 在这种情况下,您将有两条线,其间隙与属性中指定的N像素的高度相同。

当我想在右侧显示带有垂直居中文本的图像时,我坚持使用它在响应式Web应用程序中工作。 作为基础,我使用Eric Nickus和Felipe Tadeo建议的方法。

如果你想实现:

桌面

还有这个:

移动

 .container { background: url( "https://i.imgur.com/tAlPtC4.jpg" ) no-repeat; display: inline-block; background-size: 40px 40px; /* image's size */ height: 40px; /* image's height */ padding-left: 50px; /* image's width plus 10 px (margin between text and image) */ } .container span { height: 40px; /* image's height */ display: table-cell; vertical-align: middle; } 
 <span class="container"> <span>This is a centered sentence next to an image</span> </span> 

如果您需要多行,这是最简单的方法。 包裹你span另一个span文本并用line-height指定它line-height 多行的技巧是重置内spanline-height

<span class="textvalignmiddle"><span>YOUR TEXT HERE</span></span>
.textvalignmiddle {
    line-height: /*set height*/;
}

.textvalignmiddle > span {
    display: inline-block;
    vertical-align: middle;
    line-height: 1em; /*set line height back to normal*/
}

DEMO

当然外span可能是div或whathaveyou

flexbox方式:

.foo {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 50px;
}

我需要这个链接,所以我用一个标签和一个div包装了span,然后将span标签本身居中

HTML

<div>
    <a class="tester" href="#">
        <span>Home</span>
    </a>
</div>

CSS

.tester{
    display: inline-block;
    width: 9em;
    height: 3em;
    text-align: center;
}
.tester>span{
    position: relative;
    top: 25%;
}

CSS垂直中心图像和文本

我已经创建了一个垂直图像中心和文本的演示,我也测试了firefox,chrome,safari,Internet Explorer 9和8。

这是非常简短的css和html,请检查下面的代码,你可以在screenshort上找到输出。

HTML

<div class="frame">
    <img src="capabilities_icon1.png" alt="" />
</div>

CSS

  .frame {
        height: 160px;      
        width: 160px;
        border: 1px solid red;
        white-space: nowrap;
        text-align: center; margin: 1em 0;
    }

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

    img {
        background: #3A6F9A;
        vertical-align: middle;
    }

输出 在此处输入图像描述

这对我有用(Keltex说同样的)

.foo {
height: 50px;
...
}
.foo span{
vertical-align: middle; 
}

<span class="foo"> <span>middle!</span></span>

不幸的是,vertical-align css属性没有达到预期的效果。 本文介绍了使用css垂直对齐元素的两种方法。

将padding-top设置为适当的值以向下推x,然后从高度中减去padding-top的值。

只是提供一个替代方案,以防您将元素封装在一个灵活的容器中(例如:display: flex):

align-self: center;

更多信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM