Elegir Entre Consultas De Medios Y Consultas De Contenedores

Todos los que se mantienen al día con los últimos eventos en el mundo del diseño receptivo estarán de acuerdo en que la introducción de consultas de contenedores CSS es un cambio de juego. Es lo más emocionante que ha sucedido desde la introducción de las consultas de medios.

Pero, ¿qué es una consulta de contenedor? ¿Por qué son importantes las consultas de contenedores y cómo puede usarlas?

En este artículo, vamos a responder todas esas preguntas y más a través de las siguientes secciones:

  • ¿Qué es una consulta de medios en CSS?
  • El problema con las consultas de medios
  • Cuándo y cómo usar consultas de medios
  • Cuándo y cómo usar consultas de contenedor

Sin perder más tiempo, entremos de lleno.

¿Qué es una consulta de medios en CSS?

Hace mucho tiempo, la mayoría de los sitios web tenían muchos problemas para representar componentes en diferentes tamaños de pantalla, especialmente con la revolución de los teléfonos móviles. La mayoría de los sitios web solucionaron ese problema creando un nuevo sitio web con el dominio m.. Si alguna vez has usado m.facebook.com, esta es la razón.

Todo eso fue antes de las consultas de los medios. Con las consultas de medios, los sitios web se pueden crear para que se ajusten a una ventana de visualización en particular, por lo que se acabaron los días de hacer zoom en su teléfono inteligente para ver qué hay en el sitio web.

Las consultas de medios proporcionan una declaración condicional en torno a algunos estilos, que luego se implementan o no en función de si se cumplen o no las condiciones.

El problema con las consultas de medios

Si bien las consultas de medios cambiaron mucho, todavía tenían un problema: no son reutilizables. Con las consultas de medios, puede crear un elemento receptivo e implementarlo, y aunque se ve bien en un caso de uso estándar, probablemente no funcionará tan bien si se mueve a un contenedor diferente con propiedades CSS que afectan las dimensiones del elemento. Para que funcione correctamente, deberá agregar muchas más propiedades CSS.

Aquí es donde entran en juego las consultas de contenedores. Con las consultas de contenedores, ahora puede dirigirse a elementos individuales y habilitarlos para que se adapten a prácticamente cualquier contenedor o diseño dado.

Las consultas de contenedores son como las consultas de medios; la única diferencia es que hacen que un contenedor o elemento responda según el espacio disponible para el contenedor, en lugar de la ventana gráfica. Pero eso plantea la pregunta: ¿necesitamos más las consultas de los medios?

 

Cuándo y cómo usar consultas de medios

La respuesta a la pregunta anterior es ¡sí! Todavía hay un montón de casos de uso para consultas de medios, a pesar de que las consultas de contenedores resuelven sus limitaciones considerables.

Las consultas de medios pueden y deben seguir usándose para diseños de página, que generalmente se encuentran en el nivel más alto del DOM y no están anidados en otro contenedor. Son los más adecuados para esto porque el diseño de la página principal no debe adaptarse a nada más que a la ventana gráfica.

Las consultas de medios también se pueden usar para diseñar elementos globales como el espaciado, el tamaño de fuente o los colores. Por ejemplo, si crea un sitio web con fuentes de gran tamaño, es probable que la fuente y el espacio sean demasiado grandes para una pantalla móvil. Eso se puede arreglar con consultas de medios como esta:

:root {
   --font-size-hl: 20px;
   --font-size-h2: 15px;
   --font-size-h3: 12px;
   --font-size-p: 8px;


   --letter-spacing: 8px;
}

@media (min-width: 300px) {
   :root {
       --font-size-hl: 13px;
       --font-size-h2: 10;
       --font-size-h3: 8px;
       --font-size-p: 5pxrem;

       --letter spacing: 4px;
   }
}

Uno de los escenarios de consultas de medios en los que brilla es cuando tienes que eliminar un componente de una página. Por ejemplo, mira esta página de inicio de Instagram:

En el escritorio, la barra de mensajes se ve muy bien, pero la mayoría de los dispositivos móviles no tienen el tamaño de pantalla para mostrar esto de manera adecuada. Con las consultas de medios, se puede eliminar toda la pestaña del mensaje y la misma página se mostrará así.

Vale la pena señalar que las consultas de medios no son solo para detectar tamaños de pantalla y cómo afectan los componentes.

Las consultas de medios también se pueden usar para diferentes consultas relacionadas con las preferencias del usuario, como:

Cuándo y cómo usar consultas de contenedor

Las consultas de contenedores le permiten dirigirse a un contenedor específico y configurarlo para que se muestre según el ancho y la altura del contenedor, sin tener que usar consultas de medios. Se usa principalmente para componentes de tarjetas, pero es flexible, por lo que puede usarlo para múltiples componentes.

Con Vanilla CSS, las propiedades utilizadas en las consultas de contenedores comparten muchas similitudes con las propiedades que ha estado utilizando en las consultas de medios. Las únicas otras propiedades que necesita aprender son:

  • container-type: se usa para declarar el elemento como un contenedor de consultas, lo que permite que el componente secundario consulte contra él
  • container-name: Se utiliza para asignar un nombre al contenedor para un mayor filtrado.

Echemos un vistazo a un ejemplo de tarjeta rápida. Primero, hagamos un borrador de una tarjeta con HTML.

<div class="container">
  <div class="contain-container contain-container--small">
    <h2>first example</h2>
    <div class="contain">
      <div class="contain__thumbnail"&gt;</div>
      <div class="contain__content">

        <h3 class="contain__title">Lorem Ipsium in english</h3>
        <p class="contain__description">But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some great pleasure. .</p>
      </div>
    </div>
  </div>
  <div class="contain-container contain-container--large">
    <h2>Second example</h2>
    <div class="contain">
      <div class="contain__thumbnail"></div>
      <div class="contain__content">
        <h3 class="contain__title">Lorem Ipsium in english</h3>
        <p class="contain__description">To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that produces no resultant pleasure.</p>
      </div>
    </div>
  </div>
</div>

El texto ficticio es solo una versión traducida de lorem ipsum. Es mi peculiaridad personal.

A continuación, introduzcamos el CSS.

body {
  background: #5f64e2;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica,
    Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
  color: #fdf2f2;
}

.container {
  padding: 16px;
  margin: auto;
  display: flex;
  gap: 16px;
}

.contain-container {
  margin: 16px auto;
  flex-grow: 0;
  contain: layout inline-size;
  container-type: inline-size;
  --css-contain: layout inline-size;
}

.contain-container--small {
  width: 300px;
}

.contain-container--large {
  width: 600px;
}

.contain {
  padding: 16px;
  border-radius: 8px;
  background: black;
  margin-bottom: 16px;
  color: white;
}

  .contain__thumbnail {
    height: 130px;
    min-width: 130px;
    background: red;
    border-radius: 4px;
  }

  .contain__title {
    margin-top: 4px;
    margin-bottom: 8px;
  }

  .contain__description {
    margin: 0;
  }

El resultado del código anterior se verá así:

Ambas tarjetas son prácticamente iguales, excepto que una tiene un ancho de 300 px y la otra tiene un ancho de 600 px. Con las consultas de contenedor, podemos hacer que la tarjeta de la derecha se vea y se comporte de manera muy diferente con el siguiente código.

@container (min-width: 400px) {
  .contain {
    background-color: white;
    color: black;
    display: flex;
    gap: 16px;
  }
}

Lo que hace ese código es decirle a cualquier contenedor que tenga más de 400 px de ancho que tenga un color de fondo blanco, use display: flexy tenga un color de texto negro. El resultado se verá así:

Los cambios en la tarjeta de la derecha solo se aplican si la tarjeta tiene que ocupar un espacio con un ancho de ≥ 400 px, por lo que si no hay suficiente espacio para que se muestre, o si está siendo vista por un dispositivo móvil, las tarjetas se revertirán. a esto.

Consultas de contenedores con CSS-in-JS

Sé que JSS, o CSS-in-JS , es un tema bastante controvertido en este momento. Hay un par de personas, como este tipo que odia JSS y no quiere que te acerques a él, o este tipo que lo ama absolutamente y quiere que lo uses.

Ya sea que te guste JSS o no, debes admitir que es bastante útil. Al igual que con CSS normal, es posible usar consultas de contenedores en JSS. He aquí un ejemplo muy simple de cómo funciona.

Primero, construyamos cuatro contenedores simples.

<div class=cquery>
  <h1>To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? </h1>
</div>

<div class=cquery style=width:80%>
  <h1>To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it?</h1>
</div>

<div class=cquery style=width:60%>
  <h1>To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it?</h1>
</div>

<div class=cquery style=width:40%>
  <h1>To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it?</h1>
</div>

A continuación, agreguemos el JSS. He puesto algunos comentarios para que sea fácilmente comprensible.

function JSinCSS() {
  //target an html element with id ='JSinCSS' and declare it tag
  let tag = document.querySelector("#JSinCSS");

  //if there is no html element with id ='#JSinCSS'
  if (!tag) {
    //create a style tag like this
    //<style></style>
    tag = document.createElement("style");

    //set id of style tag to be 'JSinCSS'
    //<style id='JSinCSS'></style>
    tag.id = "JSinCSS";
    //we call document.head.appendChild to append the style element to the head tag as a child.
    document.head.appendChild(tag);
  }

  //inside the style tag add innerHTML to it

  tag.innerHTML = `

    body:before {
      content: '${innerWidth} x ${innerHeight}';
    }

    .cquery {
      border: 4px solid red;
      background-color: green;
    }

    ${containerQuery('.cquery', 'this.offsetWidth > 500', `

      $this {
        background: blue;
      }

      $this h1 {
        font-size: 30pt;
      }

    `)}

    ${containerQuery('.cquery', 'this.offsetWidth > 800', `

      $this {
        background: purple;
      }

      $this h1 {
        font-size: 30pt;
      }

    `)}


    ${containerQuery('.cquery', 'this.offsetWidth > 1000', `

      $this {
        background: gold;
      }

      $this h1 {
        font-size: 30pt;
      }

    `)}

  `

}

function containerQuery(selector, test, stylesheet) {
    //target the container element and declare it tag
  var tag = document.querySelectorAll(selector);
  var style = "";
  var count = 1;

  for (var i = 0; i < tag.length; i++) {
      //tag.length return the number of nodes in tag
      // run a forLoop so when i == tag.length 
      //declare a function that returns test
    var func = new Function(`return ${test}`);
    var attr = (selector + test).replace(/[= "'><+\.]/g, "");

    if (func.call(tag[i])) {
      tag[i].setAttribute(`data-${attr}`, count);

      var css = stylesheet.replace(/\$this/g, `[data-${attr}="${count}"]`);

      style += css;

      count++;
    } else {
      tag[i].setAttribute(`data-${attr}`, "");
    }
  }

  return style;
}

//call the function in to listen to different events and call the function JSinCSS
window.addEventListener("load", JSinCSS);
window.addEventListener("resize", JSinCSS);
window.addEventListener("input", JSinCSS);
window.addEventListener("click", JSinCSS);

El código anterior crea cuatro contenedores diferentes y luego establece una consulta de contenedor con la containerQueryetiqueta para que los colores de los contenedores cambien en diferentes tamaños. El resultado se ve así.

Desde el HTML, puede ver que es el mismo contenedor. Pero con un ancho de ≥1000px, el color del contenedor se vuelve dorado. Con anchos de 800 px y 500 px, el contenedor se vuelve morado y azul, respectivamente. Debajo de eso, permanece en su color verde predeterminado. Entonces, si estos mismos contenedores tienen que ocupar un espacio de ≤1000px, obtendrás esto:

Aquí está el enlace CodePen si quieres jugar un poco con el código.

Conclusión

El objetivo principal del diseño receptivo es lograr versatilidad y eficiencia, y con la introducción de consultas de contenedores, estamos un paso más cerca de la perfección en el diseño receptivo. Resuelve muchas de las limitaciones de las consultas de medios, pero no las reemplaza por completo.

Personalmente, creo que las consultas de medios y las consultas de contenedores son como nuggets de pollo y salsa picante: ambas tienen sus usos por separado, pero juntas harán temblar tu mundo. Espero que te diviertas usándolos.

Nos vemos en la próxima.

Fuente: https://blog.logrocket.com/choose- between -media-container-queries/

#media #css 

What is GEEK

Buddha Community

 Elegir Entre Consultas De Medios Y Consultas De Contenedores

Elegir Entre Consultas De Medios Y Consultas De Contenedores

Todos los que se mantienen al día con los últimos eventos en el mundo del diseño receptivo estarán de acuerdo en que la introducción de consultas de contenedores CSS es un cambio de juego. Es lo más emocionante que ha sucedido desde la introducción de las consultas de medios.

Pero, ¿qué es una consulta de contenedor? ¿Por qué son importantes las consultas de contenedores y cómo puede usarlas?

En este artículo, vamos a responder todas esas preguntas y más a través de las siguientes secciones:

  • ¿Qué es una consulta de medios en CSS?
  • El problema con las consultas de medios
  • Cuándo y cómo usar consultas de medios
  • Cuándo y cómo usar consultas de contenedor

Sin perder más tiempo, entremos de lleno.

¿Qué es una consulta de medios en CSS?

Hace mucho tiempo, la mayoría de los sitios web tenían muchos problemas para representar componentes en diferentes tamaños de pantalla, especialmente con la revolución de los teléfonos móviles. La mayoría de los sitios web solucionaron ese problema creando un nuevo sitio web con el dominio m.. Si alguna vez has usado m.facebook.com, esta es la razón.

Todo eso fue antes de las consultas de los medios. Con las consultas de medios, los sitios web se pueden crear para que se ajusten a una ventana de visualización en particular, por lo que se acabaron los días de hacer zoom en su teléfono inteligente para ver qué hay en el sitio web.

Las consultas de medios proporcionan una declaración condicional en torno a algunos estilos, que luego se implementan o no en función de si se cumplen o no las condiciones.

El problema con las consultas de medios

Si bien las consultas de medios cambiaron mucho, todavía tenían un problema: no son reutilizables. Con las consultas de medios, puede crear un elemento receptivo e implementarlo, y aunque se ve bien en un caso de uso estándar, probablemente no funcionará tan bien si se mueve a un contenedor diferente con propiedades CSS que afectan las dimensiones del elemento. Para que funcione correctamente, deberá agregar muchas más propiedades CSS.

Aquí es donde entran en juego las consultas de contenedores. Con las consultas de contenedores, ahora puede dirigirse a elementos individuales y habilitarlos para que se adapten a prácticamente cualquier contenedor o diseño dado.

Las consultas de contenedores son como las consultas de medios; la única diferencia es que hacen que un contenedor o elemento responda según el espacio disponible para el contenedor, en lugar de la ventana gráfica. Pero eso plantea la pregunta: ¿necesitamos más las consultas de los medios?

 

Cuándo y cómo usar consultas de medios

La respuesta a la pregunta anterior es ¡sí! Todavía hay un montón de casos de uso para consultas de medios, a pesar de que las consultas de contenedores resuelven sus limitaciones considerables.

Las consultas de medios pueden y deben seguir usándose para diseños de página, que generalmente se encuentran en el nivel más alto del DOM y no están anidados en otro contenedor. Son los más adecuados para esto porque el diseño de la página principal no debe adaptarse a nada más que a la ventana gráfica.

Las consultas de medios también se pueden usar para diseñar elementos globales como el espaciado, el tamaño de fuente o los colores. Por ejemplo, si crea un sitio web con fuentes de gran tamaño, es probable que la fuente y el espacio sean demasiado grandes para una pantalla móvil. Eso se puede arreglar con consultas de medios como esta:

:root {
   --font-size-hl: 20px;
   --font-size-h2: 15px;
   --font-size-h3: 12px;
   --font-size-p: 8px;


   --letter-spacing: 8px;
}

@media (min-width: 300px) {
   :root {
       --font-size-hl: 13px;
       --font-size-h2: 10;
       --font-size-h3: 8px;
       --font-size-p: 5pxrem;

       --letter spacing: 4px;
   }
}

Uno de los escenarios de consultas de medios en los que brilla es cuando tienes que eliminar un componente de una página. Por ejemplo, mira esta página de inicio de Instagram:

En el escritorio, la barra de mensajes se ve muy bien, pero la mayoría de los dispositivos móviles no tienen el tamaño de pantalla para mostrar esto de manera adecuada. Con las consultas de medios, se puede eliminar toda la pestaña del mensaje y la misma página se mostrará así.

Vale la pena señalar que las consultas de medios no son solo para detectar tamaños de pantalla y cómo afectan los componentes.

Las consultas de medios también se pueden usar para diferentes consultas relacionadas con las preferencias del usuario, como:

Cuándo y cómo usar consultas de contenedor

Las consultas de contenedores le permiten dirigirse a un contenedor específico y configurarlo para que se muestre según el ancho y la altura del contenedor, sin tener que usar consultas de medios. Se usa principalmente para componentes de tarjetas, pero es flexible, por lo que puede usarlo para múltiples componentes.

Con Vanilla CSS, las propiedades utilizadas en las consultas de contenedores comparten muchas similitudes con las propiedades que ha estado utilizando en las consultas de medios. Las únicas otras propiedades que necesita aprender son:

  • container-type: se usa para declarar el elemento como un contenedor de consultas, lo que permite que el componente secundario consulte contra él
  • container-name: Se utiliza para asignar un nombre al contenedor para un mayor filtrado.

Echemos un vistazo a un ejemplo de tarjeta rápida. Primero, hagamos un borrador de una tarjeta con HTML.

<div class="container">
  <div class="contain-container contain-container--small">
    <h2>first example</h2>
    <div class="contain">
      <div class="contain__thumbnail"&gt;</div>
      <div class="contain__content">

        <h3 class="contain__title">Lorem Ipsium in english</h3>
        <p class="contain__description">But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some great pleasure. .</p>
      </div>
    </div>
  </div>
  <div class="contain-container contain-container--large">
    <h2>Second example</h2>
    <div class="contain">
      <div class="contain__thumbnail"></div>
      <div class="contain__content">
        <h3 class="contain__title">Lorem Ipsium in english</h3>
        <p class="contain__description">To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that produces no resultant pleasure.</p>
      </div>
    </div>
  </div>
</div>

El texto ficticio es solo una versión traducida de lorem ipsum. Es mi peculiaridad personal.

A continuación, introduzcamos el CSS.

body {
  background: #5f64e2;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica,
    Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
  color: #fdf2f2;
}

.container {
  padding: 16px;
  margin: auto;
  display: flex;
  gap: 16px;
}

.contain-container {
  margin: 16px auto;
  flex-grow: 0;
  contain: layout inline-size;
  container-type: inline-size;
  --css-contain: layout inline-size;
}

.contain-container--small {
  width: 300px;
}

.contain-container--large {
  width: 600px;
}

.contain {
  padding: 16px;
  border-radius: 8px;
  background: black;
  margin-bottom: 16px;
  color: white;
}

  .contain__thumbnail {
    height: 130px;
    min-width: 130px;
    background: red;
    border-radius: 4px;
  }

  .contain__title {
    margin-top: 4px;
    margin-bottom: 8px;
  }

  .contain__description {
    margin: 0;
  }

El resultado del código anterior se verá así:

Ambas tarjetas son prácticamente iguales, excepto que una tiene un ancho de 300 px y la otra tiene un ancho de 600 px. Con las consultas de contenedor, podemos hacer que la tarjeta de la derecha se vea y se comporte de manera muy diferente con el siguiente código.

@container (min-width: 400px) {
  .contain {
    background-color: white;
    color: black;
    display: flex;
    gap: 16px;
  }
}

Lo que hace ese código es decirle a cualquier contenedor que tenga más de 400 px de ancho que tenga un color de fondo blanco, use display: flexy tenga un color de texto negro. El resultado se verá así:

Los cambios en la tarjeta de la derecha solo se aplican si la tarjeta tiene que ocupar un espacio con un ancho de ≥ 400 px, por lo que si no hay suficiente espacio para que se muestre, o si está siendo vista por un dispositivo móvil, las tarjetas se revertirán. a esto.

Consultas de contenedores con CSS-in-JS

Sé que JSS, o CSS-in-JS , es un tema bastante controvertido en este momento. Hay un par de personas, como este tipo que odia JSS y no quiere que te acerques a él, o este tipo que lo ama absolutamente y quiere que lo uses.

Ya sea que te guste JSS o no, debes admitir que es bastante útil. Al igual que con CSS normal, es posible usar consultas de contenedores en JSS. He aquí un ejemplo muy simple de cómo funciona.

Primero, construyamos cuatro contenedores simples.

<div class=cquery>
  <h1>To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? </h1>
</div>

<div class=cquery style=width:80%>
  <h1>To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it?</h1>
</div>

<div class=cquery style=width:60%>
  <h1>To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it?</h1>
</div>

<div class=cquery style=width:40%>
  <h1>To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it?</h1>
</div>

A continuación, agreguemos el JSS. He puesto algunos comentarios para que sea fácilmente comprensible.

function JSinCSS() {
  //target an html element with id ='JSinCSS' and declare it tag
  let tag = document.querySelector("#JSinCSS");

  //if there is no html element with id ='#JSinCSS'
  if (!tag) {
    //create a style tag like this
    //<style></style>
    tag = document.createElement("style");

    //set id of style tag to be 'JSinCSS'
    //<style id='JSinCSS'></style>
    tag.id = "JSinCSS";
    //we call document.head.appendChild to append the style element to the head tag as a child.
    document.head.appendChild(tag);
  }

  //inside the style tag add innerHTML to it

  tag.innerHTML = `

    body:before {
      content: '${innerWidth} x ${innerHeight}';
    }

    .cquery {
      border: 4px solid red;
      background-color: green;
    }

    ${containerQuery('.cquery', 'this.offsetWidth > 500', `

      $this {
        background: blue;
      }

      $this h1 {
        font-size: 30pt;
      }

    `)}

    ${containerQuery('.cquery', 'this.offsetWidth > 800', `

      $this {
        background: purple;
      }

      $this h1 {
        font-size: 30pt;
      }

    `)}


    ${containerQuery('.cquery', 'this.offsetWidth > 1000', `

      $this {
        background: gold;
      }

      $this h1 {
        font-size: 30pt;
      }

    `)}

  `

}

function containerQuery(selector, test, stylesheet) {
    //target the container element and declare it tag
  var tag = document.querySelectorAll(selector);
  var style = "";
  var count = 1;

  for (var i = 0; i < tag.length; i++) {
      //tag.length return the number of nodes in tag
      // run a forLoop so when i == tag.length 
      //declare a function that returns test
    var func = new Function(`return ${test}`);
    var attr = (selector + test).replace(/[= "'><+\.]/g, "");

    if (func.call(tag[i])) {
      tag[i].setAttribute(`data-${attr}`, count);

      var css = stylesheet.replace(/\$this/g, `[data-${attr}="${count}"]`);

      style += css;

      count++;
    } else {
      tag[i].setAttribute(`data-${attr}`, "");
    }
  }

  return style;
}

//call the function in to listen to different events and call the function JSinCSS
window.addEventListener("load", JSinCSS);
window.addEventListener("resize", JSinCSS);
window.addEventListener("input", JSinCSS);
window.addEventListener("click", JSinCSS);

El código anterior crea cuatro contenedores diferentes y luego establece una consulta de contenedor con la containerQueryetiqueta para que los colores de los contenedores cambien en diferentes tamaños. El resultado se ve así.

Desde el HTML, puede ver que es el mismo contenedor. Pero con un ancho de ≥1000px, el color del contenedor se vuelve dorado. Con anchos de 800 px y 500 px, el contenedor se vuelve morado y azul, respectivamente. Debajo de eso, permanece en su color verde predeterminado. Entonces, si estos mismos contenedores tienen que ocupar un espacio de ≤1000px, obtendrás esto:

Aquí está el enlace CodePen si quieres jugar un poco con el código.

Conclusión

El objetivo principal del diseño receptivo es lograr versatilidad y eficiencia, y con la introducción de consultas de contenedores, estamos un paso más cerca de la perfección en el diseño receptivo. Resuelve muchas de las limitaciones de las consultas de medios, pero no las reemplaza por completo.

Personalmente, creo que las consultas de medios y las consultas de contenedores son como nuggets de pollo y salsa picante: ambas tienen sus usos por separado, pero juntas harán temblar tu mundo. Espero que te diviertas usándolos.

Nos vemos en la próxima.

Fuente: https://blog.logrocket.com/choose- between -media-container-queries/

#media #css 

joe biden

1617257581

Software de restauración de Exchange para restaurar sin problemas PST en Exchange Server

¿Quiere restaurar los buzones de correo de PST a Exchange Server? Entonces, estás en la página correcta. Aquí, lo guiaremos sobre cómo puede restaurar fácilmente mensajes y otros elementos de PST a MS Exchange Server.

Muchas veces, los usuarios necesitan restaurar los elementos de datos de PST en Exchange Server, pero debido a la falta de disponibilidad de una solución confiable, los usuarios no pueden obtener la solución. Háganos saber primero sobre el archivo PST y MS Exchange Server.

Conozca PST y Exchange Server

PST es un formato de archivo utilizado por MS Outlook, un cliente de correo electrónico de Windows y muy popular entre los usuarios domésticos y comerciales.

Por otro lado, Exchange Server es un poderoso servidor de correo electrónico donde todos los datos se almacenan en un archivo EDB. Los usuarios generalmente guardan la copia de seguridad de los buzones de correo de Exchange en el archivo PST, pero muchas veces, los usuarios deben restaurar los datos del archivo PST en Exchange. Para resolver este problema, estamos aquí con una solución profesional que discutiremos en la siguiente sección de esta publicación.

Un método profesional para restaurar PST a Exchange Server

No le recomendamos que elija una solución al azar para restaurar los datos de PST en Exchange Server. Por lo tanto, al realizar varias investigaciones, estamos aquí con una solución inteligente y conveniente, es decir, Exchange Restore Software. Es demasiado fácil de manejar por todos los usuarios y restaurar cómodamente todos los datos del archivo PST a Exchange Server.

Funciones principales ofrecidas por Exchange Restore Software

El software es demasiado simple de usar y se puede instalar fácilmente en todas las versiones de Windows. Con unos pocos clics, la herramienta puede restaurar los elementos del buzón de Exchange.

No es necesario que MS Outlook restaure los datos PST en Exchange. Todos los correos electrónicos, contactos, notas, calendarios, etc. se restauran desde el archivo PST a Exchange Server.

Todas las versiones de Outlook son compatibles con la herramienta, como Outlook 2019, 2016, 2013, 2010, 2007, etc. La herramienta proporciona varios filtros mediante los cuales se pueden restaurar los datos deseados desde un archivo PST a Exchange Server. El programa se puede instalar en todas las versiones de Windows como Windows 10, 8.1, 8, 7, XP, Vista, etc.

Descargue la versión de demostración del software de restauración de Exchange y analice el funcionamiento del software restaurando los primeros 50 elementos por carpeta.

Líneas finales

No existe una solución manual para restaurar los buzones de correo de Exchange desde el archivo PST. Por lo tanto, hemos explicado una solución fácil e inteligente para restaurar datos de archivos PST en Exchange Server. Simplemente puede usar este software y restaurar todos los datos de PST a Exchange Server.

Más información:- https://www.datavare.com/software/exchange-restore.html

#intercambio de software de restauración #intercambio de restauración #buzón del servidor de intercambio #herramienta de restauración de intercambio

joe biden

1617255938

¿Cómo migrar los buzones de correo de Exchange a la nube de Office 365?

Si tiene problemas para migrar los buzones de correo de Exchange a Office 365, debe leer este artículo para saber cómo migrar los buzones de correo de Exchange EDB a Office 365. Al migrar a Office 365, los usuarios pueden acceder a sus buzones de correo desde cualquier lugar y desde cualquier dispositivo.

En esta publicación, explicaremos las razones detrás de esta migración y una solución profesional para migrar de Exchange a Office 365.

Razones para migrar Exchange Server a la nube de Office 365

Office 365 apareció por primera vez en 2011 y, dado que se considera la mejor plataforma para aquellas organizaciones que desean administrar todo su sistema de correo electrónico en la nube. Estas son las características clave de Office 365:

  1. Permite trabajar desde cualquier lugar y desde cualquier lugar.
  2. No se preocupe por el spam y el malware.
  3. La seguridad proporcionada por Office 365 es altamente confiable.
  4. Controla el costo total y brinda flexibilidad financiera.
  5. Todas las actualizaciones y mejoras son administradas por Microsoft.

¿Cómo migrar los buzones de correo de Exchange a Office 365?

Hay varias formas manuales de migrar los buzones de correo de Exchange EDB a Office 365, pero para evitar estos complicados y prolongados procedimientos, presentamos una solución de terceros, es decir, la herramienta de migración de Exchange, que es automatizada y directa para la migración de Exchange a Office 365. La herramienta funciona rápidamente y migra todos los elementos del buzón de Exchange Server a Office 365.

La herramienta de migración de Datavare Exchange es demasiado fácil de usar y ofrece pasos sencillos para migrar EDB a Office 365:

  1. Descargue e instale el software en su sistema.
  2. Agregue el archivo EDB de Exchange con el botón Examinar.
  3. Seleccione exportar a buzones de correo de Office 365.
  4. Proporcione los detalles de inicio de sesión de la cuenta de Office 365.
  5. Seleccione la carpeta y presione el botón Finalizar.

Por lo tanto, todos sus buzones de correo de Exchange EDB ahora se migran a Office 365.
Nota: puede usar filtros para migrar los elementos de datos deseados de la cuenta de Exchange a la de Office 365

Líneas finales

Este blog le indica una solución profesional para la migración de buzones de correo de Exchange a la cuenta de Office 365. Dado que las soluciones manuales son complicadas, sugerimos la herramienta de migración de Exchange, que es demasiado simple de usar. Los usuarios no se enfrentan a problemas al operar el programa. La mejor parte de este software es que no necesita habilidades técnicas para realizar la migración. Se puede comprender el funcionamiento del software descargando la versión de demostración que permite la migración de los primeros 50 elementos por carpeta.

Más información:- https://www.datavare.com/software/edb-migration.html

#herramienta de migración de intercambio #migración de intercambio #migrar buzones de correo de exchange

Pallob Ghosh

1621755828

Entre Institute Review - Scam or Trusty? $10k/Mo BIZ Model?

Entre Institute is an Entrepreneurship Educational Platform that currently teaching 150,000 people around the world to build their online business successfully. Jeff Lerner is the mastermind behind The Entre Institute. After a decade of building multiple online businesses to over 8 figures and twice landing on the INC 5000, Jeff turned his focus to educating and inspiring entrepreneurs about the power of entrepreneurship in the modern economy. In 2018 he founded ENTRE Institute where over 50,000 students are developing their ENTREpreneurial skills.

More Details: Entre Institute Review

#entre institute review #entre institute #entre #entre blueprint #entrepreneurship

Herramienta de recuperación EDB para recuperar archivos EDB de Exchange corruptos

Todos los datos de Exchange Server, como correos electrónicos, contactos, notas, eventos, calendario, etc. se almacenan en el archivo Exchange EDB. A veces, el archivo EDB se vuelve inaccesible debido a la corrupción o daños en el archivo EDB. La corrupción del archivo EDB puede deberse a varias razones, como: B. grandes cantidades de datos, ataques de virus, problemas de red, etc. En este caso, los usuarios no pueden acceder a sus datos a través de archivos EDB dañados. Debido a esto, es necesario restaurar los elementos del buzón de un archivo EDB dañado. Pero, ¿cómo recuperar elementos de buzón dañados para archivos EDB? La respuesta a esa pregunta se encuentra en este blog. Así que sigamos con esta publicación para obtener una solución inmediata para la recuperación de elementos del buzón de Exchange.

¿Conoce el archivo EDB

El archivo Exchange EDB almacena datos en forma de archivos de base de datos:

Priv1.edb y Pub1.edb

La corrupción puede ocurrir en cualquier archivo EDB. Aquí le ofrecemos una solución para la recuperación de datos de estos dos archivos EDB.

Antes de eso, aclaremos las razones detrás de la corrupción en el archivo EDB, que discutiremos en la siguiente sección de este blog.

Razones detrás de la corrupción de archivos EDB

Estas son las principales razones detrás de la corrupción de archivos EDB.

• Un problema de sincronización con Exchange Server puede dañar el archivo EDB.
• El antivirus instalado en el servidor ha eliminado el archivo de registro.
• Almacenamiento excesivo en Exchange Server.
• Error al proporcionar datos del archivo EDB por Exchange Server.
• Los problemas de hardware o de red pueden dañar el archivo EDB.

Una solución inteligente para restaurar archivos EDB de Exchange

Hay varias formas manuales, como la utilidad Eseutil e Isinteg de Exchange Server, para restaurar la base de datos de Exchange Server. Sin embargo, estos métodos son complicados y es más probable que fallen. En esta situación, se recomienda utilizar otra solución inteligente y eficaz como la herramienta de terceros EDB Recovery. Esta es una de las soluciones más fáciles para restaurar todos los elementos como correo electrónico, contactos, notas, calendario, etc. desde el buzón de Exchange. El software soluciona rápidamente los problemas del archivo EDB y ayuda a los usuarios a obtener todos los elementos del buzón del archivo EDB dañado. Se necesitan unos minutos para reparar los elementos del archivo EDB y le permite exportar los datos recuperados a varios formatos de archivo como PST, EML, MSG, HTML, etc.

Siga los pasos para usar el software de recuperación de EDB para recuperar elementos de buzón de correo corruptos para archivos EDB.

  1. Descargue e inicie el Datavare software de recuperación EDB.
  2. Agregue el archivo EDB usando la opción Examinar.
  3. Seleccione la opción para guardar los datos después de la recuperación.
  4. Seleccione la ubicación del archivo de salida y haga clic en Siguiente.
  5. Guarde el informe de recuperación de archivos EDB y haga clic en Finalizar.
Líneas de cierre

Mit dieser Software, d. H. Der oben beschriebenen EDB-Wiederherstellung, können Benutzer alle beschädigten EDB-Dateien reibungslos reparieren und wiederherstellen. Benutzer haben keine Probleme beim Bedienen der Software. Benutzer können Exchange EDB-Dateien mithilfe der Software in PST und verschiedenen anderen Formaten wiederherstellen und speichern. Durch Herunterladen der Testversion können Benutzer die Funktionen und die Arbeitsgeschwindigkeit der Software überprüfen, indem sie die ersten 50 Elemente pro Ordner wiederherstellen. Wenden Sie sich bei Unklarheiten rund um die Uhr an unser technisches Personal.

Más información:- https://www.datavare.com/software/edb-recovery.html

#herramienta de recuperación de edb #recuperación de adobe #recuperar archivos edb de intercambio corruptos #recuperar archivos edb