将跨度在 div 中垂直居中
我有一个包含 span
的 div,我希望 span
垂直和水平对齐到我的 div
的中心。
这是小提琴: http://jsfiddle.net/RhNc2/1/
我尝试过 span
上的 >margin:auto 和 div
上的 vertical-align
,但它不起作用
编辑:我的 div 和我的span 没有固定的高度,这取决于内容,我把它固定在小提琴上只是为了给你看
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
将其添加到 div CSS:
工作小提琴在这里: http://jsfiddle.net/sdoking/DCT85/
CSS:
边框是为了清晰起见:)
Add this to the div CSS:
working fiddle is here: http://jsfiddle.net/sdoking/DCT85/
CSS:
Borders are for clarity :)
垂直对齐是一件棘手的事情,我不知道是否有一种经过验证的方法。过去几年最可靠的技术是使用 CSS 表格布局。这种方法的唯一缺点是它可能不适用于过时的浏览器。不过,根据我的经验,这可能是最好的整体解决方案。请参阅下面的示例:
这是一个 jsFiddle: http://jsfiddle.net/aGKfd/2/
有另一种技术,但它不如上述技术那么万无一失。它涉及两个容器,外部容器的位置设置为相对,内部容器的位置设置为绝对。在内部容器上使用绝对定位,您可以接近,但需要一些调整才能使其恰到好处:
这是一个 jsFiddle: http ://jsfiddle.net/6SWPe/
Vertical alignment is a tricky business, and I don't know if there's one tried-and-true way. The most reliable technique available in the last couple of years is to use a CSS table layout. The only downside to this approach is that it may not work on outdated browsers. Still, in my experience this is probably the best overall solution. See my example below:
Here's a jsFiddle: http://jsfiddle.net/aGKfd/2/
There's another technique, but it's not as foolproof as the above technique. It involves two containers, with the outer container's position set to relative and the inner set to absolute. Using absolute positioning on the inner container you can get close, but it requires some tweaking to get it just right:
Here's a jsFiddle: http://jsfiddle.net/6SWPe/
使用行高=高度:
http://jsfiddle.net/RhNc2/8/
use line-height = height:
http://jsfiddle.net/RhNc2/8/
您也可以将这些样式应用于包含的
。不过,
line-height
解决方案假设您只需要居中一行文本。You can also just apply these styles to the containing
<div>
. Theline-height
solution assumes you only need one line of text to be centered though.这是
jsFiddle: http://jsfiddle.net/Simo990/RhNc2/9/
编辑:由于您的 div 和 span 高度取决于内容,所以我的解决方案将不起作用,因为它需要固定高度并且只有一行文本。只需使用
position:absolute
寻找解决方案即可。Here it is
And the jsFiddle: http://jsfiddle.net/Simo990/RhNc2/9/
Edit: since your div and span height depends of the content, my solution will not work, because it needs fixed height and only one row of text. Just look for a solution with
position:absolute
.