當showModal()
打開時,<dialog>
標籤將顯示它與其結束標籤之間的元素,同時禁用頁面上的所有其他元素。我的問題是:是否有可能爲特定元素重寫此行爲?例如:是否可以在不是其父項的<dialog>標籤上放置div?
HTML:
<div id="container">
<dialog id="myDialog">
<button id="close" type="reset">Close</button>
<button id="create">Add Element</button>
</dialog>
</div>
<menu>
<button id="openButton">Open Dialog</button>
</menu>
CSS:
.new-element {
width: 50px;
height: 50px;
border: 3px solid black;
background-color: blue;
position: fixed;
top: 50%;
}
JS:
const container = document.getElementById('container');
const openButton = document.getElementById('openButton');
const closeButton = document.getElementById('close');
const createButton = document.getElementById('create');
const myDialog = document.getElementById('myDialog');
openButton.addEventListener('click', function() {
myDialog.showModal();
});
closeButton.addEventListener('click', function() {
myDialog.close();
});
createButton.addEventListener('click', function() {
const div = document.createElement('div');
div.classList.add('new-element')
container.appendChild(div);
});
在的jsfiddle:https://jsfiddle.net/y7bkxvd4/
我想找到一種方法定位對話框頂部的藍色正方形。我意識到將新的div添加到對話框本身會容易得多,但是在溢出問題和使用反應入口模塊的情況下,我遇到了這個問題。如果不可能,很酷,我可以跟在後面。但如果是這樣,我想知道。
z-index
顯然沒有效果。
通過「之上」你的意思是覆蓋? – TylerH
@TylerH正確。覆蓋,在上面,等等。本質上是一個更高的'z-索引'將會做什麼。 –
這聽起來像你需要另一個DIV將佔據其中''