我正在尝试在我的内容DIV旁边显示一个箭头。
它应该与此类似 -
我的问题是当我向DIV添加内容时,我无法将箭头保持在内容DIV的垂直中心。
这是我的HTML和CSS
<div id="mybox">
<p></p>
</div>
#mybox {
width:200px;
min-height:100px;
background-color:green;
position:relative;
}
#mybox:after {
content:"";
border-top: 20px solid transparent;
border-bottom: 20px solid transparent;
position: absolute;
border-left: 20px solid #f00;
width: 0;
height: 0;
right: -20px;
top: 20px;
}
有谁能告诉我如何解决这个问题?
谢谢。
答案 0 :(得分:5)
由于箭头的高度已知,您可以使用top
值50%
,然后使用负margin-top
来取代箭头的高度:
Example Here - 现在适用于动态内容。
#mybox:after {
content:"";
border-top: 20px solid transparent;
border-bottom: 20px solid transparent;
position: absolute;
border-left: 20px solid #f00;
width: 0;
height: 0;
right: -20px;
top: 50%;
margin-top: -20px;
}
或者,如果箭头的高度未知,则可以使用以下代码:
#mybox:after {
/* Other properties.. */
top: 50%;
-webkit-transform: translate(0, -50%);
transform: translate(0, -50%);
}
答案 1 :(得分:2)
答案 2 :(得分:0)
在使用双向完成div之前显示箭头,您可以创建两个div,也可以使用div {/ 1}}或:before
以此为例
:after
.arrow-up {
width: 0;
height: 0;
border-left: 10px solid transparent;
border-right: 10px solid transparent;
border-bottom: 10px solid #f3f300;
margin-left: 60px;
transform: translateX(-50%);
-webkit-transform: translate(-50%);
}
.big-reward {
background-color: #faf300;
padding: 10px;
text-align: justify;
width: 100px;
margin-left: 0;
color: #e21111;
}
嘿,还要查看jsfiddle link