【问题标题】:Pseudo-elements :before and :after vertical position伪元素 :before 和 :after 垂直位置
【发布时间】:2014-02-20 12:09:33
【问题描述】:

我试图在<h2> 中垂直定位:before:after 伪元素。

每个都放置在float:left 橙色列中,紧挨着另一个包含<p>float:left 列。

我想在<h2> 的顶部和底部有一个细边框。

问题是:如果<p> float 列中包含的文本比<h2> 长,则<h2> 的底部边框位于文本列的底部,而不是位于底部<h2> 列。

由于我的“英语不太好”,我做了一个小提琴:http://jsfiddle.net/vcH4T/

我真的很纠结这个:(

提前感谢您的帮助! 卡米尔

【问题讨论】:

  • 你有你想要做什么的形象吗?至少您必须将position:relative 添加到h2

标签: css layout absolute pseudo-element


【解决方案1】:

我想在<h2>的顶部和底部有一个细边框。

像这样:

JSFiddle

CSS /* 通用 h2 */

h2 {
    font-size:1.1em;
    line-height: 20px;
    background-color: #d8713c;
    border-radius: 4px;
    text-align: center;
    color: #fff;
    padding: 20px 10px;
    position:relative;
}

h2::before, h2::after {
    content:"";
    position: absolute;
    left:50%;
    width: 10%; /* anything you like */
    margin-left:-5%; /* 50% of width */
    height: 0px;
    border-bottom: 3px solid #efbe94;
}

h2::before {
      top: 7%;  
}

h2::after {
    bottom: 7%;

}

【讨论】:

  • 是的!这绝对是我想要的 :) 而且,你是对的:<h2>position:relative 不见了……嗯……非常感谢!!!