CSS经典布局之高度布局

高度布局实现效果

【解决需求】
解决高度布局中部分高度固定,部分高度自适应的问题

解决需求

【实际情况中的应用】
网站顶部导航栏(以及底部栏)固定高度,中间内容主要区域根据屏幕大小自适应

【解决方案】
利用绝对定位中设置位置后内容自适应大小确定中间高度自适应。
1.顶部导航栏和底部栏设置高度固定,并利用绝对定位设置底部栏位置靠底;
2.设置中间部分为绝对定位,距离顶部和底部分别为顶部栏和底部栏的高度,剩下的部分的高度即为浏览区高度减去上下栏高度的差,设置宽度为100%或距离左右分别为0,则除去顶部和底部栏的区域被中间部分铺满;

【代码示例】
html代码:

<body>
    <div class="header"></div>
    <div class="contain">
        shawnJ高度自适应示例
    </div>
    <div class="foot"></div>
</body>

css代码:

*{
    padding: 0;
    margin: 0;
}
.header{
    width: 100%;
    height: 40px;
    background: #DC3E3E
}
.foot{
    width: 100%;
    height: 40px;
    background: #222222;
    position: absolute;
    bottom: 0;
}
.contain{
    position: absolute;
    top:40px;
    bottom: 40px;
    left:0;
    right:0;
    background: #333;
    color: #fff;
}

【效果截图】


效果预览

【兼容性检测(此处只考虑chrome和IE)】
ie7+和chrome均能正常使用;
ie6中部自适应高度失效;

【css3中的新探索】
css3中引入了calc()属性,这个看似函数的css3属性能计算四则运算,可以利用其计算百分比和固定值的差值,以此来达到本文部分高度自适应的效果,即height: calc(100% - 80px);
代码如下所示:
html:

<body>
    <div class="header"></div>
    <div class="main">
        ShawnJ的示例2
    </div>
    <div class="foot"></div>
</body>

CSS代码如下所示:

*{
    padding: 0;
    margin: 0;
}
.header{
    width: 100%;
    height: 40px;
    background: #DC3E3E;
}
.foot{
    width: 100%;
    height: 40px;
    background: #222;
    position: absolute;
    bottom: 0;
}
.main{
    position: absolute;
    width: 100%;
    height: calc(100% - 80px);
    background: #333;
    color:#fff;
}

兼容性:IE9+,chrome19+
效果与之前相同。

【个人思考】
目前为止为CSS常用的自适应高度布局,可灵活应用于多种场景。接下来是我个人对css布局中自适应布局的一些新的尝试,如有什么不对请大家多多指教。

解决方案探索:
利用box-sizing:border-box使得padding不影响定义的宽高;
1.给中间主体部分添加一个外层,并绝对定位覆盖整个页面,设置其上下内边距分别为顶栏和底栏的高度
2.设置中间主体部分高度为100%,则中间高度为浏览器高度减去上下边栏的高度。

兼容性检测:适用于IE6+

代码如下:

<body>
    <div class="header"></div>
    <div class="wrap">
        <div class="main">
            ShawnJ的示例3
        </div>
    </div>
    <div class="foot"></div>
</body>
*{
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}
.header{
    width: 100%;
    height: 40px;
    background: #DC3E3E;
}
.wrap{
    position: absolute;
    top: 0;
    width: 100%;
    height: 100%;
    padding: 40px 0;
}
.main{
    width: 100%;
    height: 100%;
    background: #333;
}
.foot{
    width: 100%;
    height: 40px;
    background: #222;
    position: absolute;
    bottom: 0;
}

以上为个人总结的高度布局方式,第一次写简书,当作是自己学习前端路上的一些笔记吧。有什么不对的地方希望大家多多指正,如果有更好的方案欢迎大家指出。
希望能在评论里学到更多东西~~~
(•̀ᴗ•́)و (•̀ᴗ•́)و (•̀ᴗ•́)و

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,393评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,790评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,391评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,703评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,613评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,003评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,507评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,158评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,300评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,256评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,274评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,984评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,569评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,662评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,899评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,268评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,840评论 2 339

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,721评论 1 92
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,259评论 25 707
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 11,977评论 4 60
  • 鞋油亮黑般夜空, 眨着几只眼睛。 亮亮的眼睛中隐含着抹抹照光 它在为谁“闪着亮光”? 黑色沉闷的天空下, 亮亮的眼...
    野却迷人阅读 202评论 0 1
  • 睡不着,忽然想起了一个网友在对我的评价中用到了“浪漫”这个词,觉得有点想笑,不知从何会给他这种感觉,自我感觉...
    悠悠6547阅读 220评论 0 0