1

我有一个 Span 标签,其中包含一个 IMG 标签和另一个 Span 标签。我希望内部 Span 标签向左对齐,IMG 标签居中对齐,而且我希望两个标签都在中间垂直对齐,但我似乎无法做到这一点......

这就是它的外观(它是蓝色的,因为在 FireBug 中标记了外部 Span 标签以显示它正在拉伸整个表面):

在此处输入图像描述

正如您在图像中看到的,两个标签都居中,并且它们也在容器的顶部对齐,我不想要这两个。

这是标记:

在此处输入图像描述

这是标签的当前 CSS:

.v-button-wrap {
    height: 100%;
    display: block;
    padding: 6px 15px 0 9px;
    vertical-align: middle;
    line-height: normal;
    text-align: center;
}

.v-icon {
    margin-left: auto;
    margin-right: auto;
    vertical-align: middle;
    line-height: normal;
    text-align: center;
}

.v-button-caption {
    text-align: left;
    line-height: normal;
    vertical-align: middle;
}

我遗漏了与我的问题、颜色、字体规格等无关的 CSS。不用说我不是 CSS 的王牌。我查看了几个涵盖该问题的指南,但我只设法找到了 div 的全部内容居中的示例,这不是我想要的。

有良好的 CSS 知识的人是否在我的代码中看到了问题?或者有另一种解决方案来解决我的问题..?

谢谢!

编辑:根据要求,这是整个布局的屏幕截图。对不起,我不得不模糊一些东西......但它们在任何一种情况下都不重要。=)

在此处输入图像描述

EDIT2:我确实设法使用以下CSS解决了我的问题:

.v-button-details-panel-header .v-button-wrap {
    height: 100%;
    text-align: inherit;
    padding: 0px;
}

.v-button-details-panel-header .v-button-wrap .v-button-caption {
    display: table-cell;
    position: relative;
    text-align: left;
}

.v-button-details-panel-header .v-button-wrap .v-icon {
    display: table-cell;
    position: relative;
    top: 12px;
    margin-left: auto;
    margin-right: auto;
}

我确信dgvid提出的建议对静态布局很有用。但是由于面板和水平拉伸的按钮会根据展开和折叠而移动,这不是一个合适的解决方案。

4

1 回答 1

1

您可能需要将displayimg 和 span.v_button_caption 的 CSS 属性设置为inline-block.

另请参阅本文:了解垂直对齐或“如何(不)垂直居中内容”

至于实现所需结果的另一种技术:如果您知道容器元素的高度并且知道要居中的元素的高度(不幸的是,从您发布的 CSS 来看,您似乎没有这样做),那么你可以

  1. 给容器元素 CSS 属性 `position: relative'
  2. 赋予元素居中 CSS 属性position: absolute
  3. 将待居中元素的 CSStop属性设置为 (containerHeight / 2) - (centeredEltHeight / 2)。
于 2011-12-02T15:24:11.247 回答