疑惑是最好的老师(一)

本文版权归郑哲明和饥人谷所有,转载请注明来源


这里记录我在学习前端过程中所遇到的困惑及自己的解答。


1、使用display:table-cell垂直居中为什么需要上级元素display:table?

display:table和display:table-call的元素宽度都会收缩(即内容必要宽度);父元素display:table,同时子元素display:table-cell,子元素会撑满父容器,此时对子元素使用vertical-align,垂直居中会起作用。

这其中的关键是 display:table-cell元素的高度要写死(百分比不起作用),此时垂直居中有效,display:table倒并不是必要条件。

2、为什么display:table-cell的元素脱离普通流后,vertical-align:middle无效?

vertical-align无效

暂时不清楚。

3、为什么display:table-cell的元素使用margin无效?

Applies to: all elements except elements with table display types other than table-caption, table and inline-table
除了 display 為 table 的屬性不支援外,適用所有元素(包含 table-caption, table, inline-table )。

display:table-cell的元素控制间距
  • 为什么img的下方有空隙?如下图

2016-07-12 15 37 00.png

不仅仅是img有,本质原因是这两个属性的影响:display:inilne-block或display:inline、vertical-align:baseline。

默认图片的基线在图片底端,当有vertical-align:baseline时,元素基线即与line box 基线对齐,baseline的下方给字母留出一点空间,即形成空隙。解决方案就是改变line box 的baseline的位置。

注意图片的vertical特性:图片撑开了line box的高度,line box的基线将随图片变动。
参考:
vertical-align:You need to konw

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,681评论 1 92
  • 有些东西我们经常用,但是我们却并不了解它的原理,所以一旦换了场景,好多东西就不知道该怎么用了。最近一直很纠结ver...
    朱小维阅读 10,431评论 8 34
  • 移动开发基本知识点 一.使用rem作为单位 html { font-size: 100px; } @media(m...
    横冲直撞666阅读 8,881评论 0 6
  • H5移动端知识点总结 阅读目录 移动开发基本知识点 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇阅读 10,113评论 0 26
  • 明天你要去哪里呀 我只是去寻找你的方向 迷人的香 勾人的唇 你何时才能想起我们的往事 回忆那么那么痛 不要再想 既...
    懵懂的女孩儿阅读 825评论 0 1