html - 如何垂直和水平对齐两个具有不同字体大小的跨度

标签 html css

我在一个段落中有两个跨度,其中文本的字体大小不同。我想相应地左右对齐它们。我还想在基线处垂直对齐它们。正如您在此 JSFiddle 中看到的那样我不能同时使用文本对齐和 float 同时执行这两个操作。

html :

<p>
<span class="one">Something</span>
<span class="two">Something Else</span>
</p>

CSS :

p {
    border: 1px solid black;
}

p span {
    vertical-align: baseline;
}

.one {
    font-size: 2.0em;
}

.two {
    /* text-align: right; */
    float: right;
    font-size: 3.0em;
}

最佳答案

实现此目的的一种方法是使用 text-align-last 属性,它可以将单行段落的内容对齐到两个边距。然后制作 spans inline-block 以防止 spans 内的空间扩展。

p {
   border:1px solid black;
   text-align:justify;
   -moz-text-align-last:justify;
   text-align-last:justify;
}

p span {
   vertical-align:baseline;
   display:inline-block;
}

就是这样。没有 float ,没有文本对齐跨度。参见 fiddle .

另一种方法是使用 flex 盒子。
请注意,当段落为 flex 时,vertical-align 不再有效,您将需要使用 align-items。然后将 auto 的左边距添加到最右边的 span 以将其刷新到右边。

p {
   border:1px solid black;
   display:-webkit-flex;
   display:-moz-flex;
   display:flex;
   -webkit-align-items: baseline;
   align-items: baseline;
}

.one {
   font-size:2.0em;
}

.two {
   font-size:3.0em;
   margin-left:auto;
}

参见 other fidde .

您要使用哪种方法可能取决于您的受众。第一个在旧版本的 Chrome 中不起作用,它只在 v35 中定义。第二个在 11 以下的 IE 版本中不起作用。

关于html - 如何垂直和水平对齐两个具有不同字体大小的跨度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28873581/

相关文章:

javascript - 以问号开头的html标签?

javascript - 将 jQuery datepicker 分配给 div 元素并获取值

html - CSS - 将图像转换成房子的形状

css - 在线响应式 Web 测试仪

css - 背景颜色不在 Safari 中呈现

javascript - 如何使我的图片库宽度响应下面的 div?

javascript - .attr ("value") 总是返回未定义?

html - 在 div 内对齐 3 个部分

iphone - 媒体查询 : Targeting orientation: landscape without excluding desktop computers

css - 模式覆盖和绝对定位元素中的滚动条