我有following CSS ...
.border:before{
content: "";
color:black;
border-left:10px solid black;
height:90%;
}
.border{
display:flex;
}
如果我移除显示器flex我看到边框,但是,当我添加显示器flex时它会消失。基本上看边缘只有div的高度的90%。
答案 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;
或者,您可以将边框添加到.border
本身,而不是使用伪元素。
/* 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;