【问题标题】:Vertically centering div caption over responsive image在响应图像上垂直居中 div 标题
【发布时间】:2013-08-10 14:08:02
【问题描述】:

我正在尝试将绝对定位的标题垂直居中在具有灵活高度(最大宽度:100%;)的图像上并且遇到问题。我知道我需要用JS来检测div的高度并调整标题div的顶部位置,但是我遇到了麻烦。

http://jsfiddle.net/A69Xr/

    <div id="nav">navigation</div>
<div id="slider">
    <img src="http://codeword.org/wp-content/uploads/2011/07/aspen_colorado.jpg">
    <div class="caption">
        <div class="wrap">
            <h1>Title</h1>
            Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
        </div>
    </div>
</div>

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    如果您知道标题的宽度和高度,您可以在 CSS 中完成:

    假设标题是 400 像素宽和 90 像素高

    #slider {
        position:relative;
    }
    
    .caption {
        position:absolute;
        margin-left:-200px;
        margin-top:-45px;
        top:50%;
        left:50%;
        width:400px;
        height:90px;
    }
    

    这会将它推到中心 50%。然后你用负边距偏移一半宽度和一半高度。这将为您提供中心。

    【讨论】:

    • 这可能有效,只要我可以垂直居中内容而不是 .caption 如果它碰巧运行小于我设置的高度。我尝试使用 table、table-cell 和 vertical-align 来实现这一点,但没有运气。 http://jsfiddle.net/A69Xr/5/.
    • 没关系,我可以使用表格、表格单元格和垂直对齐来修复它,并垂直居中 .caption 中的任何内容,无论它是否填充整个高度集。谢谢!
    【解决方案2】:

    您可以使用 jQuery 做到这一点:

    1) 获取img标签的高度。
    2)将标题类的顶部设置为图像高度的一半。

    var imgHeight = $('img').height();
    $('.caption').css({'top': imgHeight/2});
    

    【讨论】:

    • 谢谢!有什么理由让它稍微偏离中心吗?另外,我意识到它只根据调整大小显示,但我如何让它也显示 onload?再次感谢你的帮助。 http://jsfiddle.net/A69Xr/4/
    猜你喜欢
    • 2018-10-17
    • 2013-03-04
    • 2014-07-08
    • 2014-03-06
    • 2015-09-23
    • 1970-01-01
    • 2014-11-21
    • 2017-12-25
    • 2012-02-27
    相关资源
    最近更新 更多