Я экспериментировал с возможностью заставить элемент страницы перекрывать элементы по обе стороны от него и оставаться идеально расположенными между ними. Моим решением было объявить position:relative
и установить отрицательные значения margin
, примерно равные 50% ширины элемента, но ближайший я смог прийти к половине процента элемента от его родительской ширины:
<!DOCTYPE html>
<html>
<head>
<style>
.clap {
position:relative;
margin:auto -16.66%; // This element share of the entire parent width = 33.33%
color:#f00
}
</style>
</head>
<body>
<center>
<span style="display:inline-block">1234567890<span class="clap">1234567890</span>1234567890</span>
</center>
</body>
</html>
Я пытаюсь найти только CSS-решение, которое будет использовать ширину самого элемента, а не ширину контейнера. Я не могу использовать JavaScript для этого, потому что планирую использовать его как исправление MathJaX, вставив его в команду \style
. (Насколько я знаю, MathJaX не предоставляет встроенный код HTML или JavaScript в своих формулах, поэтому вы понимаете, почему это должно быть только CSS. Я знаю, что это возможно с помощью скриптов. Возможно ли это с помощью CSS, или это моя попытка безнадежной
Обновление: благодаря предложению @Daiwei, я думаю, что я нахожусь на пути к правильному решению. Спасибо за все ваши ответы. Вот пересмотренный код:
.clap {
position:absolute;
display:inline-block;
transform: translate(-50%,0);
color:#f00 // for contrast
}
Я хотел бы показать вам результаты, но я не могу загрузить картинку. К сожалению.
Другое обновление. Решение, представленное выше, лучше всего работает в контексте HTML/CSS, но оно разбивается на MathJaX array
, matrix
или аналогичную табличную среду. В частности, если элемент слишком длинный, он зажимается с левой стороны. Относительное позиционирование перемещает элемент на полпути влево, но оставляет место, где оно было раньше! Любые идеи для его исправления?