【发布时间】:2016-03-08 00:40:14
【问题描述】:
在下面的代码sn-p中,div元素(.main > div)是相对定位的,并且是向左浮动的。
由于相对定位,div元素(.main > div)彼此相邻放置。
span 元素在 div 元素下(.main > div > span)
span 元素被绝对定位以使文本居中(食物、健康)。
但我面临的问题是文本重叠。
根据我的理解,绝对定位的元素(.main > div > span)应该相对于其相对或绝对定位的容器(.main > div)定位。
那么为什么元素会重叠。不仅是 span 元素,还有 div 元素(相对定位)重叠。
我试图自己解决这个问题,但无法解决问题。
我搜索了类似的 StackOverflow 问题,但没有提供解决方案。
html, body {
width: 100%;
height: 100%;
}
.main {
height: 5%;
border: 1px solid thistle;
}
.main > div {
position: relative;
float: left;
height: 100%;
border: 1px solid black;
}
.main > div > span {
position: absolute;
top: 50%;
transform: translateY(-50%);
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
<div class="main">
<div><span>Food</span></div>
<div><span>Health</span></div>
</div>
</body>
</html>
【问题讨论】: