div 溢出和 z-index
div overflow and z-index
请看下面fiddle:
https://jsfiddle.net/y7w705wb/20/
.row {
height: 25px;
width: 300px;
background-color: red;
overflow: visible;
border: 1px solid black;
position: absolute;
}
.modal {
width: 200px;
height: 100px;
background-color: yellow;
z-index: 10;
position: absolute;
left: 3px;
top: 3px;
}
<html>
<head>
</head>
<body>
<div class="row" style="transform: translateY(0px);">
Content
<div class="modal"></div>
</div>
<div class="row" style="transform: translateY(25px);">
Content
</div>
</body>
</html>
第二 div 行与我在第一行中创建的黄色 "modal popup" 重叠。我试图让黄色框与第二行重叠。我该如何存档?
我的先决条件是,我有一堆行,但在其中一些行中,我想显示一个包含信息的小弹出窗口 window。
此信息不应与后续行重叠。
这只是一个非常基本的例子来说明我的核心问题。
有什么想法吗?
Update:
我更新了我的 fiddle:
https://jsfiddle.net/y7w705wb/20/
The reason why I ask this question is, because I am using ag-grid as datatable in my app and want to display a modal inside one of the cells.
I cannot change the cell structure, so I really have to do it like in my fiddle example.
也许试试这个:
HTML 片段:
<html>
<head>
</head>
<body>
<div class="row-wrapper">
<div class="modal"></div>
<div class="row">
Content
</div>
<div class="row">
Content
</div>
</div>
</body>
</html>
CSS 片段:
.row {height: 25px; width: 300px; background-color: red; overflow: visible; border: 1px solid black;
position: relative;}
.modal {width: 200px; height: 100px; background-color: yellow; z-index: 10; position: absolute; left: 3px; top: 3px; }
工作fiddle:https://jsfiddle.net/74kmte2g/5/
模态 window 通常高于正常文档流。因此我不会把它放在其他元素中。
把它带到外面 .row
也解决了这个问题。
.row {
height: 25px;
width: 300px;
background-color: red;
overflow: visible;
border: 1px solid black;
z-index: 1;
position: relative;
}
.modal {
width: 200px;
height: 100px;
background-color: yellow;
z-index: 10;
position: absolute;
left: 3px;
top: 3px;
}
<div class="row">
Content
</div>
<div class="row">
Content
</div>
<div class="modal"></div>
从 .row class 中删除 z-index: 1。它应该工作正常。
您可以删除 z-index for .row class
.row {
height: 25px;
width: 300px;
background-color: red;
overflow: visible;
border: 1px solid black;
position: relative;
}
.modal {
width: 200px;
height: 100px;
background-color: yellow;
z-index: 10;
position: absolute;
left: 3px;
top: 3px;
}
<div class="row">
Content
<div class="modal"></div>
</div>
<div class="row">
Content
</div>
或
您也可以在 z-index 保持不变的情况下尝试此操作。
.row {
height: 25px;
width: 300px;
background-color: red;
overflow: visible;
z-index:1;
border: 1px solid black;
position: relative;
}
.modal {
width: 200px;
height: 100px;
background-color: yellow;
z-index: 10;
position: absolute;
left: 3px;
top: 3px;
}
<div class="row">
Content
</div>
<div class="row">
Content
</div>
<div class="modal"></div>
或者您还有其他解决此问题的方法:
.row div 是父级 div 所以给它相对位置和 z-index 第一个 div
.row {
height: 25px;
width: 300px;
background-color: red;
position:relative;
overflow: visible;
border: 1px solid black;
}
.modal {
width: 200px;
height: 100px;
background-color: yellow;
z-index: 10;
position: absolute;
left: 3px;
top: 3px;
}
<div class="row" style="transform: translateY(0px);z-index:1">
Content
<div class="modal"></div>
</div>
<div class="row" style="transform: translateY(25px);"> Content
</div>
试试这个
我刚转modal & second .row
.
这是工作代码
.row {
height: 25px;
width: 300px;
background-color: red;
overflow: visible;
border: 1px solid black;
position: absolute;
}
.modal {
width: 200px;
height: 100px;
background-color: yellow;
z-index: 10;
position: absolute;
left: 3px;
top: 3px;
}
<html>
<head>
</head>
<body>
<div class="row" style="transform: translateY(0px);">
Content
</div>
<div class="row" style="transform: translateY(25px);">
Content
</div>
<div class="modal"></div>
</body>
</html>
请看下面fiddle:
https://jsfiddle.net/y7w705wb/20/
.row {
height: 25px;
width: 300px;
background-color: red;
overflow: visible;
border: 1px solid black;
position: absolute;
}
.modal {
width: 200px;
height: 100px;
background-color: yellow;
z-index: 10;
position: absolute;
left: 3px;
top: 3px;
}
<html>
<head>
</head>
<body>
<div class="row" style="transform: translateY(0px);">
Content
<div class="modal"></div>
</div>
<div class="row" style="transform: translateY(25px);">
Content
</div>
</body>
</html>
第二 div 行与我在第一行中创建的黄色 "modal popup" 重叠。我试图让黄色框与第二行重叠。我该如何存档? 我的先决条件是,我有一堆行,但在其中一些行中,我想显示一个包含信息的小弹出窗口 window。 此信息不应与后续行重叠。
这只是一个非常基本的例子来说明我的核心问题。 有什么想法吗?
Update:
我更新了我的 fiddle:
https://jsfiddle.net/y7w705wb/20/
The reason why I ask this question is, because I am using ag-grid as datatable in my app and want to display a modal inside one of the cells.
I cannot change the cell structure, so I really have to do it like in my fiddle example.
也许试试这个:
HTML 片段:
<html>
<head>
</head>
<body>
<div class="row-wrapper">
<div class="modal"></div>
<div class="row">
Content
</div>
<div class="row">
Content
</div>
</div>
</body>
</html>
CSS 片段:
.row {height: 25px; width: 300px; background-color: red; overflow: visible; border: 1px solid black;
position: relative;}
.modal {width: 200px; height: 100px; background-color: yellow; z-index: 10; position: absolute; left: 3px; top: 3px; }
工作fiddle:https://jsfiddle.net/74kmte2g/5/
模态 window 通常高于正常文档流。因此我不会把它放在其他元素中。
把它带到外面 .row
也解决了这个问题。
.row {
height: 25px;
width: 300px;
background-color: red;
overflow: visible;
border: 1px solid black;
z-index: 1;
position: relative;
}
.modal {
width: 200px;
height: 100px;
background-color: yellow;
z-index: 10;
position: absolute;
left: 3px;
top: 3px;
}
<div class="row">
Content
</div>
<div class="row">
Content
</div>
<div class="modal"></div>
从 .row class 中删除 z-index: 1。它应该工作正常。
您可以删除 z-index for .row class
.row {
height: 25px;
width: 300px;
background-color: red;
overflow: visible;
border: 1px solid black;
position: relative;
}
.modal {
width: 200px;
height: 100px;
background-color: yellow;
z-index: 10;
position: absolute;
left: 3px;
top: 3px;
}
<div class="row">
Content
<div class="modal"></div>
</div>
<div class="row">
Content
</div>
或 您也可以在 z-index 保持不变的情况下尝试此操作。
.row {
height: 25px;
width: 300px;
background-color: red;
overflow: visible;
z-index:1;
border: 1px solid black;
position: relative;
}
.modal {
width: 200px;
height: 100px;
background-color: yellow;
z-index: 10;
position: absolute;
left: 3px;
top: 3px;
}
<div class="row">
Content
</div>
<div class="row">
Content
</div>
<div class="modal"></div>
或者您还有其他解决此问题的方法:
.row div 是父级 div 所以给它相对位置和 z-index 第一个 div
.row {
height: 25px;
width: 300px;
background-color: red;
position:relative;
overflow: visible;
border: 1px solid black;
}
.modal {
width: 200px;
height: 100px;
background-color: yellow;
z-index: 10;
position: absolute;
left: 3px;
top: 3px;
}
<div class="row" style="transform: translateY(0px);z-index:1">
Content
<div class="modal"></div>
</div>
<div class="row" style="transform: translateY(25px);"> Content
</div>
试试这个
我刚转modal & second .row
.
这是工作代码
.row {
height: 25px;
width: 300px;
background-color: red;
overflow: visible;
border: 1px solid black;
position: absolute;
}
.modal {
width: 200px;
height: 100px;
background-color: yellow;
z-index: 10;
position: absolute;
left: 3px;
top: 3px;
}
<html>
<head>
</head>
<body>
<div class="row" style="transform: translateY(0px);">
Content
</div>
<div class="row" style="transform: translateY(25px);">
Content
</div>
<div class="modal"></div>
</body>
</html>