如何使块状元素中的元素等高

昨天在群里看到这样的标签组合

<li>
  <span class="s1">fffffffffffffffff</span>
  <span >fffffffffffffffffffffffffffffff</span>
</li>
.s1{
    width:50px;
    background:red;
    display:inline-block;
}
.s2{
    width:60px;
    background:green;
    word-break:break-all;
    display:inline-block;
}
1.png

现在我的目的是用将li的空间分给span,同时span的高度相同

当然span是行内元素无法设定宽和高,所以前提是要改成block元素,
而li的高度是随着内容进行自适应的,所以只要内容的高度相同,则可满足

方法一

我第一种想法是 如果给定了span的高度,我们只要满足2个span的height的值为较高那个span的height值既可满足所需,同时现在他们的基准线为底部,我需要把基准线定义在top,这样他们高度延伸后才是我想要的东西。

.s1{
    width:50px;
    background:red;
    display:inline-block;
    height:200px;
    vertical-align:top
}
.s2{
    width:60px;
    background:green;
    word-break:break-all;
    display:inline-block;
    height:200px;
    vertical-align:top
}
2.png

这种方法是给固定高度来实现等高,这种方法的缺陷是一旦内容超出范围,只能用overflow隐藏,元素的高度不会再变化


3.png

方法二

在table中的td的高度可以实现同行相等,宽度自适应,正好满足我们的需求,能不能使元素以单元格的样式去呈现呢
这里用到一个display:table-cell
display:table-cell属性指让标签元素以表格单元格的形式呈现,类似于td标签。目前IE8+以及其他现代浏览器都是支持此属性的,但是IE6/7只能对你说sorry了,这一事实也是大大制约了display:table-cell属性在实际项目中的应用.

.s1{
  width:50px;
   background:red;
   display:table-cell;  
}
.s2{
  width:60px;
  background:green;
  word-break:break-all;
  display:table-cell;
}

这时候我们不需要给定高度,即可实现元素等高


4.png

当我们不给宽度时候也可以实现宽度自适应同时满足等高,同时达到换行的效果我需要给li一个固定的宽度,不然内容都在一样看不出效果

.s1{
  background:red;
  display:table-cell;
}
.s2{
  background:green;
  word-break:break-all;
  display:table-cell;
}
li{
  width:150px;
}
5.png

所以table-cell在满足等高的时候还可以满足宽度自适应

以上都是自己所想所写,如果想看关于table-cell的更详细的介绍http://www.cnblogs.com/StormSpirit/archive/2012/10/24/2736453.html

本文版权属陈慧敏(饥人谷)所有,转载须注明出处

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 收听音频,戳链接,旧号itclan已暂停使用,欢迎关注微信itclanCoder公众号可收听更多音频 前言 关于网...
    itclanCoder阅读 12,533评论 3 30
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,687评论 1 92
  • 本文主要是起笔记的作用,内容来自慕课网. 认识CSS样式 CSS全称为“层叠样式表 (Cascading Styl...
    0o冻僵的企鹅o0阅读 7,508评论 0 30
  • 一 外部式css样式 (也可称为外联式)就是把css代码写一个单独的外部文件中,这个css样式文件以“.css...
    KunMitnic阅读 4,589评论 0 1
  • 一:在制作一个Web应用或Web站点的过程中,你是如何考虑他的UI、安全性、高性能、SEO、可维护性以及技术因素的...
    Arno_z阅读 5,016评论 0 1