【问题标题】:Css vertical-align for spans inside div have height autodiv内跨度的CSS垂直对齐具有自动高度
【发布时间】:2015-06-04 15:35:12
【问题描述】:

我的 css 有问题。
我在其中有一个 div 和 3 列 span、h3 和 span。
我要:
div {height: auto} //根据h3中的内容自动改变
h3 {height: auto} //这个高度会随着内容的变化而变化。
跨度{垂直对齐:中间}

<div>
   <span>span 1</span>
   <h3>text</h3>
   <span>span 2</span>
</div>

请帮我设计它的样式。 谢谢。

【问题讨论】:

  • 你做了什么来解决这个问题?好像你想让我们回答你的作业什么的......
  • 为什么这个标签是“javascript”?
  • @Todd,我认为,人们使用“javascript”也许使用 Css。所以给您带来不便,很抱歉。

标签: javascript jquery html css


【解决方案1】:

div > * {
  display: table-cell;
  vertical-align: middle;
  border: 1px solid red;
}
h3 {
  font-size: 30px;
  height:200px;
}
<div>
  <span>span 1</span>
  <h3>text <br />text</h3>
  <span>span 2</span>
</div>

【讨论】:

  • 嗨 @MonteCristo,我可以为 h3 标签设置 min-height 和 vertical-align,我尝试了,但它不起作用?
  • @Sophia 不,你不能默认单元格最小高度是内容的高度......它的行为就像一个表格单元格......但是,你可以设置“高度”这将影响单元格的高度...我已经为您更新了...
  • w3.org/TR/CSS21/tables.html#height-layout > "在 CSS 2.1 中,单元格的高度是内容所需的最小高度。表格单元格的 'height' 属性可以影响行的高度(见上文) ,但不会增加单元格框的高度。”
【解决方案2】:

简单...使用这个。

div {height: 200px;}
span, h3 {
  display: inline-block;
  position: relative;
  top: 50%;
  transform: translateY(-50%);
    margin: 0;
}
<div>
   <span>span 1</span>
   <h3>text</h3>
   <span>span 2</span>
</div>

【讨论】:

  • 这会使span 相互重叠吗?
  • 不,它为什么要那样做?如果他们绝对定位它会。
  • 大声笑对我不好。出于某种原因,我认为它们都是堆叠的块级元素。
  • 没问题,如果 OP 放置一些使用过的 css 会有所帮助,但它确实说列。
  • 目前,我有 3 个标签是 3 行,我需要将它们更改为 3 列,然后当 h3 的高度发生变化时,span 的内容总是垂直对齐。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-21
  • 2018-04-16
  • 1970-01-01
  • 2011-07-21
  • 2013-02-25
相关资源
最近更新 更多