Какие есть хаки на чистый CSS для Safari?

Мне интересно, есть ли способ написать CSS специально для Safari, используя только CSS. Я знаю, что что-то должно быть там, но я еще этого не нашел.

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
18
0
21 759
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Подождите, вы хотите написать CSS для Safari, используя только CSS? Думаю, вы ответили на свой вопрос. У Webkit действительно хорошая поддержка CSS. Если вы ищете стили только для webkit, попробуйте здесь.

Вам нужно будет использовать JavaScript или свой сервер для сниффинга пользовательского агента, чтобы отправить CSS специально в Safari / WebKit.

Есть несколько приемов, которые вы можете использовать в CSS для таргетинга только на Safari, например, добавление решетки / решетки (#) после точки с запятой, что заставляет Safari игнорировать его. Например

.blah { color: #fff; }
.blah { color: #000;# }

В Safari цвет будет белым, во всем остальном - черным.

Однако вам не следует использовать хаки, так как это может вызвать проблемы с браузерами в будущем и может иметь нежелательные последствия в старых браузерах. Самый безопасный способ - либо использовать язык на стороне сервера (например, PHP), который обнаруживает браузер, а затем обслуживает другой файл CSS в зависимости от браузера, который использует пользователь, либо вы можете использовать JavaScript, чтобы сделать то же самое, и переключиться на другой файл CSS.

Язык на стороне сервера - лучший вариант здесь, поскольку не у всех включен JavaScript в их браузерах, а это означает, что они не увидят правильный стиль. Также JavaScript добавляет накладные расходы к количеству информации, которую необходимо загрузить, прежде чем страница будет отображаться правильно.

Safari использует WebKit, который очень хорошо обрабатывает CSS. Я никогда не встречал ничего, что не работает в Safari, но работает в других современных браузерах (не считая IE, у которого все вместе есть свои проблемы). Я бы посоветовал убедиться, что ваш CSS - соответствие стандартам, поскольку проблема может заключаться в CSS, а не в Safari.

Вероятно, это потому, что WebKit был исправлен, чтобы справиться с этим. Этот ответ был сделан в 2008 году, когда вышеупомянутый хакер работал в Safari. Тот факт, что сейчас это не работает, лишь подчеркивает мою мысль о том, что я вообще не использую хаки, поскольку они не гарантируют, что они всегда будут работать в будущем.

Rich Adams 13.05.2011 23:23
Ответ принят как подходящий

Думаю, вопрос верный. Я согласен с другими ответами, но это не значит, что это ужасный вопрос. Мне только однажды пришлось использовать взлом Safari CSS в качестве временного решения, а потом я избавился от него. Я согласен, что вам не нужно настраивать таргетинг только на Safari, но ничего страшного в том, чтобы знать, как это сделать.

К вашему сведению, этот хак нацелен только на Safari 3, а также на Opera 9.

@media screen and (-webkit-min-device-pixel-ratio:0) {
   /* Safari 3.0 and Opera 9 rules here */
}

Как это могло быть нацелено на Opera? Он нацелен на Safari и Chrome, которые используют движок WebKit.

Mathias Bynens 10.01.2011 14:20

Исходный источник взлома здесь: themechanism.com/blog/2008/01/08/safari-css-hack-redux. Приложение: он поддерживает Opera 9, но не Opera 9.5. Этот хакер был первоначально задуман в 2007 году, так что, вероятно, он сильно устарел в 2011 году.

Bryan M. 10.01.2011 16:40

Это действительно зависит от того, что вы пытаетесь сделать. Вы пытаетесь сделать что-то особенное только в сафари, используя некоторые из включенных функций CSS3, или вы пытаетесь сделать сайт совместимым с кроссбраузерностью?

Если вы пытаетесь сделать сайт совместимым с кросс-браузером, я бы рекомендовал написать сайт так, чтобы он хорошо выглядел в safari / firefox / opera с использованием правильного CSS, а затем внести изменения для IE с использованием условного CSS, включенного в IE. Это должно (надеюсь) дать вам совместимость для будущих браузеров, которые будут лучше следовать правилам CSS и обеспечат кроссбраузерную совместимость. Это пример.

Используя условные таблицы стилей, вы можете полностью избежать взлома и целевого браузера.

Если вы хотите сделать что-то особенное в сафари, посмотрите это.

@media screen and (-webkit-min-device-pixel-ratio:0) {}

Кажется, это нацелено на webkit (включая Chrome) ... или это действительно только для Safari?

также нацелен на хром сейчас - 2016

Carol McKay 21.07.2016 09:44

Другие вопросы по теме