





Подождите, вы хотите написать 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.
Думаю, вопрос верный. Я согласен с другими ответами, но это не значит, что это ужасный вопрос. Мне только однажды пришлось использовать взлом 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.
Исходный источник взлома здесь: themechanism.com/blog/2008/01/08/safari-css-hack-redux. Приложение: он поддерживает Opera 9, но не Opera 9.5. Этот хакер был первоначально задуман в 2007 году, так что, вероятно, он сильно устарел в 2011 году.
Это действительно зависит от того, что вы пытаетесь сделать. Вы пытаетесь сделать что-то особенное только в сафари, используя некоторые из включенных функций CSS3, или вы пытаетесь сделать сайт совместимым с кроссбраузерностью?
Если вы пытаетесь сделать сайт совместимым с кросс-браузером, я бы рекомендовал написать сайт так, чтобы он хорошо выглядел в safari / firefox / opera с использованием правильного CSS, а затем внести изменения для IE с использованием условного CSS, включенного в IE. Это должно (надеюсь) дать вам совместимость для будущих браузеров, которые будут лучше следовать правилам CSS и обеспечат кроссбраузерную совместимость. Это пример.
Используя условные таблицы стилей, вы можете полностью избежать взлома и целевого браузера.
Если вы хотите сделать что-то особенное в сафари, посмотрите это.
@media screen and (-webkit-min-device-pixel-ratio:0) {}
Кажется, это нацелено на webkit (включая Chrome) ... или это действительно только для Safari?
также нацелен на хром сейчас - 2016
Вероятно, это потому, что WebKit был исправлен, чтобы справиться с этим. Этот ответ был сделан в 2008 году, когда вышеупомянутый хакер работал в Safari. Тот факт, что сейчас это не работает, лишь подчеркивает мою мысль о том, что я вообще не использую хаки, поскольку они не гарантируют, что они всегда будут работать в будущем.