粘性页脚不是那么粘

Posted

技术标签:

【中文标题】粘性页脚不是那么粘【英文标题】:Sticky footer is not so sticky 【发布时间】:2016-02-20 01:11:13 【问题描述】:

我有一个带有粘性页脚的网站,它不是很粘,我很难弄清楚。

这是html部分:html.tpl.php

<?php
?>
<!DOCTYPE html>
 <head>
  <?php $head; ?>
  <title><?php print $head_title='Vit | Kringvarp Føroya'; ?></title>
  <?php if ($default_mobile_metatags): ?>
  <?php endif; ?>
  <meta http-equiv="cleartype" content="on">

  <?php print $styles; ?>
  <?php print $scripts; ?>
  <?php if ($add_html5_shim and !$add_respond_js): ?>
  <?php elseif ($add_html5_shim and $add_respond_js): ?>
  <?php elseif ($add_respond_js): ?>
  <?php endif; ?>
</head>
  <body class="<?php print $classes; ?>" <?php print $attributes;?>>
    <div class="container">
    <?php if ($skip_link_text && $skip_link_anchor): ?>
     <p id="skip-link">
       <a href="#<?php print $skip_link_anchor; ?>" class="element-invisible  
       element-focusable"><?php print $skip_link_text; ?></a>
     </p>
    <?php endif; ?>
    <?php print $page; ?>
 </div>
  <?php print $page_footer; ?>
 </body>
  <?php print $page_bottom; ?>
 </div>
</html>

还有page.tpl.php部分

<div id="navigation">

   <?php print render($page['navigation']); ?>

</div>


<header class="header" id="header" role="banner">

  <?php $front_page='http://kvf.fo/vit';

     if ($logo): ?>
         <a href="<?php print $front_page; ?>" title="<?php print   
         t('Heim'); ?>"    
         rel="home" class="header__logo" id="logo"><img src="<?php print 
         $logo; ?  
          >"  class="header__logo-image" />     
         </a>
      <?php endif; ?>

<?php if ($site_name || $site_slogan): ?>
<div class="header__name-and-slogan" id="name-and-slogan">
<?php if ($site_name): ?>
 <h1 class="header__site-name" id="site-name">
    <a href="<?php print $front_page; ?>" title="<?php print t('Heim'); 
    ?>" class="header__site-link" rel="home"><span><?php print 
    $site_name; ?></span></a>
 </h1>
<?php endif; ?>

<?php if ($site_slogan): ?>
  <div class="header__site-slogan" id="site-slogan"><?php print 
  $site_slogan; ?></div>
<?php endif; ?>
</div>
<?php endif; ?>


<?php print render($page['header']); ?>

</header>

<div id="main">

<?php print render($page['content']); ?>

</div>

<?php print render($page['footer']); ?>
<?php print render($page['bottom']); ?>

css 部分。

html 
      position: relative;
      min-height: 100%;
     

body 
      height: 100%;
     

.container 
            margin: 0 0 125px;
           

#footer 
         position: absolute;
         left: 0;
         bottom: 0;
         height: 100px;
         width: 100%;
         

页面地址是 www.kvf.fo/vit ,它似乎工作正常,但在 Ipad 上,页脚“下沉”到屏幕底部的一半,这是一个无赖,因为主要用户该网站,是 Ipad 用户:/

非常感谢任何帮助!

【问题讨论】:

【参考方案1】:

看来您要提前关闭 body 标记:

 </div>
  <?php print $page_footer; ?>
 </body>
  <?php print $page_bottom; ?>
 </div>

【讨论】:

虽然语义不正确,但这不会导致固定页脚不合适。【参考方案2】:

如果您希望页脚具有粘性,请在其 css 中添加此属性

footer 
  position: fixed;
 

【讨论】:

这可能还值得注意,这将要求 OP 使用 &lt;footer&gt; html 元素,除非您的意思是 .footer 表示一个类.. 或者在 OP 的情况下.. @987654325 @ 此解决方案有效....但它不会将其保留在页面底部。它保持在屏幕底部:/

以上是关于粘性页脚不是那么粘的主要内容,如果未能解决你的问题,请参考以下文章

HTML:使用引导程序添加粘性页脚响应[重复]

有没有办法在 WPF 中创建一个粘性页脚?

React Native - 容器底部的粘性页脚

如何在我的 WordPress 主题上获得粘性页脚?

如何让粘性页脚工作?

修复粘性页脚而不重叠正文内容