这两天发现一个问题,就是display为inline-block的元素有内容和没有内容情况下高度不一致,虽然不会出现元素中没内容的情况,但是我还是决定必须解决这个问题,可能我有一些轻微的强迫症。

<div id="frame">

<div class="item">test</div>

<div class="item"></div>

<div class="item"></div>

</div>

.item {

display: inline-block;

width: 180px;

height: 100px;

background-color: yellow;

}

为什么第一div会下沉?里面随便装个东西就这个样子了,为什么?

根本原因是display: inline-block形成了内联元素。而内联元素的vertical-align的默认值就为baseline。

罪魁祸首就是由于baseline造成的,先来了解下baseline,这是一个在英文的文字排版中体现比较明显的概念:

baseline只是在内联元素中才有的概念,在块元素中并没有这种概念,也就是说只有在ifc下才会有这一概念,并且内联元素的vertical-align的默认值就为baseline,也就是根据基线对齐。

对应着baseline还有两条标准线,分别为bottom和top,下面这张图说明了三条线所处的位置:

解决方案:

1 子元素3个inline-block中加上属性vertical-align: middle或者vertical-align:top或者vertical-align: bottom都行

2子元素3个inline-block中加上属性overflow:hidden

display为inline-block的元素有内容和没有内容情况下高度不一致的问题的更多相关文章

  1. 如何处理 在html中 li 的高度自适应(且li里面的内容有浮动的情况下)

    废话不多说,我们写贴出代码 这个是 Html 代码 <div class="main"> <ul> <li> <div class=&qu ...

  2. xpath 选取指定文本内容可能是多种情况下的语法

    url_list = select.xpath("//ul/li/a[contains(text(),'新闻中心' )]/../../li/a/@href | //ul/li/a[conta ...

  3. display:inline-block,block,inline元素的区别

    1.display:block将元素显示为块级元素,从而可以更好地操控元素的宽高,以及内外边距,每一个块级元素都是从新的一行开始.2.display : inline将元素显示为行内元素,高度,行高以 ...

  4. display:inline、block、inline-block 的区别

    一.块级元素 与  行级元素 要理解display:inline.block.inline-block的区别,需要先了解HTML中的块级(block)元素和行级(inline)元素的特点,行内元素也叫 ...

  5. display:inline-block,block,inline的区别与用法

    一.首先要了解什么是块级元素与行级元素 块级元素 会占领页面的一行,其后多个block元素自动换行. 可以设置width,height,设置了width后同样也占领一行.同样也可以设置   margi ...

  6. CSS 基础 例子 display属性:block、inline和inline-block的区别

    HTML中块级元素(block)和行级元素(inline):比如div就是常见的块级元素,span就是常见的行级元素. 可以通过css的display属性来设置一个元素到底是块级,还是行级元素:dis ...

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

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

  8. 【学习笔记】block、inline(替换元素、不可替换元素)、inline-block的理解

    本文转载 总体概念 block和inline这两个概念是简略的说法,完整确切的说应该是 block-level elements (块级元素) 和 inline elements (内联元素).blo ...

  9. 【Web】block、inline、inline-block元素与background属性概述(案例实现社交账号注册按钮效果)

    步骤三:社交账号注册按钮效果 文章目录 步骤三:社交账号注册按钮效果 案例的演示与分析 CSS属性与HTML标签 块级元素 内联元素 行内块级元素 CSS的display属性 CSS中的背景图片属性 ...

随机推荐

  1. 阿里分布式服务框架Dubbo的架构总结

    Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合).从服务模型的角度来看,Dubbo采用的是一种非常简单的模 ...

  2. Java细节整理——数组与内存控制

    重点:使用Java数组之前,必须对数组对象进行初始化. 当数组的所有元素都被分配了合适的内存空间,并指定了初始值时,数组的初始化完成.程序以后将不能重新改变数组对象在内存中的位置和大小. 知识点整理: ...

  3. node实现简单的群体聊天工具

    一.使用的node模块 1.express当做服务器 2.socket.io 前后通信的桥梁 3.opn默认打开浏览器的模块(本质上用不到) 难点:前后通信 源码地址:https://github.c ...

  4. CentOS 7.0 下 Python 2.7 升级到 Python 3.5

    前段因为时间工作需要,要把 Centos 7.0 默认安装的 Python 2.7 升级到 Python 3.5. 具体操作如下: # 安装 gcc gcc-c++ 等编译工具软件 yum insta ...

  5. zTree 节点文字过多处理方法

    zTree setting.view.addDiyDom 方法可以实现自定义控件,指定节点显示内容.因此需要自己实现addDiyDom方法. 如果树节点不显示checkbox ,处理方法为: func ...

  6. 关于python当中的@修饰符的浅析

    https://blog.csdn.net/class_brick/article/details/81170697     要了解python中@装饰器的作用,首先要记住这么几点: 1. 装饰器符号 ...

  7. Mybatis 同时传入多个参数和对象

    流程 1,mapper 接口文件使用 @param 注解(一个参数就不用使用注解,多个参数要么使用注解,要么使用数组的方式取值) 2,mapper xml 文件使用 mapper 接口文件传参 pub ...

  8. Angular的12个经典问题,看看你能答对几个?(文末附带Angular测试)

    Angular作为目前最为流行的前端框架,受到了前端开发者的普遍欢迎.不论是初学Angular的新手,还是有一定Angular开发经验的开发者,了解本文中的12个经典面试问题,都将会是一个深入了解和学 ...

  9. iOS ----------字符串处理

    //一.NSString/*----------------创建字符串的方法----------------*/ //1.创建常量字符串.NSString *astring = @"This ...

  10. [TensorFlow]Tensor维度理解

    http://wossoneri.github.io/2017/11/15/[Tensorflow]The-dimension-of-Tensor/ Tensor维度理解 Tensor在Tensorf ...