在标记上方创建一个InfoBox窗口,并将存根放在正确的位置
Creating a InfoBox window above a marker with the stub in the correct place
我一直在使用InfoBox文档和本文,试图让InfoBox看起来与标准InfoWindow几乎相同,以此作为一些细微的外观更改的起点。
正如您在这个小提琴中看到的,将InfoBox连接到标记的"存根"仍然位于InfoBox的顶部。
我曾尝试在boxStyle
参数中使用backgroundPosition
(第一次打开fiddle时已注释掉),如下所示,但它不起作用。
boxStyle: {
backgroundImage: "url('https://directory.fsf.org/w/extensions/SemanticDrilldown/skins/down-arrow.png')",
backgroundRepeat: "no-repeat",
/*backgroundPosition: "center bottom",*/
opacity: 0.75,
width: "280px"
},
如何将存根向下移动到底部中心而不是左上角?
将其与:after
选择器一起添加到信息框中。像这个
#infobox:after{
content: "";
position: absolute;
bottom: -15px;
left: 125px;
border-width: 15px 15px 0;
border-style: solid;
border-color: #333 transparent;
display: block;
width: 0;
}
参见演示
附言:我没有从你的JS中删除旧的。这就是为什么你会在屏幕上看到它。
按照OP要求的支持文件
有大量关于CSS选择器的文档,特别是:before
和:after
选择器。其中一些,可能还有最基本的信息,可以在w3schools中找到。
SmashingMagazine也有更多详细的信息和这个概念的有用性。
通过用选择器破解元素,您还可以根据行为进行样式设置。如:hover
、:focus
、:active
、:inactive
、:empty
和:blank
实际的三角形是通过使用边框绘制一个小矩形并剪裁边框的一侧来构建的。请参阅有关如何构建CSS三角形的CSS技巧中的此链接。
至于选择:before
或:after
,对于应该使用哪一个没有明确的解释。根据您使用的是哪一个,您必须相应地重新定位。在某些特定的情况下,例如通过CSS选择器添加一个字体很棒的图标,如果它要在它所附加的元素之前,则将其添加到:before
选择器中是有意义的,或者如果它要继续元素而不是,则使用:after
选择器。
您需要在.infoBox
上设置背景位置,并在#infobox
上将margin-top
更改为margin-bottom
。
.infoBox {
background-position: center bottom;
}
#infobox {
margin-bottom: 8px;
}
请参阅更新的fiddle
- jquery试图按名称获取按钮位置
- 我可以获得相对于被点击元素的确切点击位置吗
- 谷歌地图固定位置覆盖
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 循环比赛位置算法
- es6 相当于下划线查找位置
- jQuery循环在特定位置暂停
- 引导程序:在导航栏中,显示悬停在单个位置的基于Li Link的不同内容
- 自定义函数中的光标位置
- 安卓平台上的QWebView HTML5地理位置
- DIV并排,位置不正确
- 使用jQuery更改元素的顶部位置
- 在谷歌地图上绘制位置数据库
- 跟踪jqplot垂直折线图的鼠标位置
- 设置画布渲染器的x和y位置
- 固定位置菜单时滚动,直到它击中一个相对容器的底部
- 根据页面的位置突出显示文本中的字符
- 未调用 Sinon 存根
- 传单缩放控制位置错误
- 在标记上方创建一个InfoBox窗口,并将存根放在正确的位置