Estoy usando Bootstrap 3 para construir un diseño receptivo donde quiero ajustar algunos tamaños de fuente de acuerdo con el tamaño de la pantalla. ¿Cómo puedo usar consultas de medios para hacer este tipo de lógica?
371
Estoy usando Bootstrap 3 para construir un diseño receptivo donde quiero ajustar algunos tamaños de fuente de acuerdo con el tamaño de la pantalla. ¿Cómo puedo usar consultas de medios para hacer este tipo de lógica?
Respuestas:
Bootstrap 3
Estos son los selectores utilizados en BS3, si desea mantenerse consistente:
Nota: para su información, esto puede ser útil para la depuración:
Bootstrap 4
Aquí están los selectores utilizados en BS4. No hay configuración "más baja" en BS4 porque "extra pequeño" es el valor predeterminado. Es decir, primero codificaría el tamaño XS y luego anularía estos medios.
Actualización 2019-02-11: la información de BS3 sigue siendo precisa a partir de la versión 3.4.0, BS4 actualizada para la nueva cuadrícula, precisa a partir de 4.3.0.
fuente
<span class="visible-xs">SIZE XS</span><span class="visible-sm">SIZE SM</span><span class="visible-md">SIZE MD</span><span class="visible-lg">SIZE LG</span>
Basado en la respuesta de bisio y el código Bootstrap 3, pude encontrar una respuesta más precisa para cualquiera que solo buscara copiar y pegar el conjunto completo de consultas de medios en su hoja de estilo:
fuente
min-width
, pero ustedmax-width
también la ha usado , entonces, ¿cuál es la diferencia ?, ¿es necesario?Si está usando MENOS o SCSS / SASS y está usando una versión MENOS / SCSS de Bootstrap, también puede usar variables , siempre que tenga acceso a ellas. Una MENOR traducción de la respuesta de @ full -cente sería la siguiente:
También hay variables para
@screen-sm-max
y@screen-md-max
, que son 1 píxel menos que@screen-md-min
y@screen-lg-min
, respectivamente, típicamente para usar con@media(max-width)
.EDITAR: si está utilizando SCSS / SASS, las variables comienzan con un en
$
lugar de un@
, por lo que sería$screen-xs-max
etc.fuente
$screen-xs-max
etc. (Y si está utilizando LESS / SCSS localmente pero importando la versión CSS de Bootstrap, no tienes suerte)@screen-tablet
,@screen-desktop
y@screen-lg-desktop
han quedado en desuso. Tal vez sea hora de actualizar su respuesta ya increíble. ;-)Estos son los valores de Bootstrap3:
fuente
and
condiciones. @JasonMiller, así que no es exactamente un "must", depende de las especificaciones y requisitos de la plantilla.Aquí hay dos ejemplos.
Una vez que la ventana gráfica tenga 700px de ancho o menos, haga que todas las etiquetas h1 tengan 20px.
Haga que todos los h1 sean 20px hasta que la ventana gráfica alcance 700px o más.
Espero que esto ayude: 0)
fuente
font-size: 20px
parah1
etiquetas en ambos casos. Para una mejor comprensión, es posible que haya utilizado diferentes,font-size
como se hizo en la pregunta. Por cierto, todavía está bien.Aquí hay un ejemplo más modular que usa MENOS para imitar Bootstrap sin importar menos archivos.
fuente
Basado en las respuestas de otros usuarios, escribí estos mixins personalizados para un uso más fácil:
Menos entrada
Ejemplo de uso
Entrada SCSS
Ejemplo de uso:
Salida
fuente
A partir de Bootstrap v3.3.6, se utilizan las siguientes consultas de medios que corresponden con la documentación que describe las clases receptivas que están disponibles ( http://getbootstrap.com/css/#responsive-utilities ).
Consultas multimedia extraídas del repositorio Bootstrap GitHub de los siguientes archivos menos: -
https://github.com/twbs/bootstrap/blob/v3.3.6/less/responsive-utilities.less https://github.com/twbs/bootstrap/blob/v3.3.6/less/variables.less
fuente
O simple Sass-Compass:
Ejemplo:
fuente
tenga en cuenta que evitar la escala de texto es la razón principal por la que existen diseños receptivos. Toda la lógica detrás de los sitios receptivos es crear diseños funcionales que muestren efectivamente su contenido para que sea fácilmente legible y utilizable en múltiples tamaños de pantalla.
Aunque es necesario escalar el texto en algunos casos, tenga cuidado de no miniaturizar su sitio y perder el punto.
Heres un ejemplo de todos modos.
También tenga en cuenta que la vista de 480 se ha eliminado en bootstrap 3.
fuente
Utilizamos las siguientes consultas de medios en nuestros archivos Less para crear los puntos de interrupción clave en nuestro sistema de cuadrícula.
ver también en Bootstrap
fuente
fuente
Aquí hay una solución única aún más fácil, que incluye archivos receptivos separados basados en consultas de medios.
Esto permite que toda la lógica de consulta de medios e incluya lógica solo tenga que existir en una página, el cargador. También permite que las consultas de los medios no llenen las propias hojas de estilo receptivas.
base.less se vería así
sm-min.less se vería así
su índice solo tendría que cargar el cargador.
pan comido..
fuente
Bootstrap utiliza principalmente los siguientes rangos de consulta de medios (o puntos de interrupción) en nuestros archivos Sass de origen para nuestro diseño, sistema de cuadrícula y componentes.
Dispositivos extra pequeños (teléfonos verticales, menos de 576 px) Sin consulta de medios
xs
ya que este es el valor predeterminado en BootstrapPequeños dispositivos (teléfonos apaisados, 576 px y más)
Dispositivos medianos (tabletas, 768 px y más)
Dispositivos grandes (computadoras de escritorio, 992 px y más)
Dispositivos extra grandes (escritorios grandes, 1200 px y más)
Como escribimos nuestro CSS de origen en Sass, todas nuestras consultas de medios están disponibles a través de los mixins de Sass:
No es necesaria una consulta de medios para el punto de interrupción xs, ya que es eficaz
@media (min-width: 0) { ... }
Para entenderlo profundamente, vaya al siguiente enlace
https://getbootstrap.com/docs/4.3/layout/overview/
fuente
fuente
Use consultas de medios para IE;
fuente
:)
En el último bootstrap (4.3.1), usando SCSS (SASS) puede usar uno de @mixin de
/bootstrap/scss/mixins/_breakpoints.scss
Medios de al menos el ancho mínimo del punto de ruptura. Ninguna consulta para el punto de interrupción más pequeño. Hace que el @content se aplique al punto de interrupción dado y sea más amplio.
@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints)
Medios de como máximo el ancho máximo del punto de ruptura. Ninguna consulta para el punto de interrupción más grande. Hace que el contenido @ se aplique al punto de interrupción dado y sea más estrecho.
@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints)
Medios que abarcan múltiples anchos de punto de interrupción. Hace que el @content se aplique entre los puntos de interrupción mínimo y máximo
@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints)
Medios entre los anchos mínimo y máximo del punto de interrupción. No hay mínimo para el punto de ruptura más pequeño, ni máximo para el más grande. Hace que el contenido @ se aplique solo al punto de interrupción dado, no a las ventanas gráficas más anchas o más estrechas.
@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints)
Por ejemplo:
Documentación:
Codificación feliz;)
fuente
Para mejorar la respuesta principal:
Puede usar el atributo de medios de la
<link>
etiqueta (admite consultas de medios) para descargar solo el código que el usuario necesita.Con esto, el navegador descargará todos los recursos CSS, independientemente del atributo multimedia . La diferencia es que si la consulta de medios del atributo de medios se evalúa como falsa , ese archivo .css y su contenido no se bloquearán.
Por lo tanto, se recomienda utilizar el atributo de medios en
<link>
etiqueta, ya que garantiza una mejor experiencia de usuario.Aquí puede leer un artículo de Google sobre este problema. https://developers.google.com/web/fundamentals/performance/critical-rendering-path/render-blocking-css
Algunas herramientas que lo ayudarán a automatizar la separación de su código CSS en diferentes archivos de acuerdo con sus consultas de medios
Webpack https://www.npmjs.com/package/media-query-plugin https://www.npmjs.com/package/media-query-splitting-plugin
PostCSS https://www.npmjs.com/package/postcss-extract-media-query
fuente