Cómo implementar un diseño responsivo para el sitio web, adecuado para diferentes resoluciones
Entonces, ¿qué debería ser? hacemos específicamente?
1. Definición de metaetiqueta
Utilice la metaetiqueta de ventana gráfica para controlar el diseño en los navegadores móviles
Pantalla completa cuando se abre mediante acceso directo
Ocultar barra de estado
Ocultar barra de estado
iPhone agrega conexiones telefónicas para números que parecen números de teléfono y deben desactivarse
<meta name=" format-detection" content="telephone=no" />
2. Utilice consultas de medios para ajustar los estilos correspondientes
Los siguientes tipos de consultas de medios CSS se utilizan comúnmente en el diseño:
Tipo de dispositivo (tipo de medio).
Todos los dispositivos;
Monitores de pantalla de computadora;
Papel de impresión o vista previa de impresión;
Dispositivos portátiles de mano;
p>
Dispositivo tipo TV TV;
Generador de caja de audio y semántica del habla;
Braille para ciegos;
Braille para ciegos.
Equipo de retroalimentación táctil Braille para ciegos;
Impresora Braille en relieve;
Varios equipos de proyección
Utilizando una cuadrícula de letras de densidad fija; Medios impresos como teletipos y terminales.
Funciones del dispositivo:
ancho ancho del navegador;
alto del navegador;
ancho del dispositivo; valor de ancho de resolución de pantalla;
p>
altura del dispositivo es el valor de altura de la resolución de pantalla del dispositivo;
la orientación es la dirección de la ventana del navegador vertical u horizontal cuando el valor de altura de la ventana es mayor o igual a. el ancho, el El valor del atributo es vertical, de lo contrario es horizontal;
valor de relación de aspecto, la relación de aspecto del navegador;
relación de aspecto del dispositivo valor, la relación de aspecto de la pantalla.
Ejemplo:
/* Para pantallas con un ancho de 240 px*/
@pantalla solo multimedia y (max-device-width:240px){
selector{ ...}
}
/* Adecuado para pantalla de 320 px de ancho*/
pantalla solo @media y ( min -device-width:241px) y (max-device-width:320px){
selector{ ...}
}
/* Aplica a pantalla de 480 px de ancho*/
@pantalla solo de medios (min-device-width:321px) y (max-device-width:480px){
selector{... }
}
Para consultas de medios de diseño, no las presentaremos en detalle en el blog de Ma Haixiang, pero si está interesado, puede obtener más información a través de la documentación oficial.
3. Procesamiento responsivo de tablas
Entonces, ¿cómo se debe llevar a cabo el procesamiento responsivo de tablas? ¿Cómo podemos superar las limitaciones de Table? A continuación, aprendamos sobre el método de procesamiento responsivo para tablas:
(1), ocultando columnas de datos sin importancia
Preprocesamiento:
()
Procesamiento:
Código del método de implementación:
@media pantalla única y (ancho máximo: 800 px) {
tabla td: nth-child(2 ),
tabla th:nth-child(2) {display: none;}
}
pantalla solo @media y ( max-width:640px ) {
tabla td:nth-child(4),
tabla th:nth-child(4),
tabla td: nth-child(7),
tabla th:nth-child(7),
tabla td:nth-child(8),
th: nth-child(8){display: none;}
}
Pensando desde la perspectiva del usuario, la percepción de los datos de cada uno es diferente, tal vez Los datos que ocultas son muy importantes para él. , por lo que Ma Haixiang no recomienda este método.
(2). Cambie la disposición horizontal de varias columnas a la disposición vertical de 2 columnas.
Antes:
Después:
Método de implementación. : El posicionamiento está oculto, (3), corrige la primera columna y desplaza las columnas restantes horizontalmente Antes del procesamiento: Después del procesamiento: p> Código de principio de implementación: thead {float: left;} tbody {display:block; width:auto;overflow-x:auto;} Dos, contenido responsivo 1. Imágenes responsivas El ancho de banda es un defecto de los terminales móviles si solo realizamos un procesamiento responsivo en el diseño de la página, cuando accedemos a ella. en un teléfono móvil, las imágenes de solicitud siguen siendo imágenes grandes en la PC, el tamaño del archivo es grande, el tráfico se consume y el retraso en la solicitud es largo, por lo que los problemas causados son inconmensurables; Luego debemos procesar la imagen en una imagen responsiva que se adapte al tamaño y resolución del tipo de terminal para crear gráficos razonables. Principio de procesamiento: el navegador obtiene imágenes que son adecuadas para el tamaño de la pantalla del terminal del usuario y la resolución del procesamiento lógico. Por ejemplo, si la resolución de la pantalla es 320 * 480, entonces el ancho de la imagen que debemos igualar. ser inferior a 320 px. Si el valor específico de DPI (píxel del dispositivo) de la pantalla del terminal es muy alto, es decir, una pantalla de alta definición, entonces tenemos que generar gráficos con 2 veces la resolución (ancho: 640 px) para garantizar la claridad de los gráficos; una pantalla de alta definición. Para conocer los parámetros de pantalla de varios terminales móviles, visite http://screensiz.es/phone. Solución: De hecho, el W3C ya tiene un borrador para gráficos responsivos: una nueva definición de la etiqueta & lt;p>Texto accesible Nota: fuente: fuente de la imagen; media: consulta de medios adaptada al tamaño de la pantalla; srcset: enlace de imagen, 1x para pantalla normal, 2x para pantalla de alta definición; : opción alternativa cuando el navegador no admite scripts; Aunque < span data-picture data-alt="Texto de descripción de la imagen"> --> noscript El principio es obtener las reglas de consultas de medios de origen y CSS a través de JS y generar las imágenes apropiadas. Los detalles lógicos no se analizarán aquí. Quienes estén interesados pueden observar su código JS. La lógica no es muy complicada. También puede encapsular una biblioteca de clases y aplicarla a sus propios productos, como un programa de reemplazo cuando falla la carga de imágenes. Por supuesto, en el futuro, CSS Image Level 4 se implementará en la sintaxis nativa de las imágenes responsivas: image-set De esta manera, nuestra imagen responsiva se puede reescribir así imagen de fondo: url(default.jpg /* pantalla normal*/ Nota: Webkit actualmente solo implementa la URL (), mientras que los valores negativos de dppx [-2x] parecen ser legales. Por supuesto, existe otro procesamiento de respuestas más allá de esto, como el rastreo de agentes de usuario del lado del servidor. 2. Procesamiento sensible de alta resolución (DPI) (1), SVG: la ventaja es que puede llevar gráficos con colores ricos y diseños complejos, y la presentación no. sea fluido; la desventaja es que el soporte de IE no es perfecto. (2) Fuente de icono: admite múltiples navegadores, tiene un bajo costo para modificar el color y el tamaño de los gráficos, y es fácil de mantener el rendimiento de los gráficos únicos, no admite gráficos coloridos y complejos y es áspero; Bordes en la presentación de IE6. (3), -webkit-image-set: solo admite la adaptación de un único gráfico, lo que no favorece la combinación de gráficos y tiene una compatibilidad incompleta (Safari 6+, Chrome 21+). Detección de JS: var retina = window.devicePixelRatio > 1; Consulta de medios CSS: @media (-webkit-min-device-pixel-ratio : 2), /* Navegadores basados en Webkit*/ (min-moz-device-pixel-ratio: 2), /* Navegadores Firefox más antiguos (anteriores a Firefox 16)*/ (resolución mínima: 2 dppx), /* Modo estándar*/ (resolución mínima: 192 ppp) /* respaldo de dppx*/ 3. Borde de alta resolución de 1 px debajo. Pantalla Retina Debido a las características de la pantalla de alta definición, 1 px se presenta como 2 × 2 píxeles, por lo que nuestro estilo de borde: 1 px se presentará como un borde de 2 px en la pantalla Retina, que es diferente del diseño. , por lo que para lograr una restauración precisa de 1px, tendremos que encontrar una solución perfecta. En Photoshop, si necesita un borde que parezca de 0,5 px, un enfoque común es agregar una sombra paralela a un borde de 1 px, difuminándolo 1 px. Nuevamente, necesitamos lograr un borde real de 1 px debajo de la retina, que se puede simular con la propiedad box-shadow. @media solo pantalla y (-webkit-min-device-pixel-ratio:1.5), solo pantalla y (min-device-pixel-ratio:1.5) { botón { border:none; padding:0 16px; box-shadow: inset 0 0 1px #000, inserto 0 1px 0 #75c2f8, 0 1px 1px -1px rgba(0, 0, 0, .5); } } } se convierte en un elemento de bloque y el nombre de la columna correspondiente está vinculado, y luego el pseudo elemento content.attr(data-th) se usa para implementar: attr(data-th ) implementa >: : imagen inicial; también hay un texto auxiliar, similar al atributo alt de
.