Estoy tratando de encontrar un truco css para safari NO Chrome, sé que ambos son navegadores webkit, pero tengo problemas con las alineaciones div en Chrome y Safari, cada uno se muestra de manera diferente.
He estado tratando de usar esto, pero también afecta a Chrome,
@media screen and (-webkit-min-device-pixel-ratio:0) {
#safari { display: block; }
}
¿Alguien sabe de otro que se aplicará al safari por favor?
Respuestas:
NOTA: Los filtros y compiladores (como el motor SASS) esperan un código estándar de 'navegador cruzado', NO hacks CSS como estos, lo que significa que reescribirán, destruirán o eliminarán los hacks, ya que eso no es lo que hacen los hacks. Gran parte de esto es un código no estándar que se ha diseñado minuciosamente para apuntar solo a versiones de navegador único y no puede funcionar si se modifican. Si desea usarlo con ellos, debe cargar el hack CSS elegido después de cualquier filtro o compilador . Esto puede parecer un hecho, pero ha habido mucha confusión entre las personas que no se dan cuenta de que están deshaciendo un truco al ejecutarlo a través de un software que no fue diseñado para este propósito.
Safari ha cambiado desde la versión 6.1, como muchos han notado.
Tenga en cuenta: si está utilizando Chrome [y ahora también Firefox] en iOS (al menos en las versiones de iOS 6.1 y posteriores) y se pregunta por qué ninguno de los hacks parece estar separando Chrome de Safari, es porque la versión de iOS de Chrome está usando el motor Safari. Utiliza hacks de Safari, no los de Chrome. Más sobre eso aquí: https://allthingsd.com/20120628/googles-chrome-for-ios-is-more-like-a-chrome-plated-apple/ Firefox para iOS se lanzó en otoño de 2015. También responde a Safari Hacks, pero ninguno de Firefox, igual que iOS Chrome.
TAMBIÉN: Si ha probado uno o más de los hacks y tiene problemas para que funcionen, publique un código de muestra (mejor aún, una página de prueba): el hack que está intentando y qué navegador (es) (versión exacta) están utilizando, así como el dispositivo que está utilizando. Sin esa información adicional, es imposible para mí o para cualquier otra persona aquí ayudarlo.
A menudo es una solución simple o falta un punto y coma. Con CSS, generalmente es ese o un problema de qué orden el código aparece en las hojas de estilo, si no solo errores de CSS. Por favor, pruebe los hacks aquí en el sitio de prueba. Si funciona allí, eso significa que el hack realmente funciona para su configuración, pero es algo más que debe resolverse. La gente aquí realmente ama ayudar, o al menos señalarle en la dirección correcta.
El sitio de prueba:
https://browserstrangeness.bitbucket.io/css_hacks.html#safari
¡Y ESPEJO!
https://browserstrangeness.github.io/css_hacks.html#safari
Fuera del camino aquí hay trucos para que uses para versiones más recientes de Safari.
Deberías probar este primero, ya que cubre las versiones actuales de Safari y solo es Safari puro:
Este todavía funciona correctamente con Safari 13 (principios de 2020):
Para cubrir más versiones, 6.1 y posteriores, en este momento debe usar el siguiente par de hacks css. El de 6.1-10.0 para ir con uno que maneja 10.1 y arriba.
Entonces, aquí hay uno que hice para Safari 10.1+:
La consulta de doble medio es importante aquí, no la elimine.
Pruebe este si SCSS u otro conjunto de herramientas tiene problemas con la consulta de medios anidados:
El siguiente funciona para 6.1-10.0 pero no para 10.1 (actualización de finales de marzo de 2017)
Este truco que creé durante muchos meses de pruebas y experimentación combinando varios otros trucos.
NOTAS: como en el caso anterior, la consulta de medios dobles NO es un accidente: descarta muchos navegadores antiguos que no pueden manejar el anidamiento de consultas de medios. - El espacio que falta después de uno de los 'y' también es importante. Después de todo, esto es un truco ... y el único que funciona para 6.1 y todas las versiones más nuevas de Safari en este momento. También tenga en cuenta que, como se detalla en los comentarios a continuación, el hackeo es CSS no estándar y debe aplicarse DESPUÉS de un filtro. Los filtros como los motores SASS lo reescribirán / deshacerán o lo eliminarán por completo.
Como se mencionó anteriormente, consulte mi página de prueba para ver cómo funciona tal como está (¡sin modificaciones!)
Y aquí está el código:
Para más Safari CSS 'específico de la versión', continúe leyendo a continuación.
Uno para Safari 11.0:
Uno para Safari 10.0:
Obras ligeramente modificadas para 10.1 (solo):
Safari 10.0 (dispositivos que no son iOS):
Safari 9 CSS Hacks:
Un simple truco de consulta de funciones para Safari 9.0 y versiones posteriores:
Un simple hack de subrayado para Safari 9.0 y superior:
Otro para Safari 9.0 y superior:
y otra consulta de características de soporte también:
Uno para Safari 9.0-10.0:
Safari 9 ahora incluye detección de funciones para que podamos usar eso ahora ...
Ahora solo para dispositivos iOS. Como se mencionó anteriormente, dado que Chrome en iOS está enraizado en Safari, por supuesto, también afecta a ese.
uno para Safari 9.0+ pero no para dispositivos iOS:
Y uno para Safari 9.0-10.0 pero no para dispositivos iOS:
A continuación se muestran los hacks que separan 6.1-7.0 y 7.1+. Estos también requieren una combinación de múltiples hacks para obtener el resultado correcto:
Como he señalado la forma de bloquear dispositivos iOS, aquí está la versión modificada del hack Safari 6.1+ que apunta a dispositivos que no son iOS:
Para usarlos:
Por lo general, [como en esta pregunta], la razón por la que la gente pregunta sobre los hacks de Safari se debe principalmente a la separación de Google Chrome (¡otra vez NO a iOS!) Puede ser importante publicar la alternativa: cómo apuntar a Chrome por separado también de Safari, por lo que Te lo estoy proporcionando aquí en caso de que sea necesario.
Aquí están los conceptos básicos, nuevamente revise mi página de prueba para ver muchas versiones específicas de Chrome, pero estas cubren Chrome en general. Chrome es la versión 45, las versiones Dev y Canary son hasta la versión 47 en este momento.
Mi antiguo combo de consulta de medios que puse en el navegador todavía funciona solo para Chrome 29+:
Una consulta de función @supports también funciona bien para Chrome 29+ ... una versión modificada de la que estábamos usando para Chrome 28+ a continuación. Safari 9, los próximos navegadores de Firefox y el navegador Microsoft Edge no están disponibles con este:
Anteriormente, Chrome 28 y versiones posteriores eran fáciles de orientar. Este es uno que envié a los exploradores de navegador después de verlo incluido dentro de un bloque de otro código CSS (no originalmente pensado como un hack CSS) y me di cuenta de lo que hace, así que extraje la parte relevante para nuestros propósitos:
[NOTA:] Este método anterior a continuación ahora muestra Safari 9 y el navegador Microsoft Edge sin la actualización anterior. Las próximas versiones de Firefox y Microsoft Edge han agregado soporte para múltiples códigos CSS -webkit- en su programación, y tanto Edge como Safari 9 han agregado soporte para la detección de funciones @supports. Chrome y Firefox incluyeron @supports anteriormente.
El bloque de las versiones de Chrome 22-28 (si es necesario para admitir versiones anteriores) también es posible apuntar con un giro en mis hacks combinados de Safari que publiqué anteriormente:
Al igual que los hacks de formato CSS de Safari anteriores, estos se pueden usar de la siguiente manera:
Para que no tenga que buscarlo en esta publicación, aquí está mi página de prueba en vivo nuevamente:
https://browserstrangeness.bitbucket.io/css_hacks.html#safari
[O el espejo]
https://browserstrangeness.github.io/css_hacks.html#safari
La página de prueba también tiene muchos otros, específicamente basados en la versión para ayudarlo a diferenciar entre Chrome y Safari, y también muchos hacks para los navegadores web Firefox, Microsoft Edge e Internet Explorer.
NOTA: Si algo no funciona para usted, primero revise la página de prueba, pero proporcione un código de ejemplo y QUÉ pirateo está intentando que alguien lo ayude.
fuente
Hay una forma de filtrar Safari 5+ desde Chrome:
fuente
Solo sarari
fuente
:not(:root:root)
selector no es válido de acuerdo con la especificación CSS Selectors 3 (en el que:not()
puede contener solo un selector simple, es decir, un selector de tipo o una ID o una clase o una pseudo-clase), pero completamente válido de acuerdo con CSS Selectors 4 (donde:not()
acepta la lista de selectores). Es cierto que actualmente solo Safari comprende la sintaxis de CSS Selectors 4, pero esta solución no está preparada para el futuro.Este truco 100% funciona solo para safari 5.1-6.0. Lo acabo de probar con éxito.
fuente
Para aquellos que desean implementar un hack para Safari 7.0 y versiones posteriores, pero no 7.1 y versiones posteriores, use:
fuente
Reemplace su clase en (.myClass)
/ * Solo Safari * / .myClass: not (: root: root) {
enter code here
}fuente
Por cierto, para cualquiera de ustedes que solo necesiten apuntar a Safari en móviles, simplemente agreguen una consulta de medios a este truco:
Y no olvide agregar la clase .safari_only al elemento que desea orientar, por ejemplo:
fuente
Me gusta usar el siguiente método:
fuente
Al usar este filtro solo para safari, podría apuntar a Safari (iOS y Mac), pero excluir Chrome (y otros navegadores):
fuente
Paso 1: use https://modernizr.com/
Paso 2: use la clase html .regions para seleccionar solo Safari
Modernizr agregará clases html al DOM según lo que admita el navegador actual. Safari admite regiones http://caniuse.com/#feat=css-regions, mientras que otros navegadores no lo hacen (todavía de todos modos). Este método también es muy efectivo para seleccionar diferentes versiones de IE. Que la fuerza esté con usted.
fuente
hola he hecho esto y funcionó para mí
fuente
Nota: Si solo iOS es suficiente (si está dispuesto a sacrificar el escritorio Safari), entonces esto funciona:
fuente
Puede usar un truco de consulta de medios para seleccionar Safari 6.1-7.0 de otros navegadores.
Descargo de responsabilidad: este truco también está dirigido a versiones antiguas de Chrome (antes de julio de 2013).
fuente
Esto funciona:
fuente
Al final uso un poco de JavaScript para lograrlo:
luego, en mi CSS para apuntar al motor del navegador Apple, el selector será:
fuente
https://stackoverflow.com/a/17637937/3174065 se responde aquí, aunque este método utiliza algunos JS. si se usa, asegúrese de poner el js en el pie de página, el cuerpo tiene que estar completamente cargado para que se dispare correctamente, cuando se coloca en la cabeza, se equivoca porque se dispara antes de cargar el cuerpo.
luego agrega una clase .safari al cuerpo, pero solo en safari, lo que hace que apuntar al css sea muy fácil.
fuente
Funciona 100% en safari ... lo intenté
fuente
He probado y funcionó para mí
fuente