CSS vertical-align属性的使用方法
这两天写个页面css的时候用到了vertical-align属性。使用过程中踩到了坑,所以总结例如以下:
vertical-align的定义
W3C上对vertical-align的定义:vertical-align 属性设置元素的垂直对齐方式。该属性定义行内元素的基线相对于该元素所在行的基线的垂直对齐。
同意指定负长度值和百分比值。
这会使元素减少而不是升高。在表单元格中,这个属性会设置单元格框中的单元格内容的对齐方式。
文本通常依据不可见的基线进行对齐的。而字母的底部位于基线之上。vertical-align属性能够在文字的基线之上或之下提升或减少字母或图像。vertical-align属性的值有baseline、sub、super、top、text-top、middle、bottom、text-bottom、、等,当中初始值为baseline。
baseline(基线)——将子元素的基线与父元素的基线相对齐。
对于没有基线的元素,如图像或对象,则使它的底部与父元素的基线对齐。
sub(以下)——把元素置于下方(下标),确切地说是使元素的基线对齐它的父元素首选的下标位置。
super(上面)——把元素置于上方(上标)。确切地说是使元素的基线对齐它的父元素首选的上标位置。
text-top(文本顶部)——使元素的顶部与其父元素最高字母的顶部相对齐。
top(顶部)——使元素的顶部与行中最高事物的顶部相对齐。
middle(中间)——使元素垂直居中。
bottom(底部)——使元素的底部与行中最低事物的底部相对齐。
text-bottom(文本底部)——使元素的底部与其父元素字体的底部相对齐。
vertical-align的解读
W3C上对vertical-align的定义,大体上能够分为两个部分:
第一种使用方法。先看后面一句“在表单元格中,这个属性会设置单元格框中的单元格内容的对齐方式。”这非常easy理解,假设给一个表格的td加一个vertical-align:middle的样式。表格里面的内容会垂直居中,相同的假设给一个vertical-align:bottom就会底部对齐。假设给一个vertical-align:top就会顶部对齐。
另外一种使用方法,看前页一句“该属性定义行内元素的基线相对于该元素所在行的基线的垂直对齐。”专业的语言我不会说的。能够打个比喻:假设有两个行内元素a和b,a和b都是img,当a加了一个vertical-align:middle样式之后,b的底部(基线)就会对齐a的中间位置,例如以下图:
假设a和b都加了一个vertical-align:middle样式。那么就互相对齐了对方的中间位置,也就是它们在垂直方向上的中线对齐了,例如以下图:
比方,img和span一起出现。要想文字对齐图片的中间位置,就须要为图片加入img{vertical-align:middle;}
再比方input和span连用时,谷歌火狐IE8以上版本号里默认的是span在input的中间位置,但ie6/ie7里,span底部和input底部对齐。实现统一的办法就是给input加入input{vertical-align:middle;},要想它们垂直方向上的中线对齐。就同一时候也为span设置span{vertical-align:middle;}
vertical-align的使用
1.用于内联元素
以下以图像的垂直对齐为样例说明一下vertical-align属性的使用方法。
img{ vertical-align:middle;}
<div><img src="http://pic2.58.com/ui7/job/hire/pic4.png" />看看我的位置</div>
2.用于表格
vertical-align属性能够直接用于表格单元格,效果相当于HTML中的valign属性。
td{ height:40px; vertical-align:middle;}
<table><tr><td>这是一个測试</td><td>这是一个測试</td></tr><tr><td>这是一个測试</td><td>这是一个測试</td></tr></table>
3.用于块元素
vertical-align属性是不适用于块元素的。这就是为什么有些人使用vertical-align属性无效的原因。可是我们能够使用display属性,设置其值为table-cell。将块元素转化为单元格,然后再使用vertical-align属性。
div{width:500px; height:200px; border:1px blue solid; display: table-cell; vertical-align: middle;}
<div><img src="http://pic2.58.com/ui7/job/hire/pic4.png" /></div>
须要注意的是。上面这样的方法是存在兼容性问题的。IE6/IE7以及以IE为核心的浏览器如世界之窗、360、遨游等浏览器不支持这样的使用方法,而Chrome、火狐却能支持。
为了兼容ie6/7能够为div添加下面属性
div{
*display:block; *font-size:175px;/*高度为200px。 则200*0.873约为175px* 撑开/ }
**
特别提醒:vertical-align仅仅对行内元素有效,对块级元素无效。
**
CSS vertical-align属性的使用方法的更多相关文章
- 前端知识点回顾之重点篇——CSS中vertical align属性
来源:https://www.cnblogs.com/shuiyi/p/5597187.html 行框的概念 红色(line-height)为行框的顶部和底部,绿色(font-size)为字体的高度, ...
- 【转】CSS z-index 属性的使用方法和层级树的概念
文章转自:CSS z-index 属性的使用方法和层级树的概念,另外加了一点自己的注释 CSS 中的 z-index 属性用于设置节点的堆叠顺序, 拥有更高堆叠顺序的节点将显示在堆叠顺序较低的节点前面 ...
- css中的float属性以及清除方法 (2011-09-03 17:36:26)
CSS里面的浮动属性是布局的常用工具,只有真正了解它并熟练使用才能将它的优点发挥到极致. 许多页面中都有文字绕图效果,并且各区块分布得错落有置,很多朋友在自学CSS布局时为了做出这些效果往往会被div ...
- ios jquery css('left')无法读取属性解决的方法
ios jquery css('left')无法读取属性解决的方法 <pre>$(this).position().left因为display:none状态下是读取不了 $(this).o ...
- 【转】CSS Sprites教程大全(使用方法、工具介绍)
什么是CSS Sprite CSS Sprite 又叫CSS精灵,是目前大型网站中经常运用的图片处理方式.它的原理很简单,将网站上零散的小图片(或图标)整合在一张大图上,再用CSS中“backgrou ...
- CSS 垂直居中的5种实现方法
利用 CSS 来实现对象的垂直居中有许多不同的方法,比较难的是选择那个正确的方法.我下面说明一下我看到的好的方法和怎么来创建一个好的居中网站. 使用 CSS 实现垂直居中并不容易.有些 ...
- 提高CSS文件可维护性的五种方法
当完成一项前端的工作之后,许多人都会忘记该项目的结构与细节.然而代码并不是马上就能完全定型,在余下的时间里还有不断的维护工作,而这些工作也许不会是你自己完成.所以,结构优良的代码能很大程度上优化它的可 ...
- 深入理解css中position属性及z-index属性
深入理解css中position属性及z-index属性 在网页设计中,position属性的使用是非常重要的.有时如果不能认识清楚这个属性,将会给我们带来很多意想不到的困难. position属性共 ...
- CSS Counters 计数属性
CSS Counters其实就是一计数器,早期在CSS中计数器仅存在于ul和ol元素.如果要使用在div这样的元素上,只能通过list-style-image或者是元素的backgroud-image ...
随机推荐
- 软件project经验总结系列之三 - 计划阶段控制
本文为软件project经验总结系列文章的第三篇.按照总论文章所设立的范围划分,本阶段重点讲述计划阶段的控制过程以及控制思路,笔者所站在的角度是乙方角度来进行表述整个阶段的推动过程,但对于甲方公司其基 ...
- BOM 请给javascript一个说法-------Day33
楼市低迷,业主是不是该要个说法.黄金暴跌,谁来给大妈们一个说法.中国足球,敢不敢给大家一个说法. 给个说法,谁给,给谁,这该是哲学的范畴了吧. 可是,在这里.BOM是真真切切的给javascript一 ...
- C. Arthur and Table(Codeforces Round #311 (Div. 2) 贪心)
C. Arthur and Table time limit per test 1 second memory limit per test 256 megabytes input standard ...
- Python之字符串切片
切片操作(slice)可以从一个字符串中获取子字符串(字符串的一部分).我们使用一对方括号.起始偏移量start.终止偏移量end 以及可选的步长step 来定义一个分片. 格式: [start:en ...
- Direct2D开发:Direct2D 和 GDI 互操作性概述
本主题说明如何结合使用 Direct2D 和 GDI(可能为英文网页).有两种方法可以结合使用 Direct2D 和 GDI:您可以将 GDI 内容写入与 Direct2D GDI 兼容的呈现器目标, ...
- 【AIM Tech Round 4 (Div. 1) B】Interactive LowerBound
[链接]http://codeforces.com/contest/843/problem/B [题意] 给你一个数组模拟的单链表,放在一个长度为n的数组里面,然后告诉你表头的位置在哪里; 你可以最多 ...
- Mysql多实例安装+主从复制+读写分离 -学习笔记
Mysql多实例安装+主从复制+读写分离 -学习笔记 .embody{ padding:10px 10px 10px; margin:0 -20px; border-bottom:solid 1px ...
- 洛谷——P1056 排座椅
https://www.luogu.org/problem/show?pid=1056#sub 题目描述 上课的时候总会有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情.不过,班主 ...
- Android学习笔记之按键操作
我们如何和Android 程序来进行交互那份?来让 Android 程序产生相应的反应,我们不得不通过键盘事件.触摸事件.传感器事件等来实现. 键盘是Android中主要的输入设备,对按键的响应的处理 ...
- 27. Spring Boot 部署与服务配置
转自“https://www.cnblogs.com/zhchoutai/p/7127598.html” Spring Boot 其默认是集成web容器的,启动方式由像普通Java程序一样,main函 ...