我有这个div结构:
<div id="outer-div">
<div id="first-div"></div>
<div id="cell-icon">anFAicon</div>
</div>
和风格:
#outer-div {
height:80px;
width:100px;
border: 1px solid red;
}
#first-div {
width:50%;
height:100%;
border-right: 2px solid #619e38
}
#cell-icon {
border:1px solid blue;
position: absolute;
top: 50%;
}
这将输出:
见这里:https://codepen.io/neptune01/pen/RZgwvd
我需要的是:
我想将div单元格图标放在外部div的中间,而不是其他div。尝试绝对位置,但它不起作用,如上所示。
答案 0 :(得分:4)
#outer-div {
height:80px;
width:100px;
border: 1px solid red;
position: relative;
}
#first-div {
width:50%;
height:100%;
border-right: 2px solid #619e38
}
#cell-icon {
border:1px solid blue;
position: absolute;
top: 50%;
left: 50%;
transform:translate(-50%, -50%);
background-color: #fff;
z-index:1;
}
<div id="outer-div">
<div id="first-div"></div>
<div id="cell-icon">anFAicon</div>
</div>
首先,我向您的position: relative
CSS添加了#outer-div
。这样,当您稍后使用绝对定位时,元素被约束在#outer-div
容器内,而不是主体(元素相对于最接近的父元素,位置值为absolute
或{ {1}})。
然后,我只是将relative
添加到left: 50%
元素,将其向左移动50%,然后将#cell-icon
移至move the div into the exact centre。
最后,我添加了transform:translate(-50%, -50%)
白色background-color
z-index
1
(如评论部分所示),将#cell-icon
元素置于其他两个元素之上div(如图所示)。
答案 1 :(得分:1)
.cell-icon
移动的原因是因为您需要将position: relative
放在其父元素(#outer-div
)上。见下文:
#outer-div {
height:80px;
width:100px;
border: 1px solid red;
position: relative;
}
答案 2 :(得分:1)
您可以使用pseudo selector :before and :after
在div之间绘制line
,将position:relative
添加到父div,#outer-div
这里相对于父position:absolute
元素格。
#outer-div {
height: 80px;
width: 100px;
border: 1px solid red;
position: relative;
overflow: hidden;
}
#first-div {
width: 50%;
height: 100%;
}
#cell-icon {
border: 1px solid blue;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
#outer-div:before {
content: "";
position: absolute;
width: 2px;
height: 75%;
background: green;
top: 0;
left: 50%;
transform: translate(-50%, -50%);
}
#outer-div:after {
content: "";
position: absolute;
width: 2px;
height: 75%;
background: green;
bottom: -75%;
left: 50%;
transform: translate(-50%, -50%);
}
<div id="outer-div">
<div id="first-div"></div>
<div id="cell-icon">anFAicon</div>
</div>
答案 3 :(得分:1)
如果我理解你正在尝试正确做什么,那么我认为使用CSS是不可能的,同时保持子元素定位绝对。
如果元素具有绝对位置,则它将根据浏览器维度考虑高度和宽度。因此,子元素维度不能与其父元素一起改变。
如果您需要
,那么您可以使用javascript查找其父级的高度,然后相应地将其应用于子元素。position:absolute
替代绝对位置,您可以使用position:absolute
并使用
属性来获取结果。float:left/float:right
您可以使用以下代码:
float:left/float:right
margin
margin
设置保证金以使其正确。