使用vertical-align:middle可以让行级元素垂直居中,但这个居中是以文字的中线来计算的,而文字的中线在不同的字体上不同,甚至相同的字体在不同的浏览器上显示的都不同。所以直接使用vertical-align:middle很难完美居中,因此需要其它调整。
运行<!DOCTYPE html>
<style>
div {
  border:1px solid red;
  width:200px;
  height:100px;
  line-height:100px;
  text-align:center;
}
span {vertical-align:middle;}
#box {
  display:inline-block;
  width:100px;
  height:98px;
  background:#EEE;
}
</style>
<div>
  abc<span id="box"></span>def
</div>

  当容器内存在vertical-align:middle元素时,它们的中线会被对其到所在行的基线上。而所在行的基线未必是中线,基线与中线偏离的距离就是vertical-align:middle垂直居中时候出现的偏离距离。
  基线与中线的位置差异会受到字体、字形、字号,等影响。而且在不同浏览器上字体的渲染还存在差异,这样就不容易计算具体的偏差。但我们可以取消掉基线和中线的位置差,做法是将字号改到0,也就是不在行中直接使用文本节点。
运行<!DOCTYPE html>
<style>
div {
  border:1px solid red;
  width:200px;
  height:100px;
  line-height:100px;
  text-align:center;
  font-size:0px;
}
span {
  vertical-align:middle;
  display:inline-block;
  font-size:1rem;
}
#box {
  width:100px;
  height:98px;
  background:#EEE;
}
</style>
<div>
  <span>abc</span><span id="box"></span><span>def</span>
</div>

vertical-align:middle的居中细节调整的更多相关文章

  1. What is Vertical Align?

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

  2. 各种div+css居中方式调整(转载)

    盘点8种CSS实现垂直居中水平居中的绝对定位居中技术 分类: 前端开发2013-09-11 21:06 24959人阅读 评论(3) 收藏 举报 绝对居中垂直居中水平居中CSS居中代码   目录(?) ...

  3. echarts使用------地图生成----省市地图的生成及其他相关细节调整

    为使用多种业务场景,百度echarts地图示例只有中国地图,那么在使用省市地图的时候,就需要我们使用省市的地图数据了 以下为陕西西安市的地图示例: 此页面引用echarts的js:http://ech ...

  4. 前端知识点回顾之重点篇——CSS中vertical align属性

    来源:https://www.cnblogs.com/shuiyi/p/5597187.html 行框的概念 红色(line-height)为行框的顶部和底部,绿色(font-size)为字体的高度, ...

  5. webim-界面细节调整

    1)左侧css调整 3)界面和滚动条美化 8)界面

  6. 浏览器兼容CSS代码:按钮文字垂直居中(input button text vertical align)

    经过测试的浏览器:IE6, IE7, IE8, IE9, Firefox, Chrome, Safiri, Maxthon 按钮的HTML代码: <input id="btn_comm ...

  7. 关于Vertical Align的理解

    1:vertical-align 翻译就是垂直-对齐... 2:关于line-height的点 2.1:如果一个标签没有定义height属性,那么其最终表现的高度一定是由line-height起作用. ...

  8. css 居中,中央

    在我的技巧里,有4中居中中央的方法: 1.position:absolute; top:50%;left:50%; margin : -x 0 0 -x; 这是绝对定位的方法,通过算法移动,坏处就是必 ...

  9. div仿checkbox表单样式美化及功能

    div仿checkbox表单样式美化及功能(checkbox的样式不好看)素材在底部: 效果图: window.css .bj { position: absolute; top: 0; left: ...

随机推荐

  1. JOSM学习下载地址

    JOSM is an extensible editor for ​OpenStreetMap (OSM) written in ​Java 7. Currently it supports load ...

  2. Easyui几种布局方式的使用

    1.通过标记创建layout.  记得添加"easyui-layout"样式给div标记. <div id="cc" class="easyui ...

  3. 《编写高质量代码 改善Java程序的151个建议》书摘

    例子1:三元操作符的陷阱 int i = 80; String str1 = String.valueOf(i < 100 ? 90 : 100); String str2 = String.v ...

  4. asp.net调用非托管dll,无法加载 DLL,找不到指定模块解决方法。

    最近开发一个项目,里面用到了非.net开发的一个dll文件接口,发现发布到window2003服务器上后,运行网站总是提示 "无法加载 DLL"D:\11\1.dll": ...

  5. Unity 之 Redux 模式(第一篇)—— 人物移动

    作者:软件猫 日期:2016年12月6日 转载请注明出处:http://www.cnblogs.com/softcat/p/6135195.html 在朋友的怂恿下,终于开始学 Unity 了,于是有 ...

  6. 云脉表格识别开放SDK接入

    通过深度的引擎识别和文本处理技术给予表单提供了无与伦比的文档分析和数据的提取功能,云脉表单识别包含了先进的模板学习和文本.图像分析提取技术,通过模板元素定义表单,将整个南表单生命周期和生产数据以自动化 ...

  7. png图片的loading旋转

    img{ animation:rotate 1s linear infinite; -webkit-animation:rotate 1s linear infinite; } @keyframes ...

  8. 命名空间“Aspose”中不存在类型或命名空间名称“Slides”。

    有可能引用的dll与项目的 .netFramework版本不同,需要确认两个版本是否相同.如果不同,项目右键->属性->应用程序.选择和引用的dll相同的版本.

  9. 彩虹vpn免费10分钟

    账号:rainbowvpn password:10fenzhong server地址:t.chqvpn.com l2tp密钥:123456

  10. VMware虚拟机与主机联通及配置上网

    vmware版本:10.0.0 build-1295980,安装redhat enterprise linux 5.8 一.物理机与虚拟机联通,但不联网 1.虚拟网络VMnet1设置: 此时,物理主机 ...