创建一个带有箭头的框 CSS3 问题



我正在尝试在气泡的右侧创建一个箭头10px by 10px,但我看不到它。 到目前为止,我有:

.CSS:

.pageHelp{
    float:right;
    margin:10px 20px 0 0;
    width:85px;
    height:25px;
    background-color:#354E69;
    border-radius:3px;
}
.pageHelp:before{
    content:"";
    position:absolute;
    right:100%;
    top:26px;
    width:0;
    height:0;
    border-top:13px solid transparent;
    border-right:26px solid #354E69;
    border-top:13px solid transparent;
}

.HTML:

<div class="pageHelp"><p>In Page Help</p></div>

路易斯:

.pageHelp{
    float:right;
    margin:10px 20px 0 0;
    width:85px;
    height:25px;
    background-color:#354E69;
    border-radius:3px;
    position: relative;
}
.pageHelp:after, .pageHelp:before {
    left: 100%;
    border: solid transparent;
    content: " ";
    height: 0;
    width: 0;
    position: absolute;
    pointer-events: none;
}
.pageHelp:after {
    border-left-color: #354E69;
    border-width: 10px;
    top: 50%;
    margin-top: -10px;
}
.pageHelp:before {
    border-left-color: ##354E69;
    border-width: 16px;
    top: 50%;
    margin-top: -16px;
}

你可以尝试使用这个友好的css-arrow-maker-help。

您需要

指定

position: relative;

.pageHelp类上;否则,:before内容上的position: absolute不引用它。

您还必须指定两次border-top;我认为其中之一应该是border-bottom.

如果你修复了这两个,那么你至少应该能够看到div旁边的三角形。

这里的工作模型:http://jsfiddle.net/Nzazm/

也许这会有所帮助: http://jsfiddle.net/EkaMc/

第一件事是向.pageHelp添加position:relative

.pageHelp{
    [...]
    position:relative;
}

这将有助于将箭头相对于气泡定位

然后对于您的伪元素,我建议您首先使用 content:" " .我在尝试设置没有任何内容的伪元素样式时运气不好,我不确定为什么。也许更有经验的用户可以帮助澄清。

.pageHelp:before{
    [...]
    content:" ";
}

设置箭头样式right:100%会将其撞到气泡的左端。另外,如果您不设置position:relative;,您的箭头将被强制退出页面。

.pageHelp:before{
    content:" ";
    position:absolute;
    right:-23px;
    top:6px;
    width:0;
    height:0;
    border-top:7px solid transparent;
    border-left:13px solid #354E69;
    border-bottom:7px solid transparent;
    border-right:13px solid transparent;
}​

您可以围绕边框大小进行游戏,看看什么适合您。

最新更新