(轉)Equal height boxes with CSS

时间:2021-11-17 09:03:41

原文:http://www.456bereastreet.com/archive/200405/equal_height_boxes_with_css/

下面是我翻译的内容,是根据我对文章的理解意译的,你就别挑哪里翻译的不对了,我的目的只是传达这个CSS技巧

许多网页设计师都喜欢,将两个或者多个容器等高的并排放置,并在里面展示每个容器的内容,就象经典表格布局中的单元格控制几个栏目的位置,也喜欢容器的内容居中或顶部对齐显示。
但是你又不喜欢用table来实现他,那怎么办呢?实现的方法很多,有根据视觉错觉实现的,有用JS控制使高度相等的,还有采用容器溢出部分隐藏和列的负底边界和正的内补丁相结合的方法来解决列高度相同的问题。
其实有个简单的方法,使用display:table, display:table-row and display:table-cell 就可以实现,而且高度小的容器会自适应那些高度相对较高的,但是IE不支持这个属性,我们先不用去责备IE,相信以后会有所改善的。这里我制作了一个模型。

先看看xhtml的结构:

<div class="equal">
    <div class="row">
        <div class="one"></div>
        <div class="two"></div>
        <div class="three"></div>
    </div>
</div>

很简单不用解释就能看懂,但是这里给出一个table的结构,是不是很相似

<table>
 <tr>
  <td></td>
  <td></td>
  <td></td>
 </tr>
</table>

下来是css:

.equal {
  display:table;
  border-collapse:separate;
 }
 .row {
  display:table-row;
 }
 .row div {
  display:table-cell;
 }
 .row .one {
  width:200px;
 }
 .row .two {
  width:200px;
 }
 .row .three {
  
 }

解释:

1.dispaly:table;让层.equal作为块级元素的表格table显示,也就是将他作为一个表格
2.border-collapse:separate;边框独立,就像表格没有合并单元格以前
3.display:table-row;将.row作为表格行tr显示
4.display:table-cell;将.row的下级div作为表格单元格td显示
5.然后定义宽度

这里还使用了 border-spacing:10px;来区别几个盒子,正如上面所陈述的,IE下不能正常显示,但是在:Mozilla 1.6, Opera 7.50, Safari 1.2.2, Firefox 0.8, OmniWeb 5b, Camino 0.8b, and Netscape 7.1经过测试均可以完美显示.

(轉)Equal height boxes with CSS的更多相关文章

  1. obj&period;offsetHeight与obj&period;style&period;height &dollar;&lpar;obj&rpar;&period;height&lpar;&rpar;与&dollar;&lpar;obj&rpar;&period;css&lpar;&&num;39&semi;height&&num;39&semi;&rpar;

    相同:都可以获取obj的高度区别:(1)obj.offsetHeight可以获取外部.内嵌和内联中定义的高,而obj.style.height只能获取内联中定义的高:(2)obj.offsetHeig ...

  2. JS通过getBoundingClientRect获取的height可能与css设置的height不一致

    发现如果DOM元素有padding-top或者padding-bottom值时, $(dom).height() = dom.style.display + padding-top + padding ...

  3. equal height

    https://css-tricks.com/the-perfect-fluid-width-layout/ http://nicolasgallagher.com/multiple-backgrou ...

  4. CSS 笔记一(Selectors&sol; Backgrounds&sol; Borders&sol; Margins&sol; Padding&sol; Height and Width)

    Selectors/ Backgrounds/ Borders/ Margins/ Padding/ Height and Width CSS Introduction: CSS stands for ...

  5. &lbrack;转载&rsqb;css菜鸟之HTML 中块级元素设置 height&colon;100&percnt; 的实现

    HTML 中块级元素设置 height:100% 的实现 当你设置一个页面元素的高度(height)为100%时,期望这样元素能撑满整个浏览器窗口的高度,但大多数情况下,这样的做法没有任何效果. 为什 ...

  6. css菜鸟之HTML 中块级元素设置 height&colon;100&percnt; 的实现

    HTML 中块级元素设置 height:100% 的实现 当你设置一个页面元素的高度(height)为100%时,期望这样元素能撑满整个浏览器窗口的高度,但大多数情况下,这样的做法没有任何效果. 为什 ...

  7. CSS 如何让 height&colon;100&percnt;&semi; 起作用

    当你设置一个页面元素的高度(height)为100%时,期望这样元素能撑满整个浏览器窗口的高度,但大多数情况下,这样的做法没有任何效果.你知道为什么height:100%不起作用吗? 按常理,当我们用 ...

  8. CSS:Tutorial one

    1.Three Ways to Insert CSS External style sheet Internal style sheet Inline style External Style She ...

  9. height与line-height的深入理解及应用

    转载:原文地址:http://www.zhangxinxu.com/wordpress/?p=384 一.前言 前两天在腾讯ISD团队博客上看到一篇翻译的文章"深入理解css 行高&quot ...

随机推荐

  1. 实现下来ScrollView放大轮播图

    创建工程,创建一个UIScrollView属性,并遵循其协议: #define kWidth self.view.frame.size.width//屏幕宽 #define kHeight self. ...

  2. 类js效果

    类似js效果,点击看看  代码 onclick="return confirm('您确定要看看吗?')" 放入a标签里面

  3. 学习OpenStack之 &lpar;3&rpar;:Devstack Screen 使用技巧

    Devstack环境中,openstack运行在一个screen中,每个service运行在一个window中.我总结的几个tips: 0. 注意需要使用screen启动用户来进行一下操作 1. 查看 ...

  4. Pascal's Triangle II

    1.题目描述 Given an index k, return the kth row of the Pascal's triangle.   For example, given k = 3, Re ...

  5. SpringMVC&lpar;二&rpar;——流程控制

    SpringMVC主要就是用来做流程控制的,这篇博客总结一下如何在流程控制添加Interceptor(拦截器),如何将进行流程Mapping映射解析,如何编写Controller(控制器). 一,首先 ...

  6. Telnet服务器和域名系统的端口号 Mac OS X

    找到Telnet服务器和域名系统的端口号: lapommedeMacBook-Pro:~ lapomme$ grep telnet /etc/services telnet /udp # Telnet ...

  7. JMeter登录总是提示用户名不能为空的解决

    已传入参数了呀,还是提示用户名不能为空 解决: 将url拼接上参数 --

  8. linux系统管理命令(五)

    [教程主题]:1.系统管理命令 [1.1]用户和组管理 在Linux操作系统中,任何文件都归属于某一特定的用户,而任何用户都隶属于至少一个用户组.用户是否有权限对某文件进行访问.读写以及执行,受到系统 ...

  9. 洛谷P4424 寻宝游戏 &lbrack;HNOI&sol;AHOI2018&rsqb;

    正解:思维题 解题报告: 传送门! 这题就是很思维题,,,想到辣实现麻油特别难,但难想到是真的TT 这题主要是要发现一个性质:&1无意义,&0相当于赋值为0,|1无意义,|1相当于赋值 ...

  10. hibernate注解(二)mappedBy

    1.双向关系中使用mappedBy避免生成中间表 (1).只有OneToOne,OneToMany,ManyToMany上才有mappedBy属性,ManyToOne不存在该属性: (2).mappe ...