Safari рендеринг шрифтов страницы тоньше с помощью ползунка jQuery на странице
Я вытаскиваю свои волосы на этом. Я использую FlexSlider на странице с отличными результатами; однако при запуске Safari (версия для Mac, а не ios) визуализирует шрифты на странице тоньше. У Firefox и Chrome нет проблем. Вот мой основной код на случай, если это поможет:
<html>
<head>
<link href="css/style.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="css/flexslider.css" />
<title>Title</title>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script src="js/flexslide.js"></script>
</head>
<body>
<div id="header"><span class="slogan">Slogan At The Top</span></div>
<h1>View These Slides</h1>
<div class="gallery">
<div class="flexslider-container">
<div class="flexslider">
<ul class="slides">
<li><div class="slider">Element 1</div></li>
<li><div class="slider">Element 2</div></li>
</ul>
</div>
</div>
</div>
</body>
</html>
Я действительно предполагаю, что код в этом случае не поможет. Я чувствую, что это больше проблема с Safari и чем-то во FlexSlider. Я думал, что сузил проблему до использования FlexSlider translate3d, но это не сработало.
Кто-нибудь еще испытывал Safari, изменяя толщину шрифтов на основе элементов jQuery или даже что-то вроде флэш-видео (в данном случае не используется)? Кроме того, я не использую встроенные шрифты, к вашему сведению.
5 ответов
Поделиться этим, поскольку это решило проблему для меня... Я просто добавил следующее в свой файл CSS
html { -webkit-font-smoothing: antialiased; }
Это обратное исправление в том смысле, что он изменяет остальную часть текста на вашей странице так, как он выглядит на слайдере. Чтобы сделать это наоборот, вам потребуется изменить код JavaScript flexslider.
Получил это отсюда: https://github.com/desandro/isotope/issues/209
Это просто исправление CSS. Следующее предотвращает прореживание текста в webkit (safari/chrome):
.flexslider {position:relative;z-index:1}
Если ваша управляющая навигация не расположена абсолютно над ползунком, то это должно быть все, если ваша расположена выше, как у меня, тогда я сделал это:
.flex-control-nav {position: absolute; top: 0;left:0;overflow:hidden;z-index: 2;}
Скрытое переполнение было добавлено на .flex-control-nav
потому что в некоторых макетах в Firefox и Chrome на моем Macbook два пальца не будут перелистывать страницу, а будут перемещать саму страницу, вызывая смещение шириной не менее 100% или более.
Я не думаю, что ответ @Will Schmidt правильный.
Я обнаружил, что в таблице стилей строка, которая читает
.flexslider .slides > li {display: none; -webkit-backface-visibility: hidden; }
должно быть
.flexslider .slides > li {display: none; }
Это сработало для меня, в то время как его ответ не (как он начал, это влияет на весь текст).
Я тоже боролся с этим. В моем случае шрифты, казалось, исчезли. Посмотрев на это и другие обсуждения, я исправил это, отключив преобразования webkit в Flexslider. Я считаю, что это может устранить аппаратное ускорение для браузеров Safari, но по крайней мере это сработало. Я использую Flexslider версии 1.8.
В файле JavaScript Flexslider (не минимизирован) найдите следующий код вверху:
//Test for webbkit CSS3 Animations
slider.transitions = "webkitTransition" in document.body.style;
Измените вторую строку на:
slider.transitions = false;
Я надеюсь, что это работает для вас. (Я также открыт для лучших решений:-)
Добавление:
position: relative; z-index: 1;
На линию:
.flex-viewport {max-height: 2000px; -webkit-transition: all 1s ease; -moz-transition: all 1s ease; transition: all 1s ease; }
Исправил это для меня:
.flex-viewport {max-height: 2000px; -webkit-transition: all 1s ease; -moz-transition: all 1s ease; transition: all 1s ease; position: relative; z-index: 1; }