2011-04-06 20 views
8

No se puede encontrar nada en la web para esto, quería hacer la pregunta allí.Versión PHP de CSS Media Queries

¿Es la versión PHP de CSS Media Queries?

+2

Aunque soy curioso, ¿qué intentas lograr? – whoughton

+0

usando MobileESP y quería apuntar a resoluciones específicas no solo el dispositivo en sí con PHP –

+0

Creo que tendrías que volver a javascript en ese momento. Realice una solicitud asíncrona al servidor con detalles específicos y, en teoría, podría cargar una hoja de estilo nueva/actualizada/específica del entorno basada en esa información. Pero aún tendrá que reunir los parámetros que desea, enviarlos al servidor y decidir qué intercambiar después de eso. Así que ni siquiera está tan limpio como CSS con consultas de medios. Pero creo que es mucho más flexible y personalizable. – whoughton

Respuesta

2

Supongo que usted querrá hacer esto con el fin de detectar navegadores móviles, si no, entonces esta respuesta es ligeramente irrelevante.

Puede consultar Mobile ESP para obtener una biblioteca de detección de agente de usuario móvil. Es muy simple de usar y funciona bien en mis experiencias.

+0

Sí, he visto esto y me gusta, pero no ofrece detección específica de dispositivos. Quería combinar esto con CSS Media Queries para ofrecer una funcionalidad específica para el dispositivo móvil, como la pantalla Retina iPhone 4. Sé que puedo hacer esto con CSS, pero quería cargarlo dinámicamente para mantener el tamaño del archivo bajo –

+0

Por si acaso alguien más quiere seguir esta ruta, visita https://github.com/serbanghita/Mobile-Detect –

1

Puede consultar $_SERVER['HTTP_USER_AGENT'] y tomar una decisión basada en lo que encuentre allí. Puede que haya una biblioteca en alguna parte que ya se haya ocupado de esto, pero no conozco ninguna que esté fuera de mi cabeza.

2

No, no lo hay.

El navegador no envía información sobre ninguno de sus media features al servidor, por lo que PHP no cuenta con la información necesaria para implementarlo.

1

Existe la función get_browser php que puede usar para determinar algunas capacidades del navegador. Pero eso no es lo mismo que las consultas de los medios. Las consultas de medios css están condicionadas a que los dispositivos muestren las mediciones. La función php no devuelve tales informaciones.

2

He utilizado un método (encontrado en http://php.net/manual/en/faq.html.php Ejemplo # 4) que combina javascript y php para lograr una alternativa para consultas de medios. Lo logro usando JavaScript incrustado dentro de mi php para publicar una variable (screen.width) que luego usa php para determinar puntos de interrupción para cargar hojas de estilo. Incluir el siguiente fragmento en su etiqueta de la cabeza:

<?php 
    if (isset($_GET['width'])) { 
    $width = $_GET['width']; 
    if ($width <= 480) { //mobile devices 
     $style = '<link rel="stylesheet" href="mobile.css" type="text/css">'; 
    } elseif ($width <= 720){ //tablets 
     $style = '<link rel="stylesheet" href="tablet.css" type="text/css">'; 
    } else { //desktops 
     $style = '<link rel="stylesheet" href="desktop.css" type="text/css">'; 
    } 
    echo $style; 
    } else { 
     echo "<script language='javascript'>\n"; 
     echo " location.href=\"${_SERVER['SCRIPT_NAME']}?${_SERVER['QUERY_STRING']}" . "&width=\" + screen.width; \n"; 
     echo "</script>\n"; 
     exit(); 
    } 
?> 

encontré usando este método también fue más eficiente de la carga de contenido de una página, a diferencia de las consultas de los medios de comunicación (que cargará los estilos CSS para todos los dispositivos, incluso cuando no está necesario, es decir, los dispositivos móviles aún tienen cargados los estilos de escritorio). Este método garantiza que las hojas de estilo se carguen de forma específica solo en el dispositivo, suponiendo que tenga una hoja de estilo que tenga un estilo común para todos los dispositivos multimedia.

+0

Suvi Vignarahah Gracias por compartir esto. He estado buscando una manera de detectar consultas de medios usando php. ¡¡¡Increíble!!! –