【问题标题】:Aligning divs in <td> to top of <td>将 <td> 中的 div 对齐到 <td> 的顶部
【发布时间】:2017-11-17 04:38:02
【问题描述】:

更新:添加 jsfiddle:http://jsfiddle.net/WgzgF/11/

我有一张桌子,上面有一堆&lt;td&gt;。每个 td 都有一个 div .tdcont,它就像是该 td 中所有内容的包装器。在.tdcont 中,我有两组div .alwaystop.below-at

<td class="table-td">
   <div class="tdcont">
      <div class="alwaystop">           
         <div class="at1">at1</div>
         <div class="at2">at2</div>
         <div class="at3">at3</div>
      </div>            
      <div class="below-at">
         <div class="bat1">bat1</div>
         <div class="bat2">bat2</div>
         <div class="bat3">bat3</div>
      </div>
   </div>
</td>

我遇到的问题是 alwaystop 应该将自己与单元格的顶部边框对齐,而 below-at 应该像这样位于它的正下方

_____________________________________________________
at1 at2 at3       | at1 at2 at3     | at1 at2 at3    |
bat1 bat2 bat3    | bat1 bat2 bat3  | bat1 bat2 bat3 |
small image here  | big image here  |                |
                  | is taking lots  |                |
                  | of space        |                |
__________________|_________________|________________|      

我发现alwaystopbelow-at 垂直居中,就像你在这个小提琴http://jsfiddle.net/WgzgF/11/ 中看到的那样,所以如果这一行中的相邻单元格之一很长,alwaystop 将自己居中到这一行的像这样的高度

_____________________________________________________
                  | at1 at2 at3     |                |
                  | bat1 bat2 bat3  |                |
at1 at2 at3       | big image here  | at1 at2 at3    |
bat1 bat2 bat3    | is taking lots  | bat1 bat2 bat3 |
small image here  | of space        |                |
__________________|_________________|________________|      

我想要做的是让alwaystop 总是从单元格的顶部开始,而不管相邻单元格的高度如何,然后below-at 在它下面。我该怎么做?

我应该补充一点,alwaystop 的内容是向左浮动的,below-at 的内容也是如此,所以它们应该是 td 内的 2 行。

.at1, .at2, .at3{ 
   float:left; 
}
.bat1, .bat2, .bat3{ 
   float:left; 
}

alwaystop 和 below-at 的 css 是空的。我尝试了一大堆东西,比如垂直对齐和绝对定位,但没有任何效果,我只是放弃并删除了它们。

.alwaystop{ 
}
.below-at{
}

【问题讨论】:

  • 你试图在表格中显示为 div 但看起来仍然像表格的东西是什么?
  • 你能提供 .alwaystop 和 .below-at 的 CSS 吗?
  • 您是否尝试过 display:table-cell 或 display:table-row 或该系列的任何东西?
  • 是的,请发布您的 CSS 的其余部分。我们的鼻子不太好。

标签: html css html-table


【解决方案1】:

试试这个:

.table-td {
    border: 1px solid red;
    vertical-align: top;
}

【讨论】:

  • 我认为垂直对齐取决于父对象 display: inline; ?在表格中,必须对齐内容,而不是单元格,还是我错了?
  • 嗯,它正在工作。在这里查看:jsfiddle.net/WgzgF/254。不过你可能是对的,我不确定。
  • 编辑: valign = vertical-align,不要与 &lt;tr valign="top"&gt; 混淆,因为从 HTML5 开始,这不再是有效的 HTML。建议使用 CSS 以实现前向兼容性。
【解决方案2】:

我已经证明了 @Damien 在 cmets 中的建议:

http://jsfiddle.net/AnrietteC/WgzgF/

如果我理解正确的话,它似乎正在做你想做的事。

【讨论】:

猜你喜欢
相关资源
最近更新 更多
热门标签