粘性页脚问题 - CSS

时间:2014-06-06 13:57:01

标签: html css footer sticky

因此,我完全了解有关“粘性页脚”的问题,并在此处引用了许多不同的问题以及有关粘性页脚的网站。我已经创建了一个新的模板,远离这个项目工作,并有一些粘性页脚操作的例子,无论是在包装内还是外... 但是,我似乎无法在我的解决方案中正确运行。

目前页脚似乎是“粘性的”,但是在我的一个主页上,内容(图像和文本)似乎与页脚重叠,因为页脚没有被正确地推到底部。它似乎位于屏幕下方(意味着您必须稍微滚动以查看页脚) - 但在此页面上它位于该位置,不会被推下,然后内容重叠。

我已经尝试过一切,在HTML,BODY,WRAPPER,contentDiv上删除100%,但基本上,有一件事是有效的,这打破了另一件事。  接下来是什么,ContentDiv = 100%(按下页脚)。所以我应该能够创建一个空白页面,页脚粘在底部,如果内容增加,它会把它推下来......简单吧?但用这个撕掉我的头发:/ 所以,任何帮助都会受到大力赞赏,因为我有一个很短的截止日期来进行排序。

enter image description here

Fiddle Demo

CSS

    html
    { margin: 0px; padding: 0px; height:100%; }
    body 
    { margin: 0px; padding: 0px; height: 100%; font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size: 12px; }
    /* { margin: 0px; padding: 0px; height: 100%; font-family: 'Montserrat', sans-serif; font-size: 12px; } */

    p { font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size: 12px; }
    h1 { font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size:24px; }
    h2 { margin:0px; padding:0px; font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; }

    /* PAGE FORMATTING - START*/
    span:hover { /* text-decoration: underline; */ }
    a:link, a:visted { }
    ahover, a:active { }
    .link_nav_header{
        padding:0px;
        font-size:20px;
        font-weight:bold;
        color:#333333;
        cursor:pointer;
    }
    .but_default
    {
        padding: 2px; 
        border: 1px solid #009900;
        background-color: #33FF00;
        /* background-color: #dddbdb; */ /* TWO COLOURS? */
    }
    .but_events-buybutton
    {
        padding:3px; 
        min-width:90%;
        margin-bottom:5px;
        color:#ffffff;
        background-color:#378ec8; 
    }
    .but_all
    {
        min-width:90%;
        cursor: pointer;
        margin: 2px;
    }

    /* HEADER - START */
    .hdr_container
    {
       width:100%;
       height:110px;
       padding:0px;
       margin:0px;
       position:relative;
       background-color:#0099ff;
       color: #ffffff;
       overflow: hidden;
    }
    #hdr_profile-icon {
        margin-top: 1%;
        margin-right: 1%;
        float: right;
        background-color: inherit;

    }

    /* NEW NAVIGATION */
    #nav {
        width: 100%;
        padding: 0;
        margin: 0 auto;
        background-color: #333333;
        position: absolute;
        bottom: 0%;
    }
    #nav ul {
        list-style: none;
        /* width: 800px;*/ /* REMOVE TO STRETCH NAV TO FULL WIDTH */
        width: 100%;
        margin: 0 auto;
        padding: 0;
    }
    #nav li {
        float: left; 
        text-align: center;
    }
    #nav ul li{
        width: 11%; /* STRETCHES NAV TO FULL WIDTH */
    }
    #nav li a {
        padding: 8px 15px;
        display: block;
        text-decoration: none;
        font-weight: bold;
        color: white;
        text-transform:uppercase
    }
    #nav li:first-child a {
        background: red;
        width: 10px;
        font-weight: normal;
        }
    #nav li a:hover {
        /* color: #c00; */
        background-color: #0099ff; 
    }
    #nav a:hover a:focus {
        /* color: #c00; */
        background-color: red; 
    }

    /* MAIN CONTENT - START */
    #wrapper {
        clear: both;
        /* margin: 0 auto; */
        width: 100%;
        height:100%;
        min-height: 100%;
        /* margin-bottom: -75px; */
        z-index:10;
    }
    .contentDiv
    {
        clear: both;
        width:65%;
        min-width: 800px;
        height:90%;
        background-color:#ffffff;
        margin-left:auto;
        margin-right:auto;
        /* z-index: -9999; */
    }

    /* TABLE - START */
    .tbl_container-centered
    {
        width:100%; 
        height:100%;
        min-height:100%; 
        /* padding-bottom: 20px; */
        margin-left:auto;
        margin-right:auto;
        display:table;
        overflow:auto; 
        /* margin-bottom: 75px; */
        display: inline-table;
        vertical-align: middle;
    }
    .tbl_containerpaneltext-centered
    {
        width:95%; 
        min-height:35%; 
        margin-left:auto;
        margin-right:auto;
        background-color:red;
    }
    .tbl_head-genericthread
    {
        min-height:3%;
        max-height:3%;
        text-align:center; 
        color:#ffffff;
        background-color:#0099ff;
    }
    .tbl_events-head {
        width: 100%;
        height: 100%;
        min-height: 100%;
        border: 1px solid;
        text-align: left;
        border-collapse: collapse;
    }
    .tbl_grid-events
    {
        background-color: #ffffff; 
    }
    .tbl_pickseats-famtable
    {
        width:100%;
        background-color:#e1e1e1;
    }
    table#tbl_events{
        height:100%;
        min-height:100%;
        border-collapse: collapse;
        border-right: 1px solid #333333;
        border-left: 1px solid #333333;
    }
    .link_moreinfo{
        padding:0px;
        font-size:14px;
        font-weight:bold;
        color:#0099ff;
        cursor:pointer;
    }
    #event_row {
        height: 140px;
        font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;
    }
    #basket2 {
        background: red;
    }

 /* FOOTER CSS - START */
    .footer_container
    {
        clear: both;
        width:100%;
        height:75px;
        bottom:0;
        background-color:#0099ff;
        /* position:absolute; */
    }
    .footer_container, .wrapper:after {
        /* .push must be the same height as footer */
        height: 75px;
    }
    .wrapper:after {
        content: "";
        display: block;
    }
    .footer_global-bottom {
        width: 100%;
        margin: auto;
        padding-top: 20px;
        text-align: center;
        color: white;
        background: #333333;
    }
    .footer_global-bottom a {
        color: white;
        text-decoration: none;
    }

    /* ERROR HANDELING */
    .error {
        background: #ef7474;
        border: 1px solid #f5aca6;
        text-align: center;
    }
    .success
    {
        background: #74e963;
        border: 1px solid #59e836;
        text-align: center;
    }
    .alerts_box {
        padding: 10px;
        width: 250px;
        position: absolute;
        visibility: hidden; 
        font-size: 10px;
        color:black;
    }
    .alerts {
        width: 275px;
        z-index: 2;
        padding-bottom: 40px;
    }

3 个答案:

答案 0 :(得分:0)

您是否考虑过使用这段代码:

.footer_container {
   position: fixed;
   bottom: 0;
   z-index: 100;
 }

如果您希望可以看到完整内容,可以添加以下内容:

margin-bottom: (footer-height)px;

或者使用padding-bottom而不是margin-bottom。

答案 1 :(得分:0)

#wrapper规则集更改height:100%height:auto并删除min-height:100%

jsFiddle

#wrapper {
    clear: both;
    width: 100%;
    height:auto;
    z-index:10;
}

我认为将高度设置为100%是将其设置为浏览器窗口的100%,而不是100%的内容。我可能错了。

这会将页脚放在内容的末尾。在内容小于窗口高度的页面上,您可以包装页脚并为页脚包装器提供如下类:

.minContentFooter {
    position: absolute;
    bottom: 0;
}

如果案例是内容是动态加载的,而你不知道它是否会填满浏览器窗口,那么你需要一些javascript才能同时拥有它 - 无论是在内容的底部还是当内容很少时窗口的底部。

答案 2 :(得分:0)

问题解决了,不是通过CSS解决,而是通过Javascript解决。 问题是由于页面加载了表中的动态内容,它从来不知道contentDiv有多大,所以不知道除了页脚之外的哪个位置。

粘性页脚是通过设置CSS%高度来实现的,并且还使用javascript来帮助校正没有内容的页面或具有动态加载内容的页面。 下面的代码解释了有效的javascript:

            var totalHeight = $('#header').height() + $(id).height();
            var contentDivHeight = $('#content').height();
            var wrap = $('#wrapper');
            if (totalHeight >= contentDivHeight) {
                wrap.removeClass('wrapper-height');
                wrap.addClass('wrapper-minHeight');
            } else {
                wrap.addClass('wrapper-height');
                wrap.removeClass('wrapper-minHeight');
            }

代码检查标题的高度和内容中包含的内容,如果它在页脚上方切换到强制最小高度而不是高度的css类,以允许页脚流到内容的末尾。 / p>

  • 非常感谢大家的帮助。