У меня есть слайдер, который включает точки навигации, расположенные по абсолютному значению. И я хочу знать, как центрировать эти точки по оси X.

Я в порядке, когда он установлен правильно: 10%; на рабочем столе. Но у мобильного есть эстетические проблемы, когда значения в%, он просто никогда не смотрит прямо в центре из-за небольшой ширины.

Я много искал, и самым популярным решением было

left: 50%;
right: 50% transform: translateX(50%);

Но все равно он работает так же, как и слева ... Пожалуйста, посмотрите код jsfiddle ниже, мне нужно пространство между 2-й и 3-ей белыми точками, чтобы их можно было вырезать белой вертикальной линией.

https://jsfiddle.net/dpmango/vk9oc6gt/2/

Заранее спасибо за помощь!

4
Sergey Khmelevskoy 5 Май 2016 в 12:36

2 ответа

Лучший ответ

https://jsfiddle.net/vk9oc6gt/3/

transform:translateX(-50%); - это то, что вы ищете.

Обратите внимание, когда вы применяете transform:translateX(-50%);, он сдвигает элемент на процент от размеров элемента , в данном случае на ширину, потому что это смещение оси X, на 50%, потому что мы указали его, и влево потому что это отрицательное значение.

Я добавил его как в средний блок div с точками, так и в среднюю белую линию:

.center-line {
  position: absolute;
  background-color: white;
  top: 0;
  left: 50%;
  transform:translateX(-50%);
  width: 2px;
  height: 100%;
}

.owl-dots {
  display: inline-block;
  position: absolute;
  top: 80px;
  left:50%;
  transform:translateX(-50%);
}

Если вам также нужны вертикально центрированные точки, вы можете воспользоваться этим https://jsfiddle.net/vk9oc6gt/4/ используя:

top:50%;
left:50%;
transform:translate(-50%, -50%);
6
Fausto NA 5 Май 2016 в 09:50

Почему ты не используешь это? - .owl-dots{width: 100%, text-align:center; left:0;}

-1
firstTimeAnswering 5 Май 2016 в 11:28