关于 vertical-align
默认情况下(行内基线位置 = 行内元素最大高度):

如果对这个正方形使用 vertival-align:middle。在最大高度的元素上使用负值(middle = - 50% * 元素高度),可以提升基线位置,如下:

http://www.cnblogs.com/xueming/archive/2012/03/21/VerticalAlign.html
w3c是这么写的:该属性定义行内元素的基线相对于该元素所在行的基线的垂直对齐
测试发现最好的理解是这样的:
初始情况下,基线的位置 = 行内元素的最大高度
vertical-align值为0px或者0%(line-height)时,该行内元素底部就是和基线对齐的。
基线降低多少取决于当前行内所有元素中vertical-align的最大值,其余元素的位置则取决于自己的vertical-align而相对于基线而变化(+:元素上移,-:下移)
应用文字或图片垂直居中

以上行内元素align的最大值是一半浏览器高度,所以基线下降一半的浏览器高度,这就导致元素垂直居中了
【以上案例中容器不使用绝对定位或000者固定定位,100%的高度就无效…但是容器里面的元素不使用定位,100%的高度是有效的。个人理解就是:body的直接元素必须设置定位100%高度才会生效】
以上代码中文字替换成图片时,只能是大概居中(文字是居中了,但是图片的位置偏高):

解决办法:在图片上加个属性即可:vertival-align:middle;效果如下:

阶梯案例
<body>
<style>
.item{
display: inline-block;
line-height: 30px;
}
</style> <span class="item" style="vertical-align: 100%">1</span>
<span class="item" style="vertical-align: 80%">2</span>
<span class="item" style="vertical-align: 60%">3</span>
<span class="item" style="vertical-align: 40%">4</span>
<span class="item" style="vertical-align: 20%">5</span>
<span class="item" style="vertical-align: 0%">6</span>
</body>
效果:

复习以上红字的结论,解释如下:
基线初始位置等同于行内元素的最大高度,也就是30px;
vertical-align为正值,则元素抬升,相对来说就是基线下降;
这个行内有6个元素,最大值为100%,也就是line-height * 100%=30px。则基线下降30px;原来的位置就在30px,现在又下降30px,则现在行基线的位置在60px处;
其他元素相对于基线调整自己的位置。0%就刚好在基线上(也就是6,元素底部与基线对齐);
关于 vertical-align的更多相关文章
- What is Vertical Align?
https://css-tricks.com/what-is-vertical-align/ ************************************************* CSS ...
- 浏览器兼容CSS代码:按钮文字垂直居中(input button text vertical align)
经过测试的浏览器:IE6, IE7, IE8, IE9, Firefox, Chrome, Safiri, Maxthon 按钮的HTML代码: <input id="btn_comm ...
- 关于Vertical Align的理解
1:vertical-align 翻译就是垂直-对齐... 2:关于line-height的点 2.1:如果一个标签没有定义height属性,那么其最终表现的高度一定是由line-height起作用. ...
- 前端知识点回顾之重点篇——CSS中vertical align属性
来源:https://www.cnblogs.com/shuiyi/p/5597187.html 行框的概念 红色(line-height)为行框的顶部和底部,绿色(font-size)为字体的高度, ...
- CSS3与页面布局学习总结(二)——Box Model、边距折叠、内联与块标签、CSSReset
一.盒子模型(Box Model) 盒子模型也有人称为框模型,HTML中的多数元素都会在浏览器中生成一个矩形的区域,每个区域包含四个组成部分,从外向内依次是:外边距(Margin).边框(Border ...
- highcharts
preparation Highcharts Highcharts是一个制作图表的纯Javascript类库,主要特性如下: 兼容性:兼容当今所有的浏览器,包括iPhone.IE和火狐等等: 对个人用 ...
- FusionCharts和highcharts 饼图区别!
FusionCharts ---------------脚本--------------- <script src="../../../fashioncharts/js/FusionC ...
- 进一步封装highchart,打造自己的图表插件:jHighChart.js
Highcharts 是一个用纯JavaScript编写的一个图表库, 能够很简单便捷的在web网站或是web应用程序添加有交互性的图表.支持的图表类型有曲线图.区域图.柱状图.饼状图.散状点图和综合 ...
- Box Model,边距折叠,内联和块标签,CSSReset
一.盒子模型(Box Model) 1.1.宽度测试 1.2.溢出测试 1.3.box-sizing属性 1.4.利用CSS画图 二.边距折叠 2.1.概要 2.2.垂直方向外边距合并计算 三.内联与 ...
- HighCharts从数据库中读取数据
1.index.js router.get('/', function(req, res, next) { res.render('index', { title: 'Express' }); }); ...
随机推荐
- bzoj 1396: 识别子串 && bzoj 2865: 字符串识别【后缀数组+线段树】
根据height数组的定义,和当前后缀串i最长的相同串的长度就是max(height[i],height[i+1]),这个后缀贡献的最短不同串长度就是len=max(height[i],height[ ...
- noip 2018 Day2 T1 旅行
暴力删边,暴力枚举 #include <bits/stdc++.h> using namespace std; #define MAXM 5010 inline int read() { ...
- 如何用Zookeeper来实现分布式锁?
什么是Zookeeper临时顺序节点? 例如 : / 动物 植物 猫 仓鼠 荷花 松树 Zookeeper的数据存储结构就像一棵树,这棵树由节点组成,这种节点叫做Zonde.# Znode分为四种类型 ...
- Json----Jackson 下载地址
下载地址: http://repo1.maven.org/maven2/com/fasterxml/jackson/
- Android课程设计第三天帧动画区间动画
注意:课程设计只为完成任务,不做细节描述~ 点火是帧动画,发射是区间动画,于是 <?xml version="1.0" encoding="utf-8"? ...
- 数组Reduce的应用
数组Reduce的应用 参考 简单应用 var arr = [1,2,3,4,5] var sum = arr.reduce(function (prev, cur, index, arr) { co ...
- JavaScript-页面打印正方形,各种三角形与菱形
一. 正方形 a) 在第一个for循环中控制,一共输出几行.依靠的是,每次输出一行,就会在后面输出一个换行符<br>; b) 在第二个for循环中控制每行输出几个五角星.这样的 ...
- 求n的因子个数与其因子数之和
方法一:朴素算法:O(n). #include<bits/stdc++.h> using namespace std; int get_num(int n){ ; ;i<=n;++i ...
- 利用layui的load模块解决图片上传
首先肯定要参考layui官网的upload模块文档:http://www.layui.com/doc/modules/upload.html 讲讲思路:在一份添加表单中,我们有个图片上传的模块,然后我 ...
- MySQL系列:隐式类型转化可能带来的坑
在开发规范中,我们往往会要求研发避免在where条件中出现隐式类型转换,这么要求大概有以下两方面的原因: 隐式类型转换可能导致索引失效: 隐式类型转换可能产生非预期的结果. 注:这里说的是隐式类型转换 ...