如何将文本与图像垂直对齐?
P粉360266095
P粉360266095 2023-08-27 12:45:29
[CSS3讨论组]
<p>为什么 <code>vertical-align: middle</code> 不起作用?然而, <code>vertical-align: top</code> <em>确实</em>有效。</p> <p><br /></p> <pre class="brush:css;toolbar:false;">span{ vertical-align: middle; }</pre> <pre class="brush:html;toolbar:false;">&lt;div&gt; &lt;img src="https://via.placeholder.com/30" alt="small img" /&gt; &lt;span&gt;Doesn't work.&lt;/span&gt; &lt;/div&gt;</pre> <p><br /></p>
P粉360266095
P粉360266095

全部回复(2)
P粉146080556

以下是一些垂直对齐的简单技术:

单行垂直对齐:中间

这个很简单:将文本元素的行高设置为等于容器的行高

<div>
  <img style="width:30px; height:30px;">
  <span style="line-height:30px;">Doesn't work.</span>
</div>

多行vertical-align:bottom

相对于其容器绝对定位内部 div

<div style="position:relative;width:30px;height:60px;">
  <div style="position:absolute;bottom:0">This is positioned on the bottom</div>
</div>

多行vertical-align:middle

<div style="display:table;width:30px;height:60px;">
  <div style="display:table-cell;height:30px;">This is positioned in the middle</div>
</div>

如果必须支持旧版本的 IE

为了使其全面正常工作,您必须对 CSS 进行一些修改。幸运的是,有一个 IE 错误对我们有利。在容器上设置 top:50% ,在内部 div 上设置 top:-50% ,可以获得相同的结果。我们可以使用 IE 不支持的另一个功能将两者结合起来:高级 CSS 选择器。

<style type="text/css">
  #container {
    width: 30px;
    height: 60px;
    position: relative;
  }
  #wrapper > #container {
    display: table;
    position: static;
  }
  #container div {
    position: absolute;
    top: 50%;
  }
  #container div div {
    position: relative;
    top: -50%;
  }
  #container > div {
    display: table-cell;
    vertical-align: middle;
    position: static;
  }
</style>

<div id="wrapper">
  <div id="container">
    <div><div><p>Works in everything!</p></div></div>
  </div>
</div>

可变容器高度vertical-align:middle

此解决方案需要比其他解决方案稍微更现代的浏览器,因为它使用 transform:translateY 属性。 (http://caniuse.com/#feat=transforms2d

将以下 3 行 CSS 应用于元素将使其在其父元素中垂直居中,无论父元素的高度如何:

position: relative;
top: 50%;
transform: translateY(-50%);
P粉891237912

实际上,在这种情况下,它非常简单:对图像应用垂直对齐。由于所有内容都在一行中,因此您实际上要对齐的是图像,而不是文本。

<!-- moved "vertical-align:middle" style from span to img -->
<div>
  <img style="vertical-align:middle" src="https://via.placeholder.com/60x60" alt="A grey image showing text 60 x 60">
  <span style="">Works.</span>
</div>
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号