<style>
    .box1,.box2{
      display: inline-block;
      background-color:#f0f3f9;
      width:150px;
      height: 150px;
    }
  </style>

  <div class="content">
    <span class="box1"></span>
    <span class="box2"></span>
  </div>

两个盒子都没有内容时,能在一条水平线上

<div class="content">
    <span class="box1"></span>
    <span class="box2">x-baseline</span>
  </div>

当第二个盒子有text内容时,两个盒子无法对齐。

一个inline-block元素,如果里面没有inline元素,或者overflow不是visible,则该元素的基线就是其margin底边缘,否则,其基线就是元素里面最后一行内联元素的基线。

box1里面没有内联元素,因此,基线就是容器的margin下边缘,也就是下边框下面的位置;而第二个框框里面有字符,纯正的内联元素,因此,box2的基线就是这些字符的基线,也就是字母x的下边缘了。于是,我们就看到了box1下边缘和box2里面字符x底边对齐的好戏。

说回vertical-align

vertical-align默认值是baseline, 也就是基线对齐。而基线是什么,基线就是字母X的下边缘。

经常碰到问题div里包含图片,父级没有指定高度的时候,图片下方有几个像素空白

<div class="content">
    <img src=".picc.png" alt="">
  </div>

    .content{
      width: 100%;
      background: blue;
    }
    .content img{
      width: 300px;
      height: 300px;
    }

原因图片的display属性默认是inline,而这个属性的vertical-align的默认值是baseline(基线)。所以就会出现上图的情况(图片底部出现一个小留白区域)。

解决方法

1.图片转为块元素  因为只有元素属于inline或是inline-block ,vertical-align属性才会起作用。

img{display:block;}

2.图片对其方式改为中间对齐

img{vertical-align:middle;}

3.父级设置font-size:0   改变行高

4.父级设置line-height:0 改变行高

5.图片转为浮动

img{float:left;}

vertical-align属性

vertical-align: baseline;    /*默认。元素放置在父元素的基线上*/
vertical-align: sub;         /*垂直对齐文本的下标*/
vertical-align: super;       /*垂直对齐文本的上标*/
vertical-align: text-top;    /*把元素的顶端与父元素字体的顶端对齐*/
vertical-align: text-bottom; /*把元素的底端与父元素字体的底端对齐。*/
vertical-align: middle;      /*把此元素放置在父元素的中部*/
vertical-align: top;         /*把元素的顶端与行中最高元素的顶端对齐*/
vertical-align: bottom;      /*把元素的顶端与行中最低的元素的顶端对齐*/

vertical-align和图片下方空白问题的更多相关文章

  1. 高效开发之SASS篇 灵异留白事件——图片下方无故留白 你会用::before、::after吗 link 与 @import之对比 学习前端前必知的——HTTP协议详解 深入了解——CSS3新增属性 菜鸟进阶——grunt $(#form :input)与$(#form input)的区别

    高效开发之SASS篇   作为通往前端大神之路的普通的一只学鸟,最近接触了一样稍微高逼格一点的神器,特与大家分享~ 他是谁? 作为前端开发人员,你肯定对css很熟悉,但是你知道css可以自定义吗?大家 ...

  2. 图片下方出现多3px的原因及解决方法

    产生原因:主要是因为图片的垂直对齐方式vertical-align引发的,默认值是baseline,默认为此值时图片下方就会多出3px. 解决方案: 1.将图片的垂直对齐方式vertical-alig ...

  3. javascript焦点图(根据图片下方的小框自动播放)

    html和css就不详细说明了,也是简单布局,通过定位把跟随图片的小框,定位到图片下方 <!DOCTYPE html> <html> <head> <meta ...

  4. css之图片下方定位遮掩层

    需要的效果如图,图片下方加个遮掩层: html: <div class="listContent"> <div><img src="imag ...

  5. What is Vertical Align?

    https://css-tricks.com/what-is-vertical-align/ ************************************************* CSS ...

  6. 如何解决div里面img图片下方有空白的问题?

    空白产生原因: 图片默认的vertical-align是baseline,(元素放置在父元素的基线上,也就是xx下边距) 一个inline-block元素,如果里面没有inline元素,或者overf ...

  7. highchart 导出图片, 显示空白

    使用highchart时, 导出的图片会变空白..   解决方案: 不要加载grid.js

  8. R 语言消除pdf图片的空白

    pdf 函数中,有一个参数onefile ,  默认值为TRUE, 表示每张图片占用pdf 中的一页 当遇到pdf的前几页为空白时,是因为画图的代码产生了几张空白的图片 如果要消除前面的空白,只需要设 ...

  9. 在父容器div中图片下方有一条空隙问题

    问题:<div><img src="mm1.jpg"></div> 然后,表现就是一张图片呈现,类似下面这样: 恩,看上去很正常,一切都是理所当 ...

随机推荐

  1. HTMLTestRunner修改成Python3版本

    修改前:HTMLTestRunner下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html BSTestRunner     下载地址:htt ...

  2. MYSQL中默认隐式事务及利用事务DML

    一:默认情况下,MySQL采用autocommit模式运行.这意味着,当您执行一个用于更新(修改)表的语句之后,MySQL立刻把更新存储到磁盘中.默认级别为不可重复读. 二:会造成隐式提交的语句以下语 ...

  3. CentOS上安装 Docker-CE以及Docker 加速器配置

    在CentOS 7.0上安装 Docker-CE 官方源安装教程 https://docs.docker.com/install/linux/docker-ce/centos/#install-usi ...

  4. [Hive_9] Hive 的排序

    0. 说明 全排序(order by) | 部分排序(sort by) | hash 分区(distribute by)  | cluster by 1. 前期准备 1.1 建表 create tab ...

  5. 代码管理工具:Git 和 Svn 的简单操作

    1. git 先注册git config --global user.name "name" git config --global user.email "email& ...

  6. March 01st, 2018 Week 9th Thursday

    Let bygones be bygones. 过去的就让它过去吧. What happened has happened, it cannot be undone, so just leave it ...

  7. IIS 发布ASP.NET MVC 4.0 错误500.21解决办法

    由VS2013 写好的MVC 4.0 发布在服务器IIS 上报错500.21,解决办法:尝试多种网上介绍的办法,最后发现还是模块问题.

  8. JavaScript数组对象详情

    Array 数组概述 Array 类型是 ECMAScript 最常用的类型.javaScript 中的 Array 类型和其他语言中的数组有着很大的区别. 虽然数组都是有序排列,但 javaScri ...

  9. html js获取URL传参

    每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code function GetQueryString(name) {      var re ...

  10. arduino json 解析

    #include <ArduinoJson.h> void setup() { Serial.begin(9600); DynamicJsonDocument jsonBuffer(200 ...