垂直居中的元素,上面有最小的边距/填充?

时间:2012-08-24 06:27:30

标签: html css

我在页面上有一个垂直居中的幻灯片,但是我想以某种方式添加一个“限制”,以便说明它在较小的屏幕上向上滑动的高度。

http://www.visioncreativegroup.com.au/demos/bps/index.php/production/theatre

如果您调整窗口大小,它将到达幻灯片位于导航栏顶部和主徽标上方的位置。基本上,一旦屏幕尺寸达到足够小的尺寸,它就需要停在这些元素的底部。

这可能吗?

3 个答案:

答案 0 :(得分:0)

position: absolute;

中删除.production-scroll

如果没有必要,请从position: fixed;删除#sticky-footer

答案 1 :(得分:0)

我会将网站的幻灯片部分和标题部分分开。所以你有3个水平切片:标题,幻灯片,页脚。然后,您可以将幻灯片放在中间段中心,它永远不会越过标题。

答案 2 :(得分:0)

试试这个我为你设置的小型演示,看看你是否可以将项目中的HTML切换为类似的东西:

HTML:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>Demo</title>

            <!-- Insert below CSS here -->
            <!-- Insert JQuery here (http://code.jquery.com/jquery-latest.min.js) -->
            <!-- Insert below JS here -->
    </head>

    <body>
        <div id="shell">
            <div id="head">Header.</div>
            <div id="slideshow">Slideshow.</div>
            <div id="foot">Footer.</div>
        </div>
    </body>
</html>

CSS:(主要用于演示):

*{ margin: 0; padding: 0; }
div#head{ height: 200px; background: blue; }
div#foot{ height: 100px; background: red; }
div#slideshow{ height: 300px; background: green; }

JavaScript:

// Fix position initially and on each window resize.
$(window).resize(fix);
$(document).ready(fix);

function fix()
{
    // Work out position value.
    var base = $("div#slideshow").position().top;
    var middle = $(window).height() / 2;
    var hw = $("div#slideshow").height() / 2;

    // Position top either at the position determined above, or 0 if it bypasses the top of the page.
    var destination = Math.max(middle - base - hw, 0);
    $("div#shell").offset({ top: destination });
}

You can grab the full working example here