【发布时间】:2014-06-16 17:52:38
【问题描述】:
如果要在支持 CSS2.1 和大多数 CSS3 的移动设备上放置页脚(例如,如果它是 iPhone 4 或 iPhone 5S 上的 Chrome 或 Safari),那么该页脚是否可以放置在页面,并且不粘,不使用任何 JavaScript?
重要的一点是,我们不希望有很大的空间区域,并要求用户向下滑动才能看到页脚,因为用户可以声称他们从来不知道有页脚由于页面底部显示的空间,它似乎已经是页面的结尾(因此他们从未看到法律问题的免责声明等)。
例如,如果我们为 iPhone 4 设置样式:
如果你想在 jsfiddle 中使用它:http://jsfiddle.net/Ne679/1
一切看起来都不错,页脚上方的区域使用 CSS min-height 或 400px。
但是,此页面在 iPhone 5S 上的显示为:
所以页面底部附近有额外的空间。我们可以肯定地使用 CSS position: fixed; bottom: 0 将它放在 iPhone 4S 和 iPhone 5 的页面底部,但是如果主要内容实际上超出了页脚底部,这不是期望的行为。
所以不使用 JavaScript,
是否有已知的设计模式可以使这项工作发挥作用? (在响应式网页设计中)
是否真的可以通过使用媒体查询,根据高度设置相应的样式?但是我们不是必须为每个 iPhone 4、iPhone 5S 设置一个样式,如果屏幕高度不同,比如
720px或其他什么,那么我们必须再次使用媒体查询来设置样式可能的屏幕的每个高度?这可能很麻烦。即使上面的(2)可以工作,如果页面可以动态增长高度,或者如果某些数据来自数据库,我们永远不知道页面的顶部是否会变短或可以这么长以至于超出了屏幕底部,这种情况下我们自然想在内容结束后贴上页脚,那我们怎么能只使用CSS而不使用JavaScript呢?
当我们为上面的 iPhone 4 设计样式时会出现复杂情况,因为如果某些智能手机具有不同的高度,或者即使 iPhone 4 处于横向模式,那么高度不会那么高 - 然后我们展示顶部和页脚不可见,用户可以声称他们从未见过页脚。
如果使用JavaScript,那我觉得解决方法可以很简单:就是不要使用min-height,而是让页脚在主要内容之后自然显示在页面上,并使用JavaScript说,如果底部Y坐标页脚的坐标没有到达视口的底部Y 坐标,然后只需移动页脚,使页脚的Y 坐标与视口相同。否则,就让页脚出现在主要内容之后。但我希望能找到一个没有 JavaScript 的纯 CSS 解决方案。
【问题讨论】:
-
确定添加到jsfiddle.net/Ne679/1
标签: html css responsive-design mobile-website mobilewebforms