最小高度为满屏的界面布局

在前端界面布局中经常遇到一种场景:就是界面有header和footer的情况,当采用流体布局的时候经常会因为中间的内容部分的内容不足导致界面的footer浮在界面文档的底部,但是却在窗口的中部的情况,体验非常差,问题的解决经历了以下过程。

a、采用了fixed来固定footer在窗口底部,但是会产生文档内容过长导致的footer不能跟着文档底部流动,而且产生遮挡的现象,同时对于ie6的兼容不好。

b、使用文档流布局和绝对布局结合,通过js来实现,通过进行窗口的高度和文档的高度对比,确定底部footer的布局方式为流体布局还是绝对布局,但是产生的问题是当界面存在数据异步加载和刷新的时候要每一次调用一下该js固定底部的方法,以此来防止内容过少到内容过多或者逆向的转变导致的footer位置的不友好,办法复杂,调用麻烦。


1

2

3

4

5

6

7

function footerFix() {

    if ($(window).height() > $("body").height()) {

        $(".grp_footer").addClass("footerfix"); //固定底部

    } else {

        $(".grp_footer").removeClass("footerfix");

    }

}

同时以上办法中还存在一个问题,就是无法获取内容部分左侧菜单的满屏高度,因为得到的还是内容部分左侧菜单的高度,不方便对改部分进行满屏显示。

基于以上使用的场景,现采用绝对布局和min-height进行问题解决,代码如下,至于ie6,如果有需求,使用js自己控制。


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

<!DOCTYPE html>

<html>

<head>

  <meta charset="utf-8">

  <title>高度最小满屏布局</title>

</head>

<body>

<div class="main">

  <div class="header"></div>

  <div class="container">

    <div class="left">

      <div class="aside"></div>

    </div>

    <div class="right">

      审查元素在改该元素处修改最小高度为大于屏幕高度的值可以使得底部footer跟着到达文档的最底部,最终实现效果:界面当内容少的时候高度可以满屏高,footer置于界面的底部;内容高度大于屏幕的高度的时候文档自动加高,footer置于文档的底部。

    </div>

  </div>

  <div class="footer"></div>

</div>

</body>

</html>


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

body{

  overflow-x:hidden;

}

.main{

  background:red;

  position:absolute;

  width:100%;

  min-height:100%;

  top:0;

}

.header{

  height:60px;

  background-color:yellow;

}

.container{

  

}

.left{

  width:20%;

  background-color:blue;

  float:left;

  height:1px;

}

.aside{

  position:absolute;

  bottom:60px;

  top:60px;

  width:20%;

  background-color:orange;

}

.right{

  overflow:hidden;

  min-height:200px;

  background-color:#ccc;

}

.footer{

  position:absolute;

  width:100%;

  height:60px;

  bottom:0;

  background-color:green;

}

,在线演示:http://output.jsbin.com/wonajewowi

说明:

1、在主面板采用绝对布局并甚至最小高度为满屏

2、footer为绝对定位到底部的距离为0

3、aside部分采用绝对布局,并设置相应的距离;可以设置right部分中的min-height进行内容超长的模拟。

如此便可以根据文档内容的高度进行footer的自动贴底并最小置于窗口底部。

设计思路并不复杂,只是思路在初期混淆,所以‘进化’漫长,该为项目总结,不对之处请包涵并指出。

来自为知笔记(Wiz)

时间: 2024-10-09 05:15:35

最小高度为满屏的界面布局的相关文章

Web前端面试指导(十七):一个满屏 品 字布局 如何设计?

题目点评 这道题目有可能是笔试题,有可能面谈的时候进行叙述,如果是笔试题要求对css样式代码非常熟练,如果是面谈叙述,就需要你的表达能力非常强,要抓住要点,把需要用到的技能点讲清楚就可以了. 需要用到技术 1.     元素水平居中对齐 1)        使用margin对齐(推荐) 2)        使用left:50% 3)        使用text-align 2.  元素对相对窗口定位 1)        使用filxed(推荐) 2)        使用absolute定位 3)

满屏品字布局css

<!doctype> <html> <head> <title>test</title> </head> <style> *{ margin:0; padding: 0; } .main{ width:100%; height: 60%; } .main .left, .main .right{ width:50%; height: 100%; float:left; background: #a23; } .main .

一个满屏 品 字布局 如何设计?

需要用到的技术 1.     元素水平居中对齐 1)        使用margin对齐(推荐) 2)        使用left:50% 3)        使用text-align 2.  元素对相对窗口定位 1)        使用filxed(推荐) 2)        使用absolute定位 3)        使用html和body的width和height填?这个窗口 3.     元素左右定位 1)        使用float左右浮动 2)        使用绝对定位进行左右

大屏时代的生态变迁,看平板手机的拇指热键与界面布局

引言:曾几何时,无数大大小小的触屏设备仿佛泄闸的洪水一般涌入这个世界.面对突如其来的生态变迁,界面设计师们别无选择,只有在急流当中奋力学习游泳,才能让自己不至于被洪潮所吞没.本文带你了解如何面向平板手机的拇指热键与界面布局,为这种转变提供助力. 本文选自<触类旁通:多终端时代的触屏界面设计>. 人们怎样使用平板手机 iPhone出现之后的几年,手机屏幕的尺寸基本都保持在4英寸以下(以对角线计算),非常便于单手操作.然而,随着大屏手机不断涌入市场,到2014年年中,已经有将近三分之一的移动Web

俩列布局(左边固定,右边自适应),等高布局,最小高度

俩列布局(左边固定,右边自适应): 1. <!DOCTYPE html> <html> <head> <title>俩列布局</title> <meta charset="utf-8"> <style type="text/css"> *{         margin: 0;         padding: 0;     } #left {         float: left

如何利用CSS3编写一个满屏的布局

如何利用CSS3编写一个满屏的布局 css3的出现能帮助我们更加轻松的实现各种想要的效果,例如写一个刚好满屏的布局,我们就可以利用CSS3的弹性盒模型来实现. 先来贴出html布局代码: 1 <%- include header %> 2 <div class="wrapper"> 3 <div id="appswall"> 4 <div class="adsapp-title"><butto

任意列+左右两列等高布局,并要求有最小高度

高度相等列在Web页面设计中永远是一个网页设计师的需求.如果所有列都有相同的背景色,高度相等还是不相等都无关紧要,因为你只要在这些列的父元素中设置一个背景色就可以了.但是,如果一个或多个列需要单独设置自己的背景色,那么它的视觉完整性的设计就显得非常重要了.大家都知道当初Table实现等高列布局是多么的简单,但是我们使用CSS来创建等高列布局并非是那么容易的事情. 如果一个设计是固定宽度(非流体的宽度设计),那么实现多列等高效果是相当的容易.最好的技术就是使用Dan Cederholm的Faux

【IOS界面布局】横竖屏切换和控件自适应(推荐)

[IOS界面布局]横竖屏切换和控件自适应(推荐) 分类: [MAC/IOS下开发]2013-11-06 15:14 8798人阅读 评论(0) 收藏 举报 横竖屏切换 自适应 第一种:通过人为的办法改变view.transform的属性. 具体办法: view.transform一般是View的旋转,拉伸移动等属性,类似view.layer.transform,区别在于 View.transform是二维的,也就是使用仿射的办法通常就是带有前缀CGAffineTransform的类(可以到API

iOS界面布局的核心以及TangramKit介绍

前言 TangramKit是iOS系统下用Swift编写的第三方界面布局框架.他集成了iOS的AutoLayout和SizeClass以及Android的五大容器布局体系以及HTML/CSS中的float和flex-box的布局功能和思想,目的是为iOS开发人员提供一套功能强大.多屏幕灵活适配.简单易用的UI布局解决方案.Tangram的中文即七巧板的意思,取名的寓意表明这个布局库可以非常灵巧和简单的解决各种复杂界面布局问题.他的同胞框架:MyLayout是一套用objective-C实现的界面