如果要在支持 CSS2.1 和大多数 CSS3 的移动设备上放置页脚(例如,如果它是 iPhone 4 或 iPhone 5S 上的 Chrome 或 Safari),那么该页脚是否可以放置在页面底部,并且不粘,不使用任何 JavaScript?
一个重要的注意事项是,我们不希望有很大的空间区域,并要求用户向下滑动才能看到页脚,因为用户可以声称他们从不知道有页脚,因为空间显示在页面的底部,它似乎已经是页面的结尾(因此他们从未看到法律问题的免责声明等)。
例如,如果我们为 iPhone 4 设计它:
如果你想在 jsfiddle 中使用它:http: //jsfiddle.net/Ne679/1
一切看起来都不错,页脚上方的区域使用min-height
了400px
.
但是,此页面在 iPhone 5S 上将显示为:
所以在页面底部附近有额外的空间。我们当然可以使用 CSSposition: 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 解决方案。