Я пытаюсь масштабировать div, но сохраняю внутренний элемент в той же позиции и того же размера. Для этого я использую transform: scale(value)
на обертке и transform: scale(1/value)
во внутреннем div.
Проблема заключается в том, что внутренний div смещается, когда я изменяю масштаб. Это происходит только в том случае, если ширина/высота обертки нечетная или не полная. Это не происходит даже для ширины/высоты обертки.
Моя цель состоит в том, чтобы иметь множество дочерних элементов оболочки, которые масштабируются рядом с оболочкой, но только один, который этого не делает.
Взгляните на этот пример, чтобы увидеть проблему в действии (наведите курсор на масштаб).
Пример с без проблем, внутренний элемент остается фиксированным по шкале (высота и ширина контейнера равны):
https://jsfiddle.net/o16rau6u/5/
.wrapper {
width: 200px;
height: 200px;
background-color: blue;
position: relative;
}
.bg {
width: 20px;
height: 20px;
display: inline-block;
position: absolute;
top: 50%;
left: 50%;
margin-top: -10px;
margin-left: -10px;
background-image: url("https://upload.wikimedia.org/wikipedia/commons/thumb/f/f9/Wiktionary_small.svg/350px-Wiktionary_small.svg.png");
background-size: 100% 100%;
background-repeat: no-repeat;
}
.wrapper:hover {
transform: scale(2);
}
.wrapper:hover .bg {
transform: scale(0.5);
}
<div id="wrapper" class="wrapper">
<div id="bg" class="bg"></div>
</div>