lunes, 23 de marzo de 2020

Diseño responsivo usando reglas AT

La estructura básica de una página web con HTML5 es:

<!DOCTYPE html>
<html>
   <head>
      <title>Título de la página</title>
      <!-- METATAGS, archivos externos, etc. -->
   </head>
   <body>
      Contenido de la página
   </body>
</html>

Para implementar un diseño responsivo mediante reglas AT debemos agregar un archivo CSS, que llamaremos estructura.css, se ubicará dentro de una carpeta css y su código es:

* {box-sizing: border-box;}

body {
 margin: 0;
 padding: 0;
 width: 100%;
}

.fila {margin: 0 auto;}

.fila::after {
 content: "";
 clear: both;
 display: table;
}

[class*="col-"], [class*="col-m-"], [class*="col-s-"] {
 width: 100%;
 float: left;
}

@media only screen and (min-width: 1px) {
 html {font-size: 12px;}
 [class*="col-s-"] {padding: 0rem;}
 .col-s-1 {width: 8.33%;}
 .col-s-2 {width: 16.66%;}
 .col-s-3 {width: 25%;}
 .col-s-4 {width: 33.33%;}
 .col-s-5 {width: 41.66%;}
 .col-s-6 {width: 50%;}
 .col-s-7 {width: 58.33%;}
 .col-s-8 {width: 66.66%;}
 .col-s-9 {width: 75%;}
 .col-s-10 {width: 83.33%;}
 .col-s-11 {width: 91.66%;}
 .col-s-12 {width: 100%;}
}

@media only screen and (min-width: 512px) {
 html {font-size: 14px;}
 .fila {width: 90%; }
 [class*="col-m-"] {padding: 0.5rem;}
 .col-m-1 {width: 8.33%;}
 .col-m-2 {width: 16.66%;}
 .col-m-3 {width: 25%;}
 .col-m-4 {width: 33.33%;}
 .col-m-5 {width: 41.66%;}
 .col-m-6 {width: 50%;}
 .col-m-7 {width: 58.33%;}
 .col-m-8 {width: 66.66%;}
 .col-m-9 {width: 75%;}
 .col-m-10 {width: 83.33%;}
 .col-m-11 {width: 91.66%;}
 .col-m-12 {width: 100%;}
}

@media only screen and (min-width: 700px) {
 html {font-size: 16px;}
 .fila {width: 80%;}
 [class*="col-"] {padding: 1rem;}
 .col-1 {width: 8.33%;}
 .col-2 {width: 16.66%;}
 .col-3 {width: 25%;}
 .col-4 {width: 33.33%;}
 .col-5 {width: 41.66%;}
 .col-6 {width: 50%;}
 .col-7 {width: 58.33%;}
 .col-8 {width: 66.66%;}
 .col-9 {width: 75%;}
 .col-10 {width: 83.33%;}
 .col-11 {width: 91.66%;}
 .col-12 {width: 100%;}
}

Lo que nos interesa es la sintaxis:
  
@media only screen and (min-width: /*tamaño de la pantalla*/)
  

El archivo para probar si nuestra página funciona sería el archivo index.html:

<!DOCTYPE html>
<html>
   <head>
      <title>Inlearning Code - Responsive</title>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <!-- Archivo CSS -->
      <link href="css/estructura.css" rel="stylesheet" type="text/css" />
   </head>
   <body>
      <header class="fila">
         <div class="col-10 col-m-8 col-s-6" style="background-color: #b4e3cc;">COL 10</div>
         <div class="col-2 col-m-4 col-s-6" style="background-color: #ff5733;">COL 2</div>
      </header>
      <div class="fila">
         <div class="col-4 col-m-3 col-s-12" style="background-color: #decd3e;">COL 4</div>
         <div class="col-4 col-m-6 col-s-12" style="background-color: #a4e57c;">COL 4</div>
         <div class="col-4 col-m-3 col-s-12" style="background-color: #dfc80c;">COL 4</div>
      </div>
      <footer class="fila">
         <div class="col-12 col-m-12 col-s-12" style="background-color: #ffa200;">COL 12</div>
      </footer>
   </body>
</html>

El resultado sería cuando la pantalla tiene de 700px a más :


El resultado sería cuando la pantalla va desde los 512px hasta menos de 700px:


El resultado sería cuando la pantalla es menor de 512px:


No hay comentarios:

Publicar un comentario