Из моего макета я заметил, что мой элемент «navsprite» не центрируется вертикально, когда я использую «position: relative»; как это свойство, вот мой документ, и в основном это спрайт изображения, который я пытаюсь центрировать по горизонтали и вертикали, за исключением того, что, как я сказал, он не вертикально, если я использую «position: relative»; вместо «position: absolute»; для моего элемента «navsprite».Где находится «позиция: относительная»; база компенсируется?
#navsprite {
width: 134px;
position: relative;
left: 50%;
top: 50%;
margin-left: -67px;
margin-top: -22px;
}
#navsprite li {
margin: 0;
padding: 0;
list-style: none;
position: absolute;
top: 0px;
}
#navsprite a {
height: 44px;
display: block;
}
#home {
left: 0px;
width: 46px;
height: 44px;
background: url(/favicon.ico) 0 0;
}
#prev {
left: 63px;
width: 43px;
height: 44px;
background: url(/favicon.ico) -47px 0;
}
#next {
left: 129px;
width: 43px;
height: 44px;
background: url(/favicon.ico) -91px 0;
}
<ul id="navsprite">
<li id="home">
<a href="#"></a>
</li>
<li id="prev">
<a href="#"></a>
</li>
<li id="next">
<a href="#"></a>
</li>
</ul>
Теперь она пришла мне в голову, что в отличие от "позицию: абсолютная;" который основывает свое смещение от его родительского элемента тела, «position: relative»; полностью не делает то же самое, и я задаюсь вопросом, где он базируется, это смещено с тех пор, как вы видите, спрайт изображения только перемещается -22px в начало, потому что по какой-то причине «top: 50%;» не имеет никакого эффекта (это если это позиция: relative;), или если это имеет какой-то эффект, то я не знаю, что и где.
Так что мой вопрос: «позиция: относительная»; основывать свое смещение где-то еще? или он не основывает свое смещение вообще? или это вообще имеет какое-либо влияние? или я пропустил какое-то под-правило для этого свойства? Что здесь происходит?
Спасибо.
если это родственник вы не можете просто использовать 'выравнивания текста: центр;' или 'поле: авто;'? – Novocaine
У меня нет проблем для горизонтальной, это вертикальная часть, которую я пытаюсь решить. –
Чтобы сделать это, вы можете использовать margin с [calc] (https://developer.mozilla.org/en-US/docs/Web/CSS/calc). –