css - 在特定单元格的嵌套 flex 容器(3x3 网格)内添加覆盖 div

标签 css html flexbox

我有一个带有 flexbox 概念的 3x3 网格,在每个单元格内部都有另一个 3x3 网格。

我试图在一个单元格的内部网格上放置一个 Overlay,但我没有找到如何做。

我找到了一些这样的例子 Overlay / hover a div in flexbox container div 但它在嵌套的 flex-box 中不起作用,或者我不知道如何设置它们。

这里是 html,网格只有两个单元格占用更少的空间,它实际上是用 JQuery 完成的,但对于这个例子,我们只使用 2 个。

    	.Region{
    		position: absolute;
    		top: 10px;
    		left: 10px;
    		width: 500px;
    		height: 500px;
    		border: 5px double black;
    		display: flex;
    	}
    	
    	.FlexContainer{
    		display: flex;
    		flex-direction: column;
    		flex-grow: 1;
    	}
    	
    		.FlexContainer > div{
    			flex-grow: 1;
    			flex-basis: 0;
    			border: 3px solid blue;
    			display: flex;
    			flex-direction: row;
    			margin: 5px;
    		}
    		
    			.FlexContainer > div > div{
    				flex-grow: 1;
    				flex-basis: 0;
    				border: 1px solid red;
    				margin: 3px;
    				display:flex;
    				flex-direction: row;
    			}
    			
    	.Overlay{
    		position: absolute;
    		width: 100%;
    		height: 100%;
    		background-color: rgba(013, 130, 230, 0.5);
    		cursor: not-allowed;
    	}
 <div class="Region">
    	<div class="FlexContainer">
    		<div>
    			<div>
    				<div class="FlexContainer">
    					<div>
    						<div></div>
    						<div></div>
    						<div></div>
    					</div>
    					<div>
    						<div></div>
    						<div></div>
    						<div></div>
    					</div>
    					<div>
    						<div></div>
    						<div></div>
    						<div></div>
    					</div>
    				</div>
    			</div>
    			<div></div>
    			<div></div>
    		</div>
    		<div>
    			<div></div>
    			<div></div>
    			<div></div>
    		</div>
    		<div>
    			<div>
    				<div class="FlexContainer">
    				<div class="Overlay"></div>
    					<div>
    						<div>
    						</div>
    						<div></div>
    						<div></div>
    					</div>
    					<div>
    						<div></div>
    						<div></div>
    						<div></div>
    					</div>
    					<div>
    						<div></div>
    						<div></div>
    						<div></div>
    					</div>
    				</div>
    			</div>
    			<div></div>
    			<div></div>
    		</div>
    	</div>
    </div>

我已经尝试在 Inner FlexContainer 内部和外部使用 Overlay,但没有成功。

最佳答案

终于让它工作了,确实父容器必须有相对位置才能工作,所以有两个变化,一个在 FlexContainer 中,另一个在 Overlay

.FlexContainer{
    position:relative; <-- ADD THIS
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.FlexContainer .Overlay {
    position: absolute;
    top: 0px;
    left: 0px;
    margin: 0px;
    border: 0px;
    width: 100%;
    height: 100%;
    background-color: rgba(013, 130, 230, 0.5);
    cursor: not-allowed;
}

代码笔解决方案 https://codepen.io/anon/pen/dKaXqg

来自 css-tricks 网站的用户 Pogany 的致谢 CSS-TRICKS 主题:https://css-tricks.com/forums/topic/add-and-overlay-div-in-nested-flex-box-container/#post-273437

关于css - 在特定单元格的嵌套 flex 容器(3x3 网格)内添加覆盖 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50992090/

相关文章:

javascript - 如何将 2 个 flex block 与 HTML 和 CSS 分开?

jquery - 尝试在动态表单上设置焦点输入标签的样式

css - xaringan:减少输入和输出之间的垂直空间?

html - 当我的内容设置css overflow时,div下滑

javascript - jQuery 在 div 上滚动

css - 布局 : "flex: 1" is being ignored 的 Ember.js 和 flexbox 问题

performance - translate3d 使用 css3 动画效果更好吗?

Jquery stickfooter 问题

html - 滚动条未完全显示 Div 中的值

html - Flexbox 垂直对齐不起作用