参考资料:

  “display:block-inline形式的Span或Div中添加文字后,导致Span或Div排版掉落、错位”的原因及解决方法;

正文:

  场景:两个 div 排在一行上,各有固定宽高,其中有一个 div 内部有文字和排版等其他填充;两个 div 杂七杂八的宽度加起来远小于 father 宽度。

  拿到设计图之后,略想了一下,这不 so easy 么,既然有足够的宽度空间,那不就是随意发挥么:两 son 变 inline-block,那个有内容的 div 内或 padding ,或 flex,大致弄个上下等距不就 ok  了么,正好前面的人用 table-cell 来垂直居中,正好可以试试。然而事实证明太 naive 了,inline-block 中就藏了一个坑。

  

  首先是思路中的效果:

.container {
width: 900px;
height: 300px;
background-color: #eee;
margin: 100px auto;
} .inbox {
display: inline-block;
width: 400px;
height: 100px;
background-color: #7b7f88;
} <div class="container">
<div class="inbox"></div>
<div class="inbox"></div>
</div>

  很快啊,上面没什么问题(因为父元素的宽度足够,两个子元素之间的间隙可以忽略,当然这里也会出现隐藏坑,后叙)。于是很开心地去填充内容了,dom 结构变成:

<div class="container">
<div class="inbox"></div>
<div class="inbox">
<div>
<h2>55</h2>
</div>
</div>
</div>

  愉快地 ctrl + s 之后 F5,然后就懵逼了,这不对啊,怎么成这样了,刚才不还好好的么,就加了句话???

  于是经过翻山越岭地 Google baidu 之后,找到了参考中的资料:css 有个属性 vertical-align,它只在 display为 inline 或者 inline-block 的情况下起作用,默认值是 baseline。这意味着把元素设置成 inline(-block) 的时候,内部的文字会按照基线对齐,这也是为什么用尺子量,“55” 正好切了前一个 inbox 的 bottom。

  那解决办法就简单了,每个 inbox 设置 vertical-aligh: top(如果父元素的高度是撑开的话,设置成middle、bottom、text-bottom、text-top 都可以),就可以回归思路,如下图:

其他:

  在第一张图我们也看到, inline-block 的盒子之间是存在一点间隙的,这个问题和 HTML 的结构有关。正如上面我们贴的代码,两个 inbox 之间有一个换行,而浏览器在解释的时候遇到 inline(-block) 会把这个换行符解释成一个空白文本节点,这在视觉上就出现了间隙。解决办法有很多,贴两个常见的:

  1. 代码写一行上,不过不利于维护;

  2.父元素设置 font-size: 0,子元素重新设置字体大小;

各有优缺点,按需取用。

css - inline-block 盒子下的内容文字错位问题的更多相关文章

  1. 这些HTML、CSS知识点,面试和平时开发都需要 No1-No4(知识点:HTML、CSS、盒子模型、内容布局)

    这些HTML.CSS知识点,面试和平时开发都需要 No1-No4   系列知识点汇总 这些HTML.CSS知识点,面试和平时开发都需要 No1-No4(知识点:HTML.CSS.盒子模型.内容布局) ...

  2. web前端学习(三)css学习笔记部分(7)-- 文字和字体相关样式、盒子相关样式、背景与边框相关样式

    12.  文字和字体相关样式 12.1  CSS3 给文字添加阴影 使用 text-shadow 属性给页面上的文字添加阴影效果,text-shadow 属性是在CSS2中定义的,在 CSS2.1 中 ...

  3. 纯css实现同一页面下选择之后更换内容效果

    实现效果为如下:在同一页面下,当我选中输入手机号时,出现手机号输入框,当我选中输入验证码时,出现验证码输入框,当我选中设置密码时,出现密码框 在这里有一个小技巧,就是  1.对下面的输入框设置同样的样 ...

  4. CSS 概念 Block Inline Containing block

    Block 元素 包括 "block-level box," "block container box," and "block box" ...

  5. 深度理解div+css布局嵌套盒子

    1. 网页布局概述 网页布局的概念是把即将出现在网页中的所有元素进行定位,而CSS网页排版技术有别于传统的网页排版方法,它将页面首先在整体上使用<div>标记进行分块,然后对每个快进行CS ...

  6. CSS学习摘要-盒子模型

    注:全文摘要自网络开发者网站,当然间隔也会整理一些思路和格式排版添加进去. CSS框模型(译者注:也被称为"盒模型")是网页布局的基础 --每个元素被表示为一个矩形的方框,框的内容 ...

  7. [19/06/06-星期四] CSS基础_盒子模型

    一.盒子模型(框模型.盒模型) CSS处理网页时,它认为每个元素都在一个不可见的矩形盒子里. 为什么想象成盒子模型?因为把所有元素想象成盒子,那么我们对网页的布局就相当于摆放盒子.我们只需要把相应的盒 ...

  8. display:inline block inline-block 的区别

    原文地址:http://blog.csdn.net/jly036/article/details/5506182 display:block就是将元素显示为块级元素. block元素的特点是: 总是在 ...

  9. Css之导航栏下拉菜单

    Css: /*下拉菜单学习-2017.12.17 20:17 added by ldb*/ ul{ list-style-type:none; margin:; padding:; overflow: ...

随机推荐

  1. shell脚本判断进程是否运行

    zzx@zzx120:~$ if ps aux | grep "python"|grep -v grep > /dev/null             #$?的值不同 th ...

  2. js中要声明变量吗?

    你好,js语言是弱类型语言,无需申明即可直接使用,默认是作为全局变量使用的.建议:在function里时应使用var 申明变量,这样改变量仅仅只在function的生存周期内存在,不会污染到,全局控件 ...

  3. Mybatis学习——初始MyBatis

    什么是MyBatis框架? MyBatis框架是一种ORM(既对象关系映射)框架. 什么是ORM框架? 是一种为了解决面向对象与关系数据库之间数据不匹配的技术,它通过描述Java对象和关系数据库表之间 ...

  4. java和数据库中所有的锁都在这了

    1.java中的锁 1.1 锁的种类 公平锁/非公平锁 可重入锁/不可重入 独享锁/共享锁 读写锁 分段锁 偏向锁/轻量级锁/重量级锁 自旋锁 1.2 锁详细介绍 1.2.1 公平锁,非公平锁 公平锁 ...

  5. Half of UK 10-year-olds own a smartphone

    1. preposition n. 介词  pronoun  n. 代词 2. despite /preposition. (1) used to say that something happens ...

  6. MySql索引机制

    第一部分 MySQL数据库索引的数据结构及算法理论 第二部分 MySQL索引实现机制 第三部分 MySQL中高性能使用索引的策略 数据结构及算法 MySQL官方对索引的定义为:索引(Index)是帮助 ...

  7. Deep-Learning-with-Python] 文本序列中的深度学习

    https://blog.csdn.net/LSG_Down/article/details/81327072 将文本数据处理成有用的数据表示 循环神经网络 使用1D卷积处理序列数据 深度学习模型可以 ...

  8. 四十、LAMP与LNMP加速与缓存优化进阶实战上部

    实例: 一. 所有服务器配置定时时间同步,必须通过web server上网. 有两种方式: 1.服务器A能进行上网,作为web server ,通过指定为ntp服务器,所有服务器访问这个服务器 2.服 ...

  9. 设置Schema-Registry的配置,以支持Schema变化

    设置Schema-Registry的配置,以支持Schema变化 https://blog.csdn.net/lzufeng/article/details/81566766 curl -X PUT ...

  10. H - Mr. Panda and Birthday Song Gym - 101775H (动态规划)

    Mrs. Panda’s birthday is coming. Mr. Panda wants to compose a song as gift for her birthday. It is k ...