急,问个css的text排列问题?

来源:百度知道 编辑:UC知道 时间:2024/07/07 21:36:02
急,问个css的text排列问题?
<html>
<head>
<title></title>
<style>
body{
text-align:center;
}
div{
border:1px solid black;
background:red;
width:620px;
height:300px;
}
</style>
</head>
<body>
<div>123</div>
<table border=1 width=620px >
<tr><td>123</td></tr>
</table>
</body>
</html>

在body中设置了text-align:center后,就是说body里的所有内容居中,

div块会居中,table会居中,

问题是为什么div中的123文字也会居中,什么毛病?而table中的123文字不会居中?

你的问题里包含了几大标准问题,你既然要用css,那就要考虑标准,以适应不同浏览器。

1.页面没有引用标准规则,例如,<!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">,你要想做div+css就必须在一定的规则下制作,否则就会有问题。所以这段必须要有。

2.text-align:center;是在没有标准规则情况下让网页所有部分在页面居中的一种写法,因为你定义了所有的内容居中,这些内容也包含了文字,如果你要将文字居左,那你就要在div里定义text-align:left;而且text-align:center; 是火狐不支持的,也就是说在火狐下,你的页面内容全是默认居左显示的,所以这种布局结构建议不要用,已经过时而是麻烦。正确的写法是引用标准规则,定义div属性margin:0 auto;,这样div就会在所有浏览器下都居中,而body里的text-align:center; 不用写。

3.为什么table里文字没有居中,因为table有自身的默认属性,他的标签是有实际意义的,例如th就是表头,表头的样式你不用定义就自动是加粗居中,td是单元格,它默认就是文字居左。而div是没有实际意义的标签,他只会继承。

4.table居中直接用<table align="center">就可以做到table的页