16

伪元素未显示在 div 上。我正在使用精灵图像,但我也尝试了非精灵图像,但没有。我尝试了多种策略,例如定位绝对、使用 z-index、边距等。如果我没有弄错或者显然我做错了什么,我似乎做对了。我是社区的新手,在这里和谷歌都搜索过,但没有结果显示它为什么没有显示。代码如下,这是最基本的尝试。感谢所有花时间提供帮助的人。

.test {
    display:inline-block;
    background:#fff;
    width:60%;
}

.test:before,
.test:after {
     background:url("/imgs/Sprite2.png") repeat-y;
}

.test:before,
.test:after {
    position:relative;
    display:inline-block;
    vertical-align:top;
    width:27px;
    height:100%;
}

.test:before {
    content:"";
    background-position:0 0;
}

.test:after {
    content:"";
    background-position:-55px 0;
}

我现在让它工作了。代码如下。我可以发誓我已经试过了,但我第一次做的时候肯定做错了什么。

 .test {
     background:#fff;
     width:60%;margin:0  0 60px 5%;
 }

 .test:before,
 .test:after {
     content:"";
     background:url("/imgs/Sprite2.png") repeat-y;
     position:absolute;
     top:0;
     width:27px;
     height:100%;
 }

 .test:before {
     right:100%;
     background-position:0 0;
 }

 .test:after {
     left:100%;
     background-position:-55px 0;
 }   
4

3 回答 3

10

编辑:

这是中height:100%;提到的一个问题.test:before,.test:after

你需要提到height:100%to .testand for htmland bodyalso,

请参阅下面的 CSS 建议更改:

试试这个:

body, html { height: 100%; }

.test{ 
    display:inline-block; 
    background:#fff; 
    width:60%;
    height: 100%; /*added height*/
}

.test:before,
.test:after{
    content:"";
    background:url("/imgs/Sprite2.png") repeat-y;
    position:relative;
    display:inline-block;
    vertical-align:top;
    width:27px;
    height:100%;   
}

.test:before{ background-position:0 0 }
.test:after{ background-position:-55px 0 } 

工作演示

于 2012-09-24T06:29:28.377 回答
3

这是正确的答案,因为我从未表明我使用按钮回答了它。我只是把它放在顶部,认为它会被认为是已回答。基本上我一定是第一次在某个地方做错了什么。希望这对遇到类似地雷问题的人有所帮助。

.test {
    background: #fff;
    width: 60%;
    margin: 0 0 60px 5%
}

.test:before, .test:after {
    content: "";
    background: url("/imgs/Sprite2.png") repeat-y;
    position: absolute;
    top: 0;
    width: 27px;
    height: 100%
}

.test:before {
    right: 100%;
    background-position: 0 0
}

.test:after {
    left: 100%;
    background-position: -55px 0
}
于 2012-09-28T13:17:14.303 回答
2

似乎问题在于您的 css 属性未正确声明/排列。从我所看到的,您首先声明了您的背景图像,但内容是最后用background-position声明的。

我在 Glyphicon 字体上遇到了我自己的问题,直到我实现了 keaukraine 提到的关于声明显示属性的内容之前没有显示。

但有时人们往往会忘记声明将导致预期结果消失的内容属性。

所以应该这样安排:

element:before {
  content: "\e013"; // or content: ""
  background:url("background_image.png");
  background-position: 0 0;
  display: inline-block;
}
于 2016-11-04T14:06:07.240 回答