{"id":1489,"date":"2018-07-04T13:07:58","date_gmt":"2018-07-04T18:07:58","guid":{"rendered":"http:\/\/naps.com.mx\/blog\/?p=1489"},"modified":"2018-07-04T13:44:53","modified_gmt":"2018-07-04T18:44:53","slug":"normalizar-css-con-normalize-y-modernizr","status":"publish","type":"post","link":"https:\/\/naps.com.mx\/blog\/normalizar-css-con-normalize-y-modernizr\/","title":{"rendered":"Normalizar CSS con normalize y compatibilizar navegadores con modernizr"},"content":{"rendered":"<p><em><strong>\u00bfQu\u00e9 es normalizar CSS? \u00bfPor qu\u00e9 es importante? En esta entrada aprenderemos a descargar y utilizar Normalize. Adem\u00e1s veremos su diferencia con Modernizr.<\/strong><\/em><\/p>\n<p><!--more--><\/p>\n<p>El CSS del dise\u00f1ador no es el \u00fanico CSS que se est\u00e1 ejecutando, el navegador incluye sus propios estilos CSS. Lo puedes ver cuando escribes una etiqueta H1 y otra H2. El H1 tendr\u00e1 un tama\u00f1o m\u00e1s grande, \u00bfverdad? \u00bfQui\u00e9n determin\u00f3 ese cambio de tama\u00f1os? El navegador aplic\u00f3 autom\u00e1ticamente estilos CSS. Ahora bien, no todos los navegadores tienen los mismos estilos CSS entre ellos.<span class=\"Apple-converted-space\">\u00a0 <\/span>Incluso el usuario del sitio puede cambiar el CSS de una p\u00e1gina, pueden, por ejemplo, cambiar el tama\u00f1o de la letra o los colores de los v\u00ednculos a trav\u00e9s de la configuraci\u00f3n de su propio navegador.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<p>Esto crea algunos conflictos, pues una p\u00e1gina pudiera llegar a verse de una forma en un navegador y de otra forma en otro, aunque tengan el mismo CSS y el mismo HTML.<\/p>\n<h2>Normalizar CSS<\/h2>\n<p>Los normalizadores regulan las caracteristicas que pueden verse afectadas por las diferencias entre navegadores. Existen varias formas de normalizar CSS, como es Reset y como es Normalize.<\/p>\n<p>Nosotros vamos a utilizar Normalize. Vamos a la p\u00e1gina del autor de Normalize y damos clic en Download<\/p>\n<p><a href=\"https:\/\/necolas.github.io\/normalize.css\/\">https:\/\/necolas.github.io\/normalize.css\/<\/a><\/p>\n<div id=\"attachment_1492\" style=\"width: 778px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2018\/07\/uso-de-normalize.jpeg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1492\" class=\"size-full wp-image-1492\" src=\"http:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2018\/07\/uso-de-normalize.jpeg\" alt=\"Normalize para normalizar CSS\" width=\"768\" height=\"614\" srcset=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2018\/07\/uso-de-normalize.jpeg 768w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2018\/07\/uso-de-normalize-300x240.jpeg 300w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/a><p id=\"caption-attachment-1492\" class=\"wp-caption-text\">Normalize para normalizar CSS<\/p><\/div>\n<p>Al darle en <strong>Descargar<\/strong> veremos c\u00f3digo CSS, los guardamos en un archivo al que nombraremos <em>normalize.css<\/em>.<\/p>\n<p>Ahora enlazamos el archivo <em>normalize.css<\/em> en el HTML. El enlace a <em>normalize.css<\/em> se debe colocar antes del enlace a mi estilo.css para que se cargue antes.<\/p>\n<p>Vamos a utilizar el ejemplo visto en la entrada anterior:\u00a0CSS en 1 minuto: introducci\u00f3n a las hojas de estilo en cascada<\/p>\n<pre class=\"lang:xhtml decode:true \">\t&lt;link rel= \"stylesheet\" href=\"normalize.css\"&gt;\r\n\t&lt;link rel=\"stylesheet\"  href=\"estilo.css\"&gt;<\/pre>\n<p>&nbsp;<\/p>\n<p>Es muy importante antes de utilizar cualquier CSS propio normalizar CSS usando normalize o cualquier otro normalizador.<\/p>\n<p>Veamos la demostraci\u00f3n de uso de normalize: En la primera im\u00e1gen vemos nuestro archivo original sin normalize (el que hicimos en la entrada anterior). Observamos que el navegador autom\u00e1ticamente asigna unos peque\u00f1os bordes blancos alrededor de nuestro header oscuro.<span class=\"Apple-converted-space\">\u00a0 <\/span>En la segunda imagen vemos el archivo utilizando normalize y esos bordes han desaparecido. Hemos logrado normalizar CSS.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<div id=\"attachment_1497\" style=\"width: 2049px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2018\/07\/html-sin-normalize.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1497\" class=\"size-full wp-image-1497\" src=\"http:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2018\/07\/html-sin-normalize.png\" alt=\"Sin utilizar normalize\" width=\"2039\" height=\"281\" srcset=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2018\/07\/html-sin-normalize.png 2039w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2018\/07\/html-sin-normalize-300x41.png 300w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2018\/07\/html-sin-normalize-768x106.png 768w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2018\/07\/html-sin-normalize-1024x141.png 1024w\" sizes=\"auto, (max-width: 2039px) 100vw, 2039px\" \/><\/a><p id=\"caption-attachment-1497\" class=\"wp-caption-text\">Sin utilizar normalize<\/p><\/div>\n<p><a href=\"http:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2018\/07\/html-con-normalize.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1498\" src=\"http:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2018\/07\/html-con-normalize.png\" alt=\"\" width=\"2040\" height=\"280\" srcset=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2018\/07\/html-con-normalize.png 2040w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2018\/07\/html-con-normalize-300x41.png 300w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2018\/07\/html-con-normalize-768x105.png 768w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2018\/07\/html-con-normalize-1024x141.png 1024w\" sizes=\"auto, (max-width: 2040px) 100vw, 2040px\" \/><\/a><\/p>\n<h2>Compatibilizar navegadores usando Modernizr<\/h2>\n<p>No todas las propiedades CSS se implementan del mismo modo en diferentes versiones de los navegadores. Cada navegador tiene un motor interno diferente. Actualmente la versi\u00f3n de CSS es la 3 que tiene algunas funciones que versiones anteriores de navegadores no soportan (por ejemplo, algunas animaciones).<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<p>Para resolver esos problemas estan los compatibilizadores como modernizr.<\/p>\n<p>Modernizr se encarga de resolver cualquier incompatibilidad entre las diferentes versiones de navegadores.<span class=\"Apple-converted-space\">\u00a0<\/span><\/p>\n<p>La direcci\u00f3n para descargar es la siguiente: <a href=\"https:\/\/modernizr.com\">https:\/\/modernizr.com<\/a><\/p>\n<p>Si vas a la secci\u00f3n de Download ver\u00e1s una lista muy larga de opciones que modernizr puede compatibilizar. No \u00fanicamente CSS sino cualquier otro c\u00f3digo de HTML5 y otras funciones que son modernas. Marcamos las opciones que deseamos asegurarnos que vayan a funcionar, por ejemplo, transiciones, gradientes, opacidad, etc. Marcamos y pulsamos en Build y nos descargar\u00e1 un JS con esas caracter\u00edsticas compatibilizadas.<\/p>\n<p>Luego, vamos a enlazar ese archivo a nuestro HTML<\/p>\n<div id=\"attachment_1499\" style=\"width: 1494px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2018\/07\/uso-de-modernizr-2.jpeg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1499\" class=\"size-full wp-image-1499\" src=\"http:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2018\/07\/uso-de-modernizr-2.jpeg\" alt=\"Uso de modernizr\" width=\"1484\" height=\"826\" srcset=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2018\/07\/uso-de-modernizr-2.jpeg 1484w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2018\/07\/uso-de-modernizr-2-300x167.jpeg 300w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2018\/07\/uso-de-modernizr-2-768x427.jpeg 768w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2018\/07\/uso-de-modernizr-2-1024x570.jpeg 1024w\" sizes=\"auto, (max-width: 1484px) 100vw, 1484px\" \/><\/a><p id=\"caption-attachment-1499\" class=\"wp-caption-text\">Selecciona las opciones que deseas compatibilizar<\/p><\/div>\n<p>A\u00f1adimos el siguiente c\u00f3digo a la secci\u00f3n Head de nuestro HTML<\/p>\n<pre class=\"lang:xhtml decode:true\">\t&lt;script src=\"modernizr-custom.js\"&gt;&lt;\/script&gt;<\/pre>\n<h2>Prefijos<\/h2>\n<p>CSS tiene funciones nuevas que no todos los navegadores entienden a la primera. Por ejemplo, un gradiente se maneja asi:<\/p>\n<pre class=\"lang:css decode:true \">background: linear-gradient(  top, #000 0%,  #fff 100%);<\/pre>\n<p>Le estamos indicando que el background o color de fondo del header ser\u00e1 un gradiente que ir\u00e1 de negro a blanco de arriba hacia abajo.<\/p>\n<p>Sin embargo, si ejecutas ese estilo ver\u00e1s que no aparece el gradiente. Esto es porque mi navegador (en este caso Safari) no reconoce la instrucci\u00f3n<em> linear-gradient<\/em>. Algo similar ocurrir\u00e1 con Chrome. Para estos casos se requiere el uso de los prefijos. Los prefijos son los siguientes:<\/p>\n<p>&#8211;<strong>webkit<\/strong>&#8211; <span class=\"Apple-converted-space\">\u00a0 se usa en\u00a0<\/span>Chrome, Safari, Navegador Android<\/p>\n<p>&#8211;<strong>moz<\/strong>&#8211; <span class=\"Apple-converted-space\">\u00a0 se usa en\u00a0<\/span>Firefox<\/p>\n<p>&#8211;<strong>o<\/strong>&#8211; <span class=\"Apple-converted-space\">\u00a0 \u00a0 se usa en\u00a0<\/span>Opera<\/p>\n<p>&#8211;<strong>ms<\/strong>&#8211; <span class=\"Apple-converted-space\">\u00a0se usa en\u00a0<\/span>Internet Explorer, Edge<\/p>\n<p>&#8211;<strong>khtml<\/strong>&#8211;<span class=\"Apple-converted-space\">\u00a0 se usa en\u00a0<\/span>konqueror<\/p>\n<p>En nuestro caso, para probarlo en Safari (o Chrome) la linea quedar\u00eda asi:<\/p>\n<pre class=\"lang:css decode:true \">background: -webkit-linear-gradient(  top, #000 0%,  #fff 100%);<\/pre>\n<p>&nbsp;<\/p>\n<p>Y vemos que funciona correctamente:<\/p>\n<div id=\"attachment_1506\" style=\"width: 2048px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2018\/07\/prefijos-para-safari.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1506\" class=\"size-full wp-image-1506\" src=\"http:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2018\/07\/prefijos-para-safari.png\" alt=\"Un gradiente usando el prefijo -webkit-\" width=\"2038\" height=\"258\" srcset=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2018\/07\/prefijos-para-safari.png 2038w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2018\/07\/prefijos-para-safari-300x38.png 300w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2018\/07\/prefijos-para-safari-768x97.png 768w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2018\/07\/prefijos-para-safari-1024x130.png 1024w\" sizes=\"auto, (max-width: 2038px) 100vw, 2038px\" \/><\/a><p id=\"caption-attachment-1506\" class=\"wp-caption-text\">Un gradiente usando el prefijo -webkit-<\/p><\/div>\n<p><strong>Sugerencia de recurso<\/strong>:\u00a0<a href=\"https:\/\/caniuse.com\">https:\/\/caniuse.com<\/a>\u00a0\u00bfPuedo usarlo? Es un sitio donde escribimos una instrucci\u00f3n (por ejemplo, gradient) y nos indica qu\u00e9 navegadores y en qu\u00e9 versiones es soportado o no es soportado.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00bfQu\u00e9 es normalizar CSS? \u00bfPor qu\u00e9 es importante? En esta entrada aprenderemos a descargar y utilizar Normalize. Adem\u00e1s veremos su diferencia con Modernizr.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"amp_status":"","footnotes":""},"categories":[171],"tags":[233,161,48],"class_list":["post-1489","post","type-post","status-publish","format-standard","hentry","category-programacion-web","tag-css","tag-diseno-web","tag-programacion-web"],"_links":{"self":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts\/1489","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/comments?post=1489"}],"version-history":[{"count":13,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts\/1489\/revisions"}],"predecessor-version":[{"id":1509,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts\/1489\/revisions\/1509"}],"wp:attachment":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/media?parent=1489"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/categories?post=1489"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/tags?post=1489"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}