为什么我在使用flexbox时没有看到:before border

时间:2015-03-04 19:01:42

标签: css css3 flexbox

我有following CSS ...

.border:before{
    content: "";
    color:black;
    border-left:10px solid black;
    height:90%;

}
.border{
  display:flex;
}

如果我移除显示器flex我看到边框,但是,当我添加显示器flex时它会消失。基本上看边缘只有div的高度的90%。

1 个答案:

答案 0 :(得分:2)

问题:

原因是您没有在height上指定.border::before伪元素在height中声明了%。由于.border没有特定的height,因此伪元素的height设置为0


解决方案:

height或伪元素上指定.border



/* Styles go here */
.border:before{
    content: "";
    color:black;
    border-left:10px solid black;
    height:90%;
    
}
.border{
  display:flex;
  height:42px;
}

<!DOCTYPE html>
<html>

  <head>
    <link rel="stylesheet" href="style.css">
    <script src="script.js"></script>
  </head>

  <body>
    <h1 class="border">Hello Plunker!</h1>
  </body>

</html>
&#13;
&#13;
&#13;

enter image description here


替代解决方案

或者,您可以将边框添加到.border本身,而不是使用伪元素。

&#13;
&#13;
/* Styles go here */
.border{
  display:flex;
  border-left:10px solid black;
}
&#13;
<!DOCTYPE html>
<html>

  <head>
    <link rel="stylesheet" href="style.css">
    <script src="script.js"></script>
  </head>

  <body>
    <h1 class="border">Hello Plunker!</h1>
  </body>

</html>
&#13;
&#13;
&#13;

enter image description here