<div style="vertical-align: middle; height: 100px; background: #00CC99"> 如何让文字垂直居中,二不管此处有几行<div>问题1:像上面有个高100px的div块,里面动态放置从数据库里读出来的文本内容,但是不知道文本内容有多长,也不知道有几行(因为不知道有几行,所以不能设置style的line-height属性)。那么,如何让读出的文本在垂直方向上垂直居中显示呢? 问题2:如果文本内容超出了行高100px,那么右边出现一个换动块,如何设置?设置dispaly的属性吗?
注:问题1在网上搜了半天都没答案,最一般的解答是设置line-height的高度,但这样解决不了不只一行的问题,请问高手该怎么办呢?

解决方案 »

  1.   

    在<div ><table>...</table></div>中加入表格,设置表格格式就可以垂直显示了。 另外设置<div>的样式增加一项 overflow:auto; 就可以在右边出现一个换动块了。
      

  2.   

    请问楼上的,不用表格,只用DIV能搞定吗
      

  3.   

    如果用表格就又回到以前的排版时代了,难道DIV就做不了这写工作吗?
      

  4.   

    css中关于文本垂直对齐的就只有这个vertical-align。
    不要太刻意去要求了,看得人只看效果。不看是用的div还是table
      

  5.   

    你这个问题的说法不成立,既然字数不定,div高度定死,当文字多的时候,div内容就溢出了.你可以试试.
    这——是个不可达的想法!
      

  6.   

    楼上的,你说的很多,正因为内容溢出,所以右边才需要滑动条,把溢出的内容通过拉动显示出来。这个问题2楼已经解决了,只是问题1,到现在还没解决,难道非要通过表格去实现吗?
    我一直在想为什么表格的vertical-align可以居中,DIV就不可以呢?
      

  7.   

    DIV中只能用MARGIN或PADDING来实现
      

  8.   

    div高度定一下,然后在设置vertical-align试一下
      

  9.   

    楼上的,问题的DIV已经给出了高度height: 100px,但是还是不行
      

  10.   

    http://hi.baidu.com/magbox520/blog/item/8acd42b5ebb188cb37d3ca33.html
    用BAIDU啊
    什么都有啊
    这叫什么难题啊
    真是的
      

  11.   


    以前的排版时代是div与table各按所长,灵活地使用的,没有偏废哪一个。你什么时候听说过有人说“只许用table而不许用div”的?实际上,倒是出现了那些人在炒作“web 2.0”概念时实在找不出别的理由炒作为标志性概念,搞出了那样一种“规则”拼命推销。稍微有点常识的人想一想,如果div本身(无需用户写expression等表达式)可以智能的自动计算内部嵌入的div或者其它元素对象的尺寸然后才显示,它不就是在模仿table嘛?换句话说,div如果只是在口头上想去取代table而不提供相同功能,那么那种观念只会给人带来更弱的功能。
      

  12.   

    div含义就是只完成部分table功能。table如果你写死了width和height样式而不需要自动排版,就跟div一样速度快。当你用代码去写出跟table类似的自动排版功能,那个用div来取带table的当初的目的、好处早已经不存在了。
      

  13.   

    请楼主设计DIV的padding属性值:也就是相应的左右上下内边距(文字距离DIV边框的距离,默认用空白填充):如:padding-left: 20px;
    padding-right/top/bottom
      

  14.   

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