源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
查看: 568|回复: 20

[CSS/HTML] css实现文字垂直居中的代码第1/2页

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2008-1-7 14:40:51 | 显示全部楼层 |阅读模式
css实现文字垂直居中的代码 CSS中怎样设置才能使对象中的文字垂直居中于对象,这个问题也是捆扰很多朋友的难题。现在网上的很多代码都做不到浏览器兼容。我把网上有关的方法整理了一下,做了些改动,完全可以兼容各主流浏览器。
下面具体说一下在不同情况下垂直居中的方法。
一、一行文字垂直居中
看一下下面的代码:
复制代码 代码如下:
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>脚本之家-css垂直居中</title>
<script type="text/javascript" language="javascript">
function sel(id) {switch(id) {case "1":document.getElementById("sub").style.lineHeight = "normal";break;case "2":document.getElementById("sub").style.lineHeight = "20px";break;case "3":document.getElementById("sub").style.lineHeight = "28px";break;}}
</script>
<style type="text/css">
#all {
  width:240px;
  padding:10px;
  font-size:12px;
  color:#FFF;
  background-color:#CCC;
}
#sub {
  width:230px;
  padding:0 5px;
  height:20px;
  overflow:hidden;
  background-color:#F90;
}
#sel {
  margin-top:5px;
}
select {
  width:260px;
}
</style>
</head>

<body>
<div id="all">
<div id="sub">一行文字垂直居中,此对象高度为20px</div>
</div>
<div id="sel"><select onchange="sel(this.value)"><option value="1">默认值,设置行高为:normal</option><option value="2">设置行高和对象高度相同:20px</option><option value="3">设置行高比对象的高度大:28px</option></select></div>
</body>
</html>

方法:line-height:20px。设置相同的行高和对象高度。

说明:这种设置简单又兼容各种浏览器,支持内联对象。但如果是固定高度的对象,只能显示一行。当有两行文字时,如果不设置“overflow:hidden”会把对象撑开。
二、多行文字,且高度自适应
请看下面的代码:

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
方法:padding-top:10px; padding-bottom:10px。设置相同的上下内边距。

说明:兼容各种浏览器,支持内联对象,同时又支持非文本对象,如img。但有一个缺点就是对象的高度不能固定。
css实现文字垂直居中的代码
三、固定高度的多行文字垂直居中

这种方法比较复杂,我也会详细说明的。下面还是先看代码:

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
方法:

(1)vertical-align:middle; display:table-cell。这种方法的意思是:将对象强制转换为Table,vertical-align:middle的作用和表格中的valign="center"相同。

本来是很方便的一个属性,但IE不支持这个属性。为了使各浏览器兼容,我们不得不想其他的方法。

(2)在对象内建立一个子对象,并在子对象内再建立一个子对象或段落。网页中:

<div id="a"><div><p>这里具有多行文字,高度是50px这里具有多行文字,高度是50px</p></div></div>

CSS中:

p {margin:0;}:因为在FireFox中默认P是有间距的

#a {height:50px;position:relative;}:设置高度50,如果要是子对象相对它定位,则要设置position:relative

#a div {*position:absolute;*top:50%;}:前面加星号“*”只有IE支持,其他浏览器会忽略此设置。position:absolute设置了此子对象的定位为绝对定位,top:50%设置了显示在距顶端50%的位置,即25px(因为上面设置了父对象的高度为50px)。

#a div p {*position:relative;*top:-50%;}:这段代码只能先理解为向上移动剩下高度的50%。因为top设置了负值,相当于向相反的方向移动。

说明:支持主流浏览器(在IE6,FireFox2下测试)。
css实现文字垂直居中的代码 CSS中怎样设置才能使对象中的文字垂直居中于对象,这个问题也是捆扰很多朋友的难题。现在网上的很多代码都做不到浏览器兼容。我把网上有关的方法整理了一下,做了些改动,完全可以兼容各主流浏览器。
下面具体说一下在不同情况下垂直居中的方法。
一、一行文字垂直居中
看一下下面的代码:
复制代码 代码如下:
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>脚本之家-css垂直居中</title>
<script type="text/javascript" language="javascript">
function sel(id) {switch(id) {case "1":document.getElementById("sub").style.lineHeight = "normal";break;case "2":document.getElementById("sub").style.lineHeight = "20px";break;case "3":document.getElementById("sub").style.lineHeight = "28px";break;}}
</script>
<style type="text/css">
#all {
  width:240px;
  padding:10px;
  font-size:12px;
  color:#FFF;
  background-color:#CCC;
}
#sub {
  width:230px;
  padding:0 5px;
  height:20px;
  overflow:hidden;
  background-color:#F90;
}
#sel {
  margin-top:5px;
}
select {
  width:260px;
}
</style>
</head>

<body>
<div id="all">
<div id="sub">一行文字垂直居中,此对象高度为20px</div>
</div>
<div id="sel"><select onchange="sel(this.value)"><option value="1">默认值,设置行高为:normal</option><option value="2">设置行高和对象高度相同:20px</option><option value="3">设置行高比对象的高度大:28px</option></select></div>
</body>
</html>

方法:line-height:20px。设置相同的行高和对象高度。

说明:这种设置简单又兼容各种浏览器,支持内联对象。但如果是固定高度的对象,只能显示一行。当有两行文字时,如果不设置“overflow:hidden”会把对象撑开。
二、多行文字,且高度自适应
请看下面的代码:

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
方法:padding-top:10px; padding-bottom:10px。设置相同的上下内边距。

说明:兼容各种浏览器,支持内联对象,同时又支持非文本对象,如img。但有一个缺点就是对象的高度不能固定。

三、固定高度的多行文字垂直居中

这种方法比较复杂,我也会详细说明的。下面还是先看代码:

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
方法:

(1)vertical-align:middle; display:table-cell。这种方法的意思是:将对象强制转换为Table,vertical-align:middle的作用和表格中的valign="center"相同。

本来是很方便的一个属性,但IE不支持这个属性。为了使各浏览器兼容,我们不得不想其他的方法。

(2)在对象内建立一个子对象,并在子对象内再建立一个子对象或段落。网页中:

<div id="a"><div><p>这里具有多行文字,高度是50px这里具有多行文字,高度是50px</p></div></div>

CSS中:

p {margin:0;}:因为在FireFox中默认P是有间距的

#a {height:50px;position:relative;}:设置高度50,如果要是子对象相对它定位,则要设置position:relative

#a div {*position:absolute;*top:50%;}:前面加星号“*”只有IE支持,其他浏览器会忽略此设置。position:absolute设置了此子对象的定位为绝对定位,top:50%设置了显示在距顶端50%的位置,即25px(因为上面设置了父对象的高度为50px)。

#a div p {*position:relative;*top:-50%;}:这段代码只能先理解为向上移动剩下高度的50%。因为top设置了负值,相当于向相反的方向移动。

说明:支持主流浏览器(在IE6,FireFox2下测试)。
回复

使用道具 举报

1

主题

2万

回帖

176

积分

注册会员

Rank: 2

积分
176
发表于 2022-9-12 00:26:56 | 显示全部楼层
额头额定法国队是范德萨
回复 支持 反对

使用道具 举报

6

主题

2万

回帖

425

积分

中级会员

Rank: 3Rank: 3

积分
425
发表于 2022-12-19 17:39:38 | 显示全部楼层
老衲笑纳了
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-2-15 21:58:33 | 显示全部楼层
刷刷刷刷刷刷刷刷刷刷刷刷刷刷刷
回复 支持 反对

使用道具 举报

2

主题

2万

回帖

499

积分

中级会员

Rank: 3Rank: 3

积分
499
发表于 2023-2-23 08:10:56 | 显示全部楼层
撒房产税陈飞飞
回复 支持 反对

使用道具 举报

1

主题

1万

回帖

93

积分

注册会员

Rank: 2

积分
93
发表于 2023-6-28 00:05:43 | 显示全部楼层
管灌灌灌灌灌灌灌灌灌灌
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-7-18 04:56:40 | 显示全部楼层
看看怎么样再说
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-11-17 19:30:00 | 显示全部楼层
儿飞飞微风DVD谁vdsvd
回复 支持 反对

使用道具 举报

1

主题

1万

回帖

51

积分

注册会员

Rank: 2

积分
51
发表于 2023-11-18 09:41:34 | 显示全部楼层
下载来瞧瞧
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-11-28 20:31:07 | 显示全部楼层
来看看!!!
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2024-11-27 12:19 , Processed in 0.081940 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表