垂直居中分两种情况:1.父元素高度确定的单行文本        2.以及父元素高度确定的多行文本。

  1.垂直居中-父元素高度确定的单行文本的竖直居中的方法是通过设置父元素的 height 和 line-height高度一致来实现的,即此时单行文本的行高line-height=height(父元素块高度)。(height: 该元素的高度,line-height: 顾名思义,行高(行间距),指在文本中,行与行之间的 基线间的距离 )。

line-height 与 font-size 的计算值之差,在 CSS 中成为“行间距”。分为两半,分别加到一个文本行内容的顶部和底部。

但是有一个弊端:当文字内容的长度大于块的宽时,就有内容脱离了块:

#sy{
margin-top:20px;
text-align:center;
height:50px;
line-height:50px;
width:200px;
font-size:20px;
background:#F30;} <div id="sy">你看我是不是超出了父块元素?</div>

所以这种方法用于网页的页眉或者页脚还是很不错的

  2.垂直居中-父元素高度确定的多行文本

    方法一:使用插入 table  (包括tbody、tr、td)标签,同时设置 vertical-align:middle。

        css 中有一个用于竖直居中的属性 vertical-align,在父元素设置此样式时,会对inline-block类型的子元素都有用。

        (td 标签默认情况下就默认设置了 vertical-align 为 middle,所以我们不需要显式地设置了。)

.jz{
height:200px;
    background:yellow;
} <table><tbody><tr><td class="jz">
<div>
<p>看我是否可以居中。</p>
<p>看我是否可以居中。</p>
<p>看我是否可以居中。</p>
<p>看我是否可以居中。</p>
<p>看我是否可以居中。</p>
</div>
</td></tr></tbody></table>

    方法2:通过设置父元素块为:display:table; 子元素为:display:table-cell;vertacal:middle;来让多行文本达到垂直居中效果(类似方法1)

        table:此元素会作为块级表格来显示(类似 <table>),表格前后带有换行符。

        table-cell : 此元素会作为一个表格单元格显示(类似 <td> 和 <th>)

例子1:

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>多行水平垂直居中</title>
<style type="text/css">
.no1{
display: table;
height: 300px;
border: 2px solid blue;
text-align: center;
}
.no2{ display: table-cell;
vertical-align: middle; } </style> </head>
<body>
<div class="no1">
<div class="no2">
<p>搞事情搞事情搞事情</p>
<p>要打架是不是?</p>
<p>一百块都不给我!</p>
</div> </div>
</body>
</html>

例子2:

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>多行垂直水平居中2</title>
<style type="text/css">
#no1{
display: table;
height: 300px;
border: 2px solid black;
text-align: center;
}
#no1 p{
font-size: 20px;
display: table-cell;
vertical-align: middle; }
</style>
</head>
<body>
<div id="no1">
<p>
搞事情搞事情搞事情<br>打架是不是?<br>一百块都不给我!
</p>
</div> </body>
</html>

  两个例子有不同,剩下的思考思考,动动脑子,总不会有坏处,思考留评论让我看看你们的想法哇

 

垂直居中小记 line-height table vertical-align:middle的更多相关文章

  1. What is Vertical Align?

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

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

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

  3. 关于Vertical Align的理解

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

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

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

  5. How to Take Control of Your Line Height in Outlook.com

    Reference to: http://www.emailonacid.com/blog/details/C13/line_height_and_outlook.com

  6. 深入了解css的行高Line Height属性

    什么是行间距? 古时候我们使用印刷机来出来文字.印刷出来的每个字,都位于独立的一个块中. 行间距,即传说中控制两行文字垂直距离的东东.在CSS中,line-height被用来控制行与行之间垂直距离. ...

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

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

  8. css 居中,中央

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

  9. 微信小程序中如何实现分页下拉加载?(附源码)

    转眼间坚持写教你微信小程序系列已经有十节系列课程了,每天的工作压力繁重,小女子也不知道自己还能坚持这样的系列教程多久.只希望每篇教程真的对大家有帮助.这节课我们要介绍的就是如何实现分页的下拉加载,我们 ...

随机推荐

  1. grunt 的安装和简单使用

    安装Grunt命令行 npm install -g grunt-cli 创建package.json,如果有package.json包,可以直接npm install加载依赖组件 npm init 安 ...

  2. solr6.5 的安装与配置

    运行环境: JDK:    1.8.0_131 Tomcat: 9.0.0.M21 Solr:      6.5.1 注:1.建议打开两个连接linux的窗口,一个负责 solr压缩目录,另外一个负责 ...

  3. MySQL 6.0安装图解

    MySQL 6.0安装图解 由于免费,MySQL数据库在项目中用的越来越广泛,而且它的安全性能也特别高,不亚于oracle这样的大型数据库软件.可以简单的说,在一些中小型的项目中,使用MySQL ,P ...

  4. CentOS7.3利用kubeadm安装kubernetes1.7.3完整版(官方文档填坑篇)

    安装前记: 近来容器对企业来说已经不是什么陌生的概念,Kubernetes作为Google开源的容器运行平台,受到了大家的热捧.搭建一套完整的kubernetes平台,也成为试用这套平台必须迈过的坎儿 ...

  5. 正则表达式(即:匹配模式Pattern)

    通过学习<正则表达式-Regular-Expression-Tutorial.pdf>这份文档,对正则表达式有了很好的了解,原因只有1个--这份文档写得太好了. 它的下载地址是:http: ...

  6. MAC下pyenv和pyenv-virtualenv插件初探

    为什么会使用pyenv和pyenv-virtualenv插件 一般mac自带一个python版本,称为系统版本.对于开发者而言,肯定不够用啦.所以需要在同一个mac上组建不同的开发环境并且不会冲突. ...

  7. jquery插件封装

    HTML <!DOCTYPE html> <html> <head> <title></title> <style> .page ...

  8. GC选择之串行收集与并行收集

    GC 串行收集器 (古老 稳定 会有较长时间停顿)-XX:+UseSerialGC 新生代.老年代串行回收,新生代复制算法.老年代标记-压缩算法 并行收集器 ParNew (多核时性能比较好) Ser ...

  9. 【Hadoop】 2.7.3版本 hdfs 命令行使用

    1.查看HDFS下目录结构及文件 dream361@ubuntu:~$ hdfs dfs -ls -R / 2.创建文件目录/tmp dream361@ubuntu:~$ hdfs dfs -mkdi ...

  10. 开发流程和Maven的配置

    按照何种开发模型? V模型:项目需求--->概要设计(功能模块) --->详细设计(页面的设计,数据库的设计) --->编码(框架的搭建,功能的实现)---->测试(单元测试, ...