水平用text-align可以设置举重,但垂直设置却不起作用,怎么办?

解决方案 »

  1.   

    楼主你的概念有点混淆,你是要div自己布局居中,还是要div内的内容居中?
    对于前者,水平居中可以设置margin:0 auto;垂直居中没有直接的办法,只有两个div嵌套,设置外层的div的vertical-align:middle;
    对于后者,水平居中设置text-align:center;垂直居中就是上面提到的vertical-align:middle。
      

  2.   

    加个div或这再嵌套table进行排版
      

  3.   

    我是楼主,我想说的是让DIV里面的文字垂直居中。比如有一个高200,宽200的DIV, 文字就显示在这个正方形正中心的位置。但是设置CSS的vertical-align:middle并不起作用。在网上查资料-----结果是CSS对于高度不明的文本无法确定其垂直居中,解决的办法是,设定行高和DIV的高度一样,也就是line-height: 200px就可以垂直居中了。但是这样一来,假如文字是从数据库中读出来的,可能是1行,也可能是10行,那怎么办?同样的道理,设置padding也是如此,文字无法自动适应而填充满整个DIV的。对于表格,我们只要设置valign="middle",大家知道内容就可以自动向上移动,但总体还是垂直举重的。什么才是最完美的解决办法呢?
      

  4.   

    DIV+CSS方式,按css规范的解释
    垂直居中是对于一个格式化后的行来讲的居中,比如说同一行内有文字,有图片,有其它inline块,只能相对于图片,其它inline块居中;
    一个文本段在呈现的时候根据外边框的宽度,可能被格式化成好几行显示,每个呈现的行各自实现自己的居中的样式因此纯CSS是没法实现一个文本块的整体居中在行高度不明确的时候是没法垂直居中的---就算是给了行高度也要所有的文本呈现的时候在同一行内,且行高等于外面DIV的高度才行尽量避免垂直居中这样的方式吧
      

  5.   

    这个垂直居中的问题已经解决了!对于非标准的浏览器,比如IE6,就得用3个DIV嵌套,先放在50%处,再向外拉出本身高度的50%才可以。对于标准的浏览器,可以使用DIV用table方式显示,就可以了。