Я использую слайдер из пользовательского интерфейса jQuery, где каждая отметка имеет ширину 1 пиксель.
Вот как это выглядит в Firefox и Safari:
Это правильно.
Но вот как это выглядит в Chrome:
Это странный сбой, характерный только для Chrome. Я пробовал box-sizing и box-shadow после того, как посмотрел на похожие вопросы, но мне не удалось заставить эти отметки отображаться правильно.
Если я установил его на 2 пикселя:
Все отметки отображаются, но все равно глючит.
Если нужен код:
HTML:
<div id = "slider"></div>
JS:
function createSlider() {
$("#slider").slider({
min: 1,
max: numOfPages * 3,
step: 1,
range: false,
orientation: 'horizontal',
create: function(event, ui) {
setSliderTicks(event.target);
}
});
}
function setSliderTicks(){
var $slider = $('#slider');
var max = $slider.slider("option", "max");
var spacing = 100 / (max - 1);
console.info('Spacing: ' + spacing);
$slider.find('.tickmark').remove();
for (var i = 0; i < max ; i++) {
$('<span class = "tickmark"></span>').css('left', (spacing * i) + '%').appendTo($slider);
}
}
CSS:
#slider {
width: ;
margin: 0 auto;
}
.ui-slider-horizontal {
height: 3px;
width: 75%;
}
.ui-slider {
border: 0;
background-color: #ededed;
border-radius: 6px;
top: 50%;
}
.ui-slider-handle {
width: 19px;
height: 18px;
background-color: #ededed;
border-radius: 50%;
border: none;
cursor: pointer;
top: 50%;
margin-top: -4px;
}
.ui-slider-handle:hover {
opacity: 0.8;
}
.tickmark {
display:inline-block;
width: 1px;
background-color: #ededed;
height: 12px;
position:absolute;
top: -150%;
}
Ползунок от https://code.jquery.com/ui/1.12.1/jquery-ui.min.js и https://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css
Обновил мой вопрос @alfredopacino
Извините, я не могу воспроизвести вашу проблему, я создал jsfiddle, и мне это нравится jsfiddle.net/alfredopacino/p5khfe2m Не могли бы вы сказать, сталкиваетесь ли вы с этой проблемой и в моем jsfiddle?
Я не вижу проблемы с вашей скрипкой JS :( Я все еще играюсь с ней, чтобы посмотреть, что это может быть. Может быть, JSfiddle отображает вещи иначе, чем Chrome?
Скорее всего, какое-то другое правило css (вы не публиковали) испортило рендеринг слайдера
Снято в темноте, а если заменить width: 1px; на border-left: 1px solid #fff;?
Я пытаюсь воспроизвести весь свой код в вашем jsfiddle, но испытываю трудности. И извините - эта граница слева приводит к тому же внешнему виду
Что если добавить ниже width:1px эту строчку outline: 1px solid transparent; ИЛИ этот box-shadow: 0 0 1px rgba(255,255,255,0);
Эти строки тоже не работают. D: Я поместил весь свой HTML и CSS на ваш jsfiddle. Там все отлично смотрится. Я пытаюсь узнать, отображает ли JSfiddle что-то иначе, чем Chrome. Я запускаю этот сайт локально через Nodejs, если это помогает.
в чем ценность numOfPages?
10, ты был прав
подождите, у вас же на странице нет масштабирования, отличного от 100%, верно?
Масштаб 80%: / Я видел эти проблемы с масштабированием Chrome и шириной 1 пиксель, но не могу найти, были ли они решены?
border-left: thin white solid; работает

не могли бы вы связать слайдер, который используете?