【问题标题】:Vertical-align <span> or <div>垂直对齐 <span> 或 <div>
【发布时间】:2011-06-22 20:18:36
【问题描述】:

我需要在 &lt;div&gt;&lt;span&gt; 标记内居中放置一些文本。
我已经设置了display:table-cell。那行得通。
但我想为它制作动画(使用 jQuery)。但这不起作用,因为显示设置回display:block。我不希望这样,因为显示不正确。

有人知道怎么做吗?

(如果您需要我使用的代码,请告诉我。)

<div id="container">
<ul>
<li id="1">
    <span id="spanimg1">Lorem Ipsum</span>
    <img id="img1" src="1.jpg" />        
</li>
<li id="2">
    <span id="spanimg2">Lorem Ipsum</span>
    <img id="img2" src="2.jpg"/>        
</li>
<li id="3">
    <span id="spanimg3">Lorem Ipsum</span>
    <img id="img3" src="3.jpg"/>        
</li>
</ul>
</div>

<style>
#container {
width: 400px;
height: 400px;
position:relative;
margin: auto;
vertical-align:middle;
}

li {
margin: 0;
padding: 0;
}

ul {
margin: 0;
padding: 0;
list-style-type:none;
}
li span {
position:relative;
background:black;
width:400px;
height:80px;
text-align:center;
color:white;
display:none;
z-index:1000;
vertical-align:middle;
}
img {
position:absolute;
display:none;
}
.showimg {
display:block;
}
.show {
display:table-cell;
vertical-align:middle;
position:absolute;
}
</style>

【问题讨论】:

  • 是的,请发布源代码/标记和相关的CSS
  • 我们当然需要该死的代码。请提供。
  • jsfiddle.net 对于发布代码非常有用。
  • 有代码 :) 可能有一些额外的 CSS 并不重要。但那是因为我现在玩了 2 天 :)

标签: jquery css animation vertical-alignment


【解决方案1】:

升级到 jQuery 1.4.3 或更高版本获得对 table-cell 在动画中显示的支持。

【讨论】:

  • 好吧,我有最新的 jQuery 代码“ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js”,直到现在它还不起作用……但我现在正在重写代码! :) 希望这有效:)
  • @Milaan:我认为问题出在span 你有display:none 的地方。那正确吗?如果是这样,您将遇到问题,因为 jQuery 不知道默认值应该是什么,因此它将假定为 block。相反,请尝试给出您正在谈论的特定 span 元素,它们代表 display:nonedisplay:table-cell 的类名。然后使用addClassremoveClass更新样式。
  • 完美运行。但我有一个问题。当动画添加类“show”时,它就可以工作了。但是当我给 SPAN 元素一个“绝对”定位时它不起作用。好吧,它有效,但是跨度中的所有内容都不再居中。它确实适用于相对但我的其他内容也下降了(这不是应该发生的):) 我希望你明白我的意思?你知道有什么可以解决的吗? :$
  • @Milaan:此时我需要查看您的实际 HTML/CSS 才能确定,但​​请尝试将作为 span margin: 0 auto; 内容的元素置于中心位置。跨度>
  • 我在第一篇文章中添加了它 :) 我有一个 jQuery 脚本,将“show”分配给 span 元素。但是我不能只使用带有“display:table-cell”的 SPAN 元素,然后使用 jQuery 来 HIDE() 加载所有内容。那么我不必分配“show”类,但我只需要“slideDown”,对吗?
【解决方案2】:

已编辑:我现在可以看到您发布了具有固定高度的代码。只需将它添加到您的“li span”标签中,它应该垂直居中所有文本。

line-height: 80px;

【讨论】:

  • 是的,但这仅适用于一行文本,而不适用于多行...如果我没记错的话
  • 抱歉,您能否发布一个如何使用表格单元格显示的示例,以便我可以看到您的目标是什么?
  • 感谢您的宝贵时间!上面的分析器完美运行!但我很感激你花时间回答!
猜你喜欢
  • 2016-12-22
  • 2013-09-28
  • 1970-01-01
  • 1970-01-01
  • 2014-10-15
  • 1970-01-01
  • 2010-11-04
相关资源
最近更新 更多