我有這個按鈕,點擊時顯示一個彈出。CSS:水平位置彈出所需位置
彈出窗口是一個div
元素,開頭爲display:none
。點擊按鈕後,我設置display:block
顯示彈出窗口。
彈出窗口的垂直位置正好;在調用按鈕上方。但是,我無法將向下箭頭(語音氣泡?)置於調用按鈕中央的位置。
- 這可以用CSS來完成嗎?
- 我也可以使用javascript解決方案,只要我不必拉入依賴關係即可。
- 我很喜歡改變HTML的結構。我有的約束是彈出和按鈕都必須在同一個容器中。按鈕可以放置在這個容器的任何地方。
也許一些代碼將有助於:
HTML:
<div id="container">
<input type="button" id="myButton" value="Click Me!">
<div class="sf-su-response sf-popup-panel popup">
Sorry, I don't know :(
</div>
</div>
CSS:
#container {
position: relative;
top: 150px;
left: 50px;
width: 300px;
text-align: right;
background: tomato;
}
.sf-popup-panel {
display: none;
position: absolute;
background-color: white;
border: 1px solid #ccc;
width: 200px;
}
.sf-popup-panel.popup {
top: auto;
right: 0;
bottom: 100%;
left: auto;
}
.sf-popup-panel.open {
display: block;
}
.sf-popup-panel.popup.open:before {
position: absolute;
display: block;
content: " ";
border: 14px solid transparent;
border-top-color: #ccc;
top: 100%;
right: auto;
left: 50%;
width: 0px;
margin-left: -1px;
}
.sf-popup-panel.open:after {
position: absolute;
display: block;
content: " ";
border: 13px solid transparent;
border-top-color: white;
top: 100%;
right: auto;
left: 50%;
width: 0px;
}
.sf-su-response {
padding: 15px;
}
的JavaScript:
$('#myButton').click(function(){
$(".sf-su-response").toggleClass("open");
});
的jsfiddle
編輯: 從答案來看,到目前爲止,也許,我的問題不是很清楚。
基本上按鈕可以放在父div的任何位置。在設計時我無法對它的位置做出假設。因此,在設計時將right
或left
設置爲特定值的解決方案對我無效。
當然,如果我可以以某種方式指定相對於按鈕定位該彈出窗口,將會起什麼作用呢?但是,我不知道該怎麼:(
EDIT2
這就是我得到:
這就是我想要的:
感謝您的時間。巧合的是,我發佈了同樣的解決方案,因爲我發佈了:)好,我不必接受我自己的答案。 –
大聲笑....很高興聽到你明白了:) – Bmoeller