实现css文字垂直居中的8种方法

来源:脚本之家  责任编辑:小易  

你设一下字体行高为30px就行了,line-height:30px。 CSS(层叠样式表)是一种用来表现HTML或XML等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。有三种方法可以在站点网页上使用样式

注:以下demo都只是针对现代浏览器所做,未兼容低版本的IE以及其他非主流浏览器。

实现css文字垂直居中的8种方法如下:

1.使用绝对定位和负外边距对块级元素进行垂直居中

需要准备的材料分别有:电脑、html编辑器、浏览器。 1、首先,打开html编辑器,新建一个html文件,例如:index.html,填充问题基础代码。 2、在index.html中的标签中,将“.shoucang .sc_ul li”中的“height: 73px;”调整为:height: 73px;padding-

css垂直居中效果:

1 对于单行文字,可以将行高设置为元素高度 2 对于图像,可以设置vertical-align: middle; 3 对于块元素,可以利用position和margin 4 对于元素,可以利用display:table与table-cell改变元素类型,再进行元素水平垂直居中 5 使用CSS3的calc的属

css垂直居中实现代码:

CSS中百分比高度的div中单行文字垂直居中实现方法: 1、css代码: .table { width:100%; height:100%; position:absolute; display:table;}.cell { display:table-cell; vertical-align:middle; width:100%; height:100%:} 2、html代码: Hello,

这个方法兼容性不错,但是有一个小缺点:必须提前知道被居中块级元素的尺寸,否则无法准确实现垂直居中。

2.使用绝对定位和transform

如果垂直居中的元素高度已知,这个比较简单,也不需要额外的辅助元素 参考下列HTML代码: i'm Mr. zzllrr. 如果居中元素高度可变,这就需要额外的一个wrapper元素,用table-cell的方式来模拟表格的居中实现 具体请参考下列代码: i'm Mr. zzllrr

代码如下:

机动车道又不是用来给人暴走的,凭什么要给暴走团让路?就是机动车行驶的道路。一般而言,机动车道所属区域在道路的中间。给暴走团让路的行为,本身涉嫌违法。毫无疑问,法律应该具有权威性,法律条款也是刚性的,该一是一,该二是二,不能有弹性。这不同于对违法犯罪人员的处罚,可以根据违法犯罪情节的不同,做出或重或轻的处罚。这是因为,《中华人民共和国道路交通安全法》(以下简称《交通安全法》)第三十六条规定,“根据道路条件和通行需要,道路划分为机动车道、非机动车道和人行道的,机动车、非机动车、行人实行分道通行。没有划分机动车道、非机动车道和人行道的,机动车在道路中间通行,非机动车和行人在道路两侧通行。”第六十一条

这种方法非常明显的好处就是不必提前知道被居中的元素的尺寸,因为transform中偏移的百分比就是相对于元素自身的尺寸而言。

3.绝对定位结合margin:auto

如今网上的U盘启动制作工具多的数不胜数,很多新手们都不知道该选择哪款U盘启动制作工具。因此,今天小编就为大家整理了一份关于U盘启动盘制作兼容性比较好的。1、u深度软件u深度制作U盘启动安装系统,支持ISO格式和GHO格式系统格式,内含Win8PE,直接进入PE安装即可,内部已集成针对电脑的自动判断和处理。2、u启动软件u启动是针对普通用户与技术人员使用的一款U盘工具,,但是功能却很强大,u启动官网提供u盘启动盘制作工具下载.U盘装XP系统软件,可以一键完成安装系统。3、大番薯大番薯U盘启动盘制作工具拥有最方便的制作方式、最大最强的硬件兼容性,并且适用于各类U盘启动。u启动U盘启动盘制作工具实现

这种方式的两个核心是:把要垂直居中的元素相对于父元素绝对定位,top和bottom设置为相等的值,我这里设置成0了,当然也可以设置为99999px或者-99999px,无论什么,只要两者相等就行。这一一步做完之后再将要居中的元素的margin设为auto,这样就可以实现垂直居中了。

IDM是一款很著名的下载器,可以多线程下载,可以免费试用三十天,我提供绿色版(获取方式在文末)。借助这个下载器在配合油猴脚本下载获得比较快的速度,仅限电脑客户端使用。-----绿色版IDM的安装----下载并解压文件(下载方式在文末),由于是免安装版本,不需要单独安装及激活,纯小白也可以使用。将文件复制到你的常用安装目录,打开文件夹,双击绿化.bat即可完成安装以及激活,同时自动创建快捷方式。与官方原版不同的是,本绿化版本改进如下:打开软件,输入文件的URL之后即可进行多线程下载。-----油猴脚本的安装以及使用-----说到油猴脚本,不得不提谷歌家的浏览器,或者说是一个小型的操作系统,功能很

被居中元素的宽度也可以不设置,但是不设置的话,就必须是图片这种自身就包含尺寸的元素,否则无法实现。

4.使用padding实现子元素的垂直居中

蝉蛹从地里拱出来没有脱壳,我们这里叫做“马婆婆”,等脱了壳变作了蝉我们这里叫做“马知了”……至于为什么这么叫我也不知道,只是一辈辈传下来的,约定俗成,我们也就这么叫了。我们这里如今的“马婆婆”已经不多了,一是水泥地面积在迅速扩大,极大影响了“马婆婆”从土地里拱出来的几率;二是从我记事起这几十年来每年夏季的夜里总有许多孩子拿着手电在寻找“马婆婆”,特别是我们小时候“逮马婆婆”是每个暑假夜里的一个重要的节目。那时候的收获是很大的,有的能逮一小编织袋,有的逮一洗脸盆,大都是炒吃了……据说蝉卵变成蛹在土壤里要经过漫长的四年光景,这样的生态节奏怎能经得起人们那么毁灭性的捉拿,食用呢?前几年城里有些饭店还

这种方式非常简单,就是给父元素设置相等的上下内边距,则子元素自然是垂直居中的,自然这个时候父元素是不能设置高度的,要让它自动被填充起来,除非设置了一个正好等于上内边距+子元素高度+下内边距的值,否则无法精确地垂直居中。

这种方式看似没有什么技术含量,但其实在某种场景下也是非常好用的。

5.使用flex布局

flex布局(弹性布局/伸缩布局)里门道颇多,这里先针对用到的东西简单说一下,想深入学习的小伙伴可以去看阮一峰老师的博客。

flex也就是flexible,意思为灵活的,柔韧的,易弯曲的。

元素可以通过设置display:flex;将其指定为flex布局的容器,指定好了容器之后再为其添加align-items属性,该属性定义项目在交叉轴(这里是纵向周)上的对齐方式,可能的取值有五种,分别如下:

flex-start:交叉轴的起点对齐;flex-end:交叉轴的重点对齐;

center:交叉轴的重点对齐;baseline项目第一行文字的基线对齐;

strech(该值是默认值):如果项目没有设置高度或者设置为auto,那么将占满整个容器的高度。

6.弹性布局

这种方式也是给父元素设置display:flex,设置好之后改变主轴的flex-direction:column,该属性可能的取值有四个,分别如下:

row(该值为默认值):主轴为水平方向,起点在左端;

row-reverse,主轴是水平方向,起点在有端;

column主轴为垂直方向,起点在上沿;

column-reverse:主轴为垂直方向,起点在下沿。

justify-content属性定义了项目在主轴上的对齐方式,可能取的值有五个,分别如下(不过具体的对齐方式与主轴的方向有关,以下的值都是假设主轴为从左到右的):

flex-staart(该值是默认值):左对齐;

flex-end:右对齐;

center:居中对齐;

space-between:两端对齐,各个项目之间的间隔均对齐;

space-around:各个项目两侧的间隔相等。

7.还有一种在前面已经见到过很多次的方式就是使用line-height对单行文本进行垂直居中

这里有一个小坑需要大家注意:line-height(行高)的值不能设为100%;我们来看看官网文档中给出的关于line-height取值为百分比时候的描述:基于当前字体尺寸的百分比行间距,所以大家就明白了,如果是百分比是相对于字体尺寸来讲的。

8.使用display和vertical-align对容器里的文字进行垂直居中

这里关于vertical-align啰嗦两句:vertical-align属性只对拥有valign特性的html元素起作用,例如表格元素中的<td><th>等等,而像<div><span>这样的元素是不行的。

valign属性规定单元格中内容的垂直排列方式,语法:<tdvalign="value">,value的可能取值有四种:

top:对内容进行上对齐

middle:对内容进行居中对齐

bottom:对内容进行下对齐

baseline:基线对齐

关于baseline值:基线是一条虚构的线。在一行文本中,大多数字母以基线为基准。baseline值设置行中的所有表格数据都分享相同的基线。该值的效果常常与bottom值相同。不过,如果文本的字号各不相同,那么baseline的效果会更好。

更多关于CSS垂直居中的方法大家可以参考本文下面的相关文章或者咨询我们的小编

扩展阅读,根据您访问的内容系统为您准备了以下内容,希望对您有帮助。

DIV+CSS如何让文字垂直居中?

在说到这个问题的时候,也许有人会问CSS中不是有vertical-align属性来设置垂直居中的吗?即使是某些浏览器不支持我只需做少许的CSS Hack技术就可以啊!所以在这里我还要啰嗦两句,CSS中的确是有vertical-align属性,但是它只对(X)HTML元素中拥有valign特性的元素才生效,例如表格元素中的<td>、<th>、<caption>等,而像<div>、<span>这样的元素是没有valign特性的,因此使用vertical-align对它们不起作用。

CSS网页布局DIV水平居中的各种方法

一、单行垂直居中

如果一个容器中只有一行文字,对它实现居中相对比较简单,我们只需要设置它的实际高度height和所在行的高度line-height相等即可。如:

imoker.cn(爱摩客)提供的代码片段:

div {

height:25px;

line-height:25px;

overflow:hidden;

}

这段代码很简单,后面使用overflow:hidden的设置是为了防止内容超出容器或者产生自动换行,这样就达不到垂直居中效果了。

imoker.cn(爱摩客)提供的代码片段:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title> 单行文字实现垂直居中 </title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<style type="text/css">

body { font-size:12px;font-family:tahoma;}

div {

height:25px;

line-height:25px;

border:1px solid #FF0099;

background-color:#FFCCFF;

}

</style>

</head>

<body>

<div>现在我们要使这段文字垂直居中显示!</div>

</body>

</html>

不过在Internet Explorer 6及以下版本中,这和方法不支持对图片设置垂直居中。

二、多行未知高度文字的垂直居中

如果一段内容,它的高度是可变的那么我们就可以使用上一节讲到的实现水平居中时使用到的最后一种方法,就是设定Padding,使上下的padding值相同即可。同样的,这也是一种“看起来”的垂直居中方式,它只不过是使文字把<div>完全填充的一种方式而已。可以使用类似下面的代码:

imoker.cn(爱摩客)提供的代码片段:

div {

padding:25px;

}

这种方法的优点就是它可以在任何浏览器上运行,并且代码很简单,只不过这种方法应用的前提就是容器的高度必须是可伸缩的。

imoker.cn(爱摩客)提供的代码片段:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title> 多行文字实现垂直居中 </title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<style type="text/css">

body { font-size:12px;font-family:tahoma;}

div {

padding:25px;

border:1px solid #FF0099;

background-color:#FFCCFF;

width:760px;

}

</style>

</head>

<body>

<div><pre>现在我们要使这段文字垂直居中显示!

div {

padding:25px;

border:1px solid #FF0099;

background-color:#FFCCFF;

}

</pre></div>

</body>

</html>

三、多行文本固定高度的居中

在本文的一开始,我们已经说过CSS中的vertical-align属性只会对拥有valign特性的(X)HTML标签起作用,但是在CSS中还有一个display属性能够模拟<table>,所以我们可以使用这个属性来让<div>模拟<table>就可以使用vertical-align了。注意,display:table和display:table-cell的使用方法,前者必须设置在父元素上,后者必须设置在子元素上,因此我们要为需要定位的文本再增加一个<div>元素:

imoker.cn(爱摩客)提供的代码片段:

div#wrap {

height:400px;

display:table;

}

div#content {

vertical-align:middle;

display:table-cell;

border:1px solid #FF0099;

background-color:#FFCCFF;

width:760px;

}

imoker.cn(爱摩客)提供的代码片段:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title> 多行文字实现垂直居中 </title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<style type="text/css">

body { font-size:12px;font-family:tahoma;}

div#wrap {

height:400px;

display:table;

}

div#content {

vertical-align:middle;

display:table-cell;

border:1px solid #FF0099;

background-color:#FFCCFF;

width:760px;

}

</style>

</head>

<body>

<div id="wrap">

<div id="content"><pre>现在我们要使这段文字垂直居中显示!

div#wrap {

height:400px;

display:table;

}

div#content {

vertical-align:middle;

display:table-cell;

border:1px solid #FF0099;

background-color:#FFCCFF;

width:760px;

}

</pre></div>

</div>

</body>

</html>

这个方法应该是很理想了,但是不幸的是Internet Explorer 6 并不能正确地理解display:table和display:table-cell,因此这种方法在Internet Explorer 6及以下的版本中是无效的。嗯,这让人很郁闷!不过我们还其它的办法。

四、在Internet Explorer中的解决方案

在Internet Explorer 6及以下版本中,在高度的计算上存在着缺陷的。在Internet Explorer 6中对父元素进行定位后,如果再对子元素进行百分比计算时,计算的基础似乎是有继承性的(如果定位的数值是绝对数值没有这个问题,但是使用百分比计算的基础将不再是该元素的高度,而从父元素继承来的定位高度)。例如,我们有下面这样一个(X)HTML代码段:

imoker.cn(爱摩客)提供的代码片段:

<div id="wrap">

<div id="subwrap">

<div id="content">

</div>

</div>

</div>

如果我们对subwrap进行了绝对定位,那么content也会继承了这个属性,虽然它不会在页面中马上显示出来,但是如果再对content进行相对定位的时候,你使用的100%分比将不再是content原有的高度。例如,我们设定了subwrap的position为40%,我们如果想使content的上边缘和wrap重合的话就必须设置top:-80%;那么,如果我们设定subwrap的top:50%的话,我们必须使用100%才能使content回到原来的位置上去,但是如果我们把content也设置50%呢?那么它就正好垂直居中了。所以我们可以使用这中方法来实现Internet Explorer 6中的垂直居中:

imoker.cn(爱摩客)提供的代码片段:

div#wrap {

border:1px solid #FF0099;

background-color:#FFCCFF;

width:760px;

height:400px;

position:relative;

}

div#subwrap {

position:absolute;

border:1px solid #000;

top:50%;

}

div#content {

border:1px solid #000;

position:relative;

top:-50%;

}

当然,这段代码只能在Internet Exlporer 6等计算存在问题的浏览器中才会有作用。(不过我不解,我查阅了很多文章,不知道是因为出处相同还是什么原因,似乎很多人都不愿意去解释Internet Exlporer 6中这个Bug的原理,我也只是了解了一点皮毛,还要再研究)

imoker.cn(爱摩客)提供的代码片段:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title> 多行文字实现垂直居中 </title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<style type="text/css">

body { font-size:12px;font-family:tahoma;}

div#wrap {

border:1px solid #FF0099;

background-color:#FFCCFF;

width:760px;

height:400px;

position:relative;

}

div#subwrap {

position:absolute;

top:50%;

}

div#content {

position:relative;

top:-50%;

}

</style>

</head>

<body>

<div id="wrap">

<div id="subwrap">

<div id="content"><pre>现在我们要使这段文字垂直居中显示!

div#wrap {

border:1px solid #FF0099;

background-color:#FFCCFF;

width:760px;

height:500px;

position:relative;

}

div#subwrap {

position:absolute;

border:1px solid #000;

top:50%;

}

div#content {

border:1px solid #000;

position:relative;

top:-50%;

}

</pre></div>

</div>

</div>

</body>

</html>

五、完美的解决方案

那么我们综合上面两种方法就可以得到一个完美的解决方案,不过这要用到CSS hack的知识。对于如果使用CSS Hack来区分浏览器,你可以参考这篇“简单CSS hack:区分IE6、IE7、IE8、Firefox、Opera”:

imoker.cn(爱摩客)提供的代码片段:

div#wrap {

display:table;

border:1px solid #FF0099;

background-color:#FFCCFF;

width:760px;

height:400px;

_position:relative;

overflow:hidden;

}

div#subwrap {

vertical-align:middle;

display:table-cell;

_position:absolute;

_top:50%;

}

div#content {

_position:relative;

_top:-50%;

}

至此,一个完美的居中方案就产生了。

imoker.cn(爱摩客)提供的代码片段:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title> 多行文字实现垂直居中 </title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<style type="text/css">

body { font-size:12px;font-family:tahoma;}

div#wrap {

display:table;

border:1px solid #FF0099;

background-color:#FFCCFF;

width:760px;

height:400px;

_position:relative;

overflow:hidden;

}

div#subwrap {

vertical-align:middle;

display:table-cell;

_position:absolute;

_top:50%;

}

div#content {

_position:relative;

_top:-50%;

}

</style>

</head>

<body>

<div id="wrap">

<div id="subwrap">

<div id="content"><pre>现在我们要使这段文字垂直居中显示!

div#wrap {

border:1px solid #FF0099;

background-color:#FFCCFF;

width:760px;

height:500px;

position:relative;

}

div#subwrap {

position:absolute;

border:1px solid #000;

top:50%;

}

div#content {

border:1px solid #000;

position:relative;

top:-50%;

}

</pre></div>

</div>

</div>

</body>

</html>

p.s. 垂直居中vertical-align的值是middle,而水平居中align的值是center,虽然同是居中但关键字不同。

参考资料:http://www.imoker.cn/Article/ShowArticle.asp?ArticleID=185

如何使文字在div中水平和垂直居中的css代码,<div>水平垂直居中</div>

一个比较简单的方法就是这样:

你们假设你的DIV是高度100PX,宽度是1000PX,那你这样写,你的文字就会水平垂直居中:

<div style="width:1000px; height:100px; text-align:center; line-height:100px; border:blue solid 1px;">

水平垂直居中

</div>

CSS是这样的,text-align:center意思就是说,让这个DIV里的文字水平居中,而line-height:100px;的意思是说,让DIV里面的每一行文字,占的高度为100PX(和那个DIV的高度一样),这样,文字就垂直居中了。也就是说,如果你的DIV是200PX高,那你就让line-height:200px;文字就会垂直居中了。

不知道说明白没有。不行,你再HI我好了。

css实现垂直居中的几种方式

  1. 单行文本:height:40px;line-height:40px;

  2. 不知道区域块的高度:position:absolute;top:50%;left:0;transform:translate(0,-50%);

  3. 知道区域块的高度(margin-top是高度的一半):position:absolute;top:50%;height:20px;margin-top:-10px;

本回答被网友采纳

DIV+CSS如何让文字垂直居中?。。

如果文字只有一行,可以设置容器高度和行高一样height:30px; line-height:30px;

如果文字不确定,也可以用表格,表格里的td是可以让里面的行内元素垂直居中的

如果不想用表格,也可以用display:table-cell;属性,display:table-cell属性指让标签元素以表格单元格的形式呈现,类似于td标签,但是IE6/7不能识别。

CSS:

.td{ width:200px; height:200px; border:1px solid #000; display:table-cell; vertical-align:middle;}

HTML:

<div class="td"> 哈哈哈哈哈哈哈哈哈哈哈哈哈好哈哈哈哈哈哈哈哈哈我垂直居中啦</div>

如何使文字在div中水平和垂直居中的css代码

可以用“text-align”属性和“line-height”属性。

1、新建html文件,在body标签中添加div标签,在div标签输入文字,这里以“演示文本”为例,给div标签设置宽度、高度和背景色属性,属性值分别为200、100和灰色,这时“演示文本”默认位置为div盒子的左上方:

2、这时给div标签添加上“text-align”属性,属性值为“center”,这时文字将会在div容器中水平居中:

3、这时给div标签添加行高“ling-height”属性,属性值为高度的值“100px”,再添加“vertical-align”属性,属性值为“middle”,这时文字将会水平垂直都居中:


  • 本文相关:
  • js+css设置img在div中只显示img垂直居中的部分
  • js+css 图片等比缩小并垂直居中实现代码
  • css支持标准的图片垂直居中
  • css list grid layout 图片垂直居中
  • 用css实现图片垂直居中的使用技巧
  • css实现文字垂直居中的代码
  • css解决未知高度垂直居中的问题
  • css解决未知高度垂直居中
  • 完美实现css垂直居中的11种方法
  • web标准网页布局中尽量不要使用的html标签
  • firefox下rowspan+border+border-collapse的bug
  • div+css实现的滑动门菜单特效代码
  • meta标签详解
  • css不用图片美化按钮
  • css渐变文本效果的两种方法比较
  • div的dispaly:inline样式 和span的区别
  • 一个新的css菜单代码
  • css position: absolute、relative详解
  • 用css实现图片垂直居中的使用技巧
  • DIV+CSS如何让文字垂直居中?
  • 如何使文字在div中水平和垂直居中的css代码,<div>...
  • css实现垂直居中的几种方式
  • DIV+CSS如何让文字垂直居中?。。
  • 如何使文字在div中水平和垂直居中的css代码
  • CSS label中的文字垂直居中,有简单代码。
  • DIV+CSS LI里面怎么让垂直的文字垂直居中?
  • html+css有哪几种常见的设置垂直居中的方法
  • CSS中百分比高度的div中单行文字垂直居中,怎么实现?
  • DIV CSS如何让文字垂直居中?
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved