原作者:Alex Robinson

原文标题:Equal Height Columns

这是一个比较典型的三行二列布局,每列高度(事先并不能确定哪列的高度)的相同,是每个设计师追求的目标,按一般的做法,大多采用背景图填充、加JS脚本的方法使列的高度相同,本文要介绍的是采用容器溢出部分隐藏和列的负底边界和正的内补丁相结合的方法来解决列高度相同的问题。

先看代码:

#wrap{

overflow: hidden;

}

#sideleft, #sideright{

padding-bottom: 32767px;

margin-bottom: -32767px;

}

实现原理:

块元素必须包含在一个容器里。

应用overflow: hidden 到容器里的元素。

应用 padding-bottom(足够大的值)到列的块元素 。

应用margin-bottom(足够大的值)到列的块元素。

padding-bottom将列拉长变的一样高,而负的margin-bottom又使其回到底部开始的位置,同时,溢出部分隐藏掉了。

兼容各浏览器

IE Mac 5

得到高度正确,所以要过滤掉上面的代码。

/*\*/

#sideleft, #sideright{

padding-bottom: 32767px;

margin-bottom: -32767px;

}

/**/

Opera

1. Opera7.0-7.2不能正确清除溢出部分,所以要加:

/* easy clearing */

#wrap:after

{

content: '[DO NOT LEAVE IT IS NOT REAL]';

display: block;

height: 0;

clear: both;

visibility: hidden;

}

#wrap

{

display: inline-block;

}

/*\*/

#wrap

{

display: block;

}

/* end easy clearing */

/*\*/

2. Opera8处理overflow: hidden有个BUG,还得加上以下代码:

/*\*/

#sideleft, #sideright

{

padding-bottom: 32767px !important;

margin-bottom: -32767px !important;

}

@media all and (min-width: 0px) {

#sideleft, #sideright

{

padding-bottom: 0 !important;

margin-bottom: 0 !important;

}

#sideleft:before, #sideright:before

{

content: '[DO NOT LEAVE IT IS NOT REAL]';

display: block;

background: inherit;

padding-top: 32767px !important;

margin-bottom: -32767px !important;

height: 0;

}

}

/**/

3.Opera9的B2在修正8的bug.

测试环境:IE5.01、IE5.5、IE6.0、Firefox1.5、Opera8.5、Netscape 7.2通过。

最终效果:

运行代码框

Equal height(DIV+CSS布局中自适应高度的解决方法)

body{

padding: 0;

margin: 0;

font-size: 12px;

font-family: Arial, Helvetica, sans-serif;

line-height: 140%;

text-align: center;

background:#E7DFD3;

}

#wrap{

width: 750px;

margin: 0 auto;

overflow: hidden;

}

#header{

background: #E8E8E8;

}

#sideleft{

width: 580px;

float: left;

background: #FFF;

text-align: left;

}

#sideright{

width: 170px;

float: left;

background: #F0F0F0;

text-align: left;

}

/* easy clearing */

#wrap:after

{

content: '[DO NOT LEAVE IT IS NOT REAL]';

display: block;

height: 0;

clear: both;

visibility: hidden;

}

#wrap

{

display: inline-block;

}

/*\*/

#wrap

{

display: block;

}

/* end easy clearing */

/*\*/

#sideleft, #sideright

{

padding-bottom: 32767px !important;

margin-bottom: -32767px !important;

}

@media all and (min-width: 0px) {

#sideleft, #sideright

{

padding-bottom: 0 !important;

margin-bottom: 0 !important;

}

#sideleft:before, #sideright:before

{

content: '[DO NOT LEAVE IT IS NOT REAL]';

display: block;

background: inherit;

padding-top: 32767px !important;

margin-bottom: -32767px !important;

height: 0;

}

}

/**/

#footer{

background: #E8E8E8;

width: 100%;

float: left;

}

h1,h2,address,p{

margin: 0;

padding: .8em;

}

h1,h2{font-size: 20px;}

Head

sideleft

要从固定的、基于像素的设计方法转到弹性的、相对的设计方法并不容易。但是如果恰当利用,就可以成为增强亲和力和易用性的一个自然选择,同时又无须做出设计上的牺牲。

像素是计算机屏幕上的不可缩放的点,而一个

h3 就是一个字大小的方块。由于字体大小的变化, h3

代表用户喜欢的文字大小的相对单位。

采用印刷式的固定设计方案或许要容易些,因为如果尺寸不变,则考虑的东西就相对较少。可是如果采用弹性的设计方法,就可以充分利用电脑的显示器和浏览器。

也许你想你的网站以某种特定的方式显示,但是你的用户想看到的可能不一样。任何强加于用户的东西都不利于易用性,从而对网站的成功造成损害。

要从固定的、基于像素的设计方法转到弹性的、相对的设计方法并不容易。但是如果恰当利用,就可以成为增强亲和力和易用性的一个自然选择,同时又无须做出设计上的牺牲。

像素是计算机屏幕上的不可缩放的点,而一个

h3 就是一个字大小的方块。由于字体大小的变化, h3

代表用户喜欢的文字大小的相对单位。

采用印刷式的固定设计方案或许要容易些,因为如果尺寸不变,则考虑的东西就相对较少。可是如果采用弹性的设计方法,就可以充分利用电脑的显示器和浏览器。

也许你想你的网站以某种特定的方式显示,但是你的用户想看到的可能不一样。任何强加于用户的东西都不利于易用性,从而对网站的成功造成损害。

sideright

要从固定的、基于像素的设计方法转到弹性的、相对的设计方法并不容易。但是如果恰当利用,就可以成为增强亲和力和易用性的一个自然选择,同时又无须做出设计上的牺牲。

像素是计算机屏幕上的不可缩放的点,而一个

h3 就是一个字大小的方块。由于字体大小的变化, h3

代表用户喜欢的文字大小的相对单位。

采用印刷式的固定设计方案或许要容易些,因为如果尺寸不变,则考虑的东西就相对较少。可是如果采用弹性的设计方法,就可以充分利用电脑的显示器和浏览器。

也许你想你的网站以某种特定的方式显示,但是你的用户想看到的可能不一样。任何强加于用户的东西都不利于易用性,从而对网站的成功造成损害。

Footer

制作:forestgan

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

出处:蓝色理想

责任编辑:moby

◎进入论坛网页制作、网站综合版块参加讨论

html的高度自适应,CSS布局自适应高度解决方法相关推荐

  1. 转: 自适应css布局—-流动布局新时代(译文)

    流动网页设计有很多好处,但也只有在正确使用的时候.合适的技巧会使页面在大屏幕.小屏幕抑.PDA小屏幕上都能得到良好的呈现.但是,糟糕的代码结构,对于流动布局来说将是灾难性的.因此,我们需要针对大多数流 ...

  2. html流动布局,自适应css布局——流动布局新时代

    流动网页设计有很多好处,但也只有在正确使用的时候.合适的技巧会使页面在大屏幕.小屏幕抑.PDA小屏幕上都能得到良好的呈现.但是,糟糕的代码结构,对于流动布局来说将是灾难性的.因此,我们需要针对大多数流 ...

  3. DIV+CSS布局图片加阴影效果方法

    DIV+CSS布局图片加阴影效果方法 转自:爱微网 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...

  4. CSS盒子塌陷及解决方法

    CSS盒子塌陷及解决方法 1 盒子塌陷的原因 2 如何清除塌陷 1 盒子塌陷的原因 什么是盒子塌陷? 外部的盒子没有包裹住内部的浮动盒子,导致了盒子塌陷. 盒子高度塌陷原因? ①父元素没有设置高度(h ...

  5. android recyclerview 横向item 宽度,RecyclerView的item宽度不能全屏显示及线性布局与grid布局切换混乱解决方法...

    1.RecyclerView的Item宽度不能全屏显示 出现这种的原因有两种: 1.第一种是在adapter中加载inflater时parent传入为null 2.如果第一种不行,第二种原因就是在Re ...

  6. css 左右布局高度自适应,CSS布局-高度自适应

    前面一篇讲述了有关高度自适应的问题,现在来讨论下用CSS2来实现高度自适应的方式. 单个自适应 当且只有个一个div的高度需要自适应时,我们可以使用以下方法,*{padding:0;margin:0; ...

  7. android h5 div高度自适应,css div自适应高度height

    DIVCSS5为大家介绍两种情况下自适应高度样式设置与解决. 第一种:一定高度内容加多时自适应高度,而内容少时DIV有一定最小高度: 第二种:没有最小高度,DIV完全自适应高度. 以下为大家介绍这两种 ...

  8. 高度塌陷的产生原因及解决方法

    什么是高度塌陷? 当父元素未设置高度时,所有子元素浮动后,造成子元素脱离文档流进而无法把父元素撑开,父元素高度为0产生高度塌陷,称为高度塌陷问题. 父元素高度塌陷后,父元素以下的元素都会向上移动,导致 ...

  9. 小程序跳转样式布局错乱_解决导致CSS布局页面错乱的方法

    在做网站建设中,经常会遇到css布局页面错乱,下面是如解决错乱的方法. 1. float元素务必指定width属性 很多浏览器在显示未指定width的float元素时会有bug.所以不管float元素 ...

最新文章

  1. java linkedlist二维,如何在Java中制作二维LinkedList?
  2. .NET Core 跨平台 串口通讯 ,Windows/Linux 串口通讯
  3. 深入浅出单实例Singleton设计模式
  4. 每个线程只对一个数据操作就不会出现线程安全问题-------------成员变量,用来计算累加的和...
  5. HISTFILESIZE与HISTSIZE的区别
  6. 将winform窗体钉在桌面上
  7. 【后空翻机器人代码】斯坦福后空翻机器人设计、代码全开源,成本降至3000美元,人人皆可DIY|湾区人工智能...
  8. 码表的理解(ASCII,GBK,Unicode,UTF-8等)。
  9. Oracle数据库常用的管理工具介绍
  10. PMI是什么参数在LTE中??和RI,CQI怎么作用的??
  11. 从BPMN到XPDL--Visual Paradigm for UML 的流程转换
  12. docker修改服务器ip地址,Docker修改IP地址方法
  13. Codeforces446C - DZY Loves Fibonacci Numbers
  14. 小米笔记本桌面添加计算机,小米笔记本外接两个显示屏的设置与操作方法
  15. 【进阶5-1期】重新认识构造函数、原型和原型链
  16. UE4 RTS 框选功能实现
  17. 蓝牙一段一段_不用担心,它在那里存在了一段时间
  18. 自定义一个倒计时控件
  19. 2024长安大学计算机考研信息汇总
  20. c# .net iot+香橙派orangepi开发板 200多块打造自家远程 浇花助手 系统

热门文章

  1. Feign Client的各种超时时间设置
  2. Spring Cloud Alibaba 之 服务通信 REST消息通信:如何使用 OpenFeign 简化服务间通信
  3. mysql存储过程语法及实例
  4. 银行使用oracle做查询,Oracle EBS ERP银行信息查询视图
  5. oracle11g与weblogic兼容,WebLogic 10.3.6与JDK 1.7的兼容问题
  6. vector can通信源码_CAN总线IMU在自动驾驶安全控制中的应用
  7. matlab生成ai图片,MATLAB绘图:导出矢量图
  8. python随机生成30个8_Python生成六万个随机,唯一的8位数字和数字组成的随机字符串实例...
  9. android 按钮换行_Android LinearLayout实现自动换行
  10. vbs 服务器获取输入信息,取得服务器上用户组列表脚本之VBS版