Manual de Responsive Web Design - mardeasa.es
Transcript of Manual de Responsive Web Design - mardeasa.es
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 1 de 59
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 2 de 59
Introducción:ManualdeResponsiveWebDesign
EsteesunmanualdeResponsiveWebDesign,latécnicaquepermitehacerwebsadaptablesalascondicionesdelordenadorodispositivoquelasestáaccediendo.Tambiénlasconocemoscomotécnicasadaptativas,focalizadasprincipalmentealasdimensionesdelapantalla.
ResponsiveWebDesignnoesunaúnicatécnica,sinosonunconjuntodeellasquenossirvenparahacerdiseñosadaptablesalmediodondesevanaconsumir.Portanto,estemanualnotieneunprincipioyunfinquepudieraestarperfectamentedefinido,sinoquesepodríaampliarsucontenidoenfuncióndelasnecesidadesdelossitioswebenlaactualidad,experienciadelosescritoresolasnovedadesenlosestándarescomoHTMLyCSSparafacilitarlaadaptabilidaddeldiseñoweb.
EnInternetnohemosencontradounainformacióncompletayordenadadeprincipioafin,enespañol,sobreResponsiveWebDesign,porloquenoshemosdecididoaescribirestetextoqueesperamossirvadereferenciaparaquiencomienzaainteresarseporlaadaptabilidaddeldiseñooinclusoparaquienyaaplicael"Responsive".
Encuentrasestemanualonlineen:http://desarrolloweb.com/manuales/responsive-web-design.html
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 3 de 59
Autoresdelmanual
Lassiguientespersonashanparticipadocomoautoresescribiendoartículosdeestemanual.
MiguelAngelAlvarez
MiguelesfundadordeDesarrolloWeb.comylaplataformadeformaciónonlineEscuelaIT.Comenzóenelmundodeldesarrollowebenelaño1997,transformandosuhobbyensutrabajo.
DanielMartínez
Diseñadorgráficoconvertidoaweb
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 4 de 59
Conceptosfundamentalesdeldiseñoresponsive
Comenzamosporunaseriedeartículosqueexplicanlosmotivosporlosquehoyeldiseñowebdebedeseradaptable,analizandolosconceptosmásfundamentales.Elobjetivoesentenderquedebemosdiseñarparatodoslostiposdepantalla,perotambiénparatodaslasvelocidadesdeconexión,todoslosnavegadores,etc.
QuéesResponsiveWebDesign
ComenzamosconunadescripcióngeneraldeltérminoResponsiveWebDesigndemodoquetodospodamosentenderdedóndevieneyporquéestanimportanteenelmundoactualdeldesarrollo.
ResponsiveWebDesigneslatécnicaquenospermitecrearsitiosadaptablesalascondicionesdelordenadorodispositivodesdedondesevanaacceder,sobretodoenloquetienerelaciónconlapantalladelsistemadondeseestánvisualizando.Aunqueeltérminoessuficientementegeneralcomoparapoderreferirseaunaadaptabilidadentornoacualquiercondición.Enesteartículovamosaintentaraclarareltérminoparaqueloslectoressepanbienaquénosreferimos.
Antesdepensarenlaweb,podemosentendereltérmino"responsive"engeneral.Eslacaracterísticadeunsistemaquetienerespuestahaciaelmedioquelerodea.Noesalgoespecíficodelaweb,sinoqueloencontramoseneldíaadía.Porejemplo,unaluzqueseenciendecuandoalgunapersonapasaallado,unapuertaqueseabrecuandonossituamoscercaparaentrarounsemáforoqueseponeenrojocuandopasauncocheavelocidadmayordelapermitida.Todoellosonsistemas"responsive",quetienenunarespuestaconformealmedioolascondicionesdondeseencuentran.
Latraducciónpodríaser"Responsivo",quesíseencuentraeneldiccionariodelaRealAcademiaEspañolaysignifica"Pertenecienteorelativoalarespuesta".Sinembargoentérminosdeunapáginawebseríamásadecuadousarlapalabra"Adaptable",pueslapáginaescapazdeadaptarsealdispositivouordenadordondeseencuentra.Enfin,eltérminoessuficientementeconocidoeningléscomoparausarlapalabra"Responsive"yquetodoslosquevayanaleerestetextocaptenperfectamenteaquénosreferimos,porlo
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 5 de 59
quepreferimosnotraducirlo.
MarcoactualdondesurgeelResponsiveWebDesign
TenemosquepensarenlascondicionesactualesdelaWeb.AntesexistíansoloordenadoresdondeseconsumíanloscontenidosysinembargohoypodemosconsultarInternetencualquiertipodedispositivo.Móviles,tablets,televisores,libroselectrónicos,relojeseinclusoneveraspermitenaccederalaWebysusservicios.Sonmúltiplesmedioscondistintascaracterísticasylosdiseñadoreswebdebenpreocuparseporquelossitiosseveanbienencualquieradeellos.
¿Versiónparamóviles?
Tradicionalmenteenlaweblossitiosestabanoptimizadosparaordenadoresdeescritorio.Luego,alpopularizarseelaccesoaInternetenmóviles,oalintroducirseelmercadodelostablets,lohabitualeralaexistenciadediversasversionesdeunmismositio,creadasyoptimizadasespecíficamenteparateléfonos,tabletasyordenadorespersonales.
AúnseguimosviendoesasoluciónenlaInternetdehoyeimportantessitiosmantienenversionesdistintasparasuweb.Esaformadetrabajareramayoritariahastaelaño2010aproximadamente,sinembargo,noespráctica.Nosobligabaadiseñarunawebvariasvecesymantenerlayoutsparadiversostiposdedispositivos.Eltrabajoportantoseduplicabaotriplicabaynosoloeldecreacióndelsitio,sinoloqueespeor,eldemantenimiento.Sieldueñodeunawebdecidíacrearunanuevasección,oreformularunaexistente,estabaobligadoaactualizarlaswebsdecadaunodelossistemasparalosquehabíacreadoversionesdistintas.
PeroelproblemaseagravóconlallegadadelaInternetenlatelevisión,enelcoche,etc.¿Quénostoca?¿hacerunaversiónwebparacadaunodelosdispositivosnuevosquevayanapareciendo?Elcaminonovaporahí.
Paraatenderalasnecesidadesactualesyfuturas,necesitamoscrearsitioswebqueseanadaptablesacualquiermediodondequeramosconsumirlas,presentesyfuturos.Tenerunaúnicawebeslamejorsituaciónyjustamentelamejorventajaquenosofreceel"responsive".
Tecnologíaquesurgeparacubrirlasnecesidadesdeadaptabilidad
Aparentemente,eltrabajodeadaptarunawebnoestancomplicado,perohacefaltatecnologíaquenospermitarealizarlo.EnlasegundaytercerageneracióndesitiosyantesdelaimplantacióndelasCSS3,teníamospocasherramientasparaconseguirladeseadaadaptabilidad.ExistíanlosdiseñosfluidosyenDesarrolloWeb.comyahablábamosdeellosen2001,queencontraposicióndelossistemasrígidospermitíantenerlayoutscapacesdeutilizartodoelanchodelapantalla.Eralomásparecidoaunsitioresponsivedehoy.
Laspáginasfluidasseconstruíanconcontenedoresqueteníanlaanchuradelaventanadondeestabanvisualizándose.Sinembargo,estabanpensadosparaqueunawebseviesebienenpantallasde800,1024o1280píxelesdeancho.Noestabaningenidadosconlascaracterísticasdelosmóvilesenlacabeza.Hacerqueunatabla(enaquelmomentoaúnsellevabalamaquetacióncontablasyseestabacomenzandoaverlamaquetaciónconCSS)ounelementoDIVtengalaanchuradelapantallaesmuysencillo,puesrequieresolounatributodeestilo,sinembargo,conseguirquetudiseñoseveabonitoencualquierdimensiónyanoestanfácil.
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 6 de 59
Sobretodohayquepensarqueconlallegadadelosmóvileselrangodedimensioneshabitualesdelaspantallasesmuchomásabarcante.Tenemospantallasquevandesdelos300píxelesdeanchoalos2000ypico.Hoyinclusohaypantallasquesuperanlos5000píxelesdeancho.Siestirasundiseñoconcebidopara300píxelesdeancho,parallevarloadimensionesdeldobledeanchura,eltriple,omás,enlamayoríadeloscasostendrásundiseñohorrible.Comonohabíatecnologíaparapodercrearsitioselásticosquesevieranbienencualquierdimensióndepantalla,losautoresdewebestablanobligadosacreardiferentesversionesdelaspáginas.
Enresumen,CSS3vinoparasolucionaralgunasdelasnecesidadesactuales,pormediodenuevosatributosyconstruccionescapacesderesponderalentornodondeseencuentran.NosreferimossobretodoalasMediaQueriesoaatributostansimplescomomax-widthomin-width(aunqueestosúltimospertenencenaCSS2.1).Graciasaestasutilidadessomoscapacesdereaccionarantedistintascircunstanciascomolaanchuradelapantalla,ventanaocontenedordondeestánaquelloselementosamaquetar.LosveremosconcalmaalolargodelManualdeResponsiveWebDesign.
TérminoporEthanMarcotte
Nopodemosterminaresteartículosindarcréditoaldiseñadorqueacuñóeltérminode"ResponsiveWebDesign".SetratadeEthanMarcottequepublicóunposten"ListApart"yunlibrodondeexplicabatodaslascircunstanciasytécnicasrelacionadasconeldiseñoadaptable.Noesqueseaelprimerdiseñadorquepensóenlanecesidaddeadaptarellayoutdelaswebsalasdiferentespantallas(dehecholoscreadoresdelestándarCSSyahabíancreadotecnologíasparaproducirsitiosadaptables),sinoquefueelqueusóesetérminoquehoyestanpopular.
EnDesarrolloWeb.comsomosdelospionerosenacercareltérminoenespañolalacomunidad,endiversoseventosendirectoyconferencias.EnEscuelaITseofrecióelprimercursodeResponsiveWebDesignenespañol.
Enresumenycomoconclusiónpodemosdecirque"Responsive"englobamuchoscampos,pensamientos,prácticas,tencologíasytécnicasquepuedeninclusocrecerconeltiempo.Amedidaqueaparecennuevossistemasydispositivossingulares,surgennuevasnecesidades,alasquesedarespuestayaseacontécnicasreformuladas,usandotecnologíasexistentes,ocontecnologíasyestándaresnuevos.Todoelloloiremoscubriendoenestemanual.
EsteartículoesobradeMiguelAngelAlvarezFuepublicadoporprimeravezen19/01/2015Disponibleonlineenhttp://desarrolloweb.com/articulos/que-es-responsive-web-design.html
Diseñoresponsiveesdiseñoweb
Lawebsoloseconcibesiesadaptable,hablardeundiseñoresponsiveeshablardediseñoweb,nohaywebsinohayresponsive.
Esteartículopretendedarunavisiónpersonal,ynosolamentemía,sinodelacomunidaddeDesarrolloWeb.comengeneralyporsupuesto,deDanielMartínez@Wakkosenparticular.Adicionalmentequeremosestablecerunaseriedeconsejosútilesparaeldiseñowebengeneralqueteserviránparahacer
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 7 de 59
diseñosadaptablesenparticular.
Cuandocomenzamoslacorrientedel"responsive"ygraciasaDanielrealizamoslosprimeroseventosendirectoenlosquehacetresañosyaloveníamosdiciendo.
"Eldiseñoresponsiveesdiseñoweb"
AhoratodosqueremoshacerdiseñoResponsiveyasíescomodebedeser.Peroojo,cuandohacesundiseñoresponsiverealmentenoestáshaciendonadadelotromundo,sinosimplementelocorrecto.
Adondevoyesquehablarderesponsivequedamuybonito,noshaceparecermásentendidos,perorealmentedeloqueestamoshablandoesdediseñowebynadamás.Lawebesunmediodondeparticipantodotipodeterminales,dispositivos,miltiposdepantallas,etc.Debemospensarentodoselloscuandoestamosdiseñandounawebynosolamenteenmóvilesosolamenteenordenadoresdeescritorio.
Esnuestrotrabajoyresponsabilidadcomodiseñadores.Esunamaneradehacernosunfavoranuestrosproyectos,anuestrosclientesyporendealosusuariosquevisitanlaswebsquefabricamos.
Asípues,enadelante,cuandonosrefiramosal"diseñoresponsive"(pornuestrapartealolargodelManualdeResponsive)entendámoslocomounamaneradedecirqueellayoutdelapáginavaaadaptarsealaventanadondeestamosvisualizándola.Peronoperdamoslanociónqueessimplementelamaneradeactuarquedeberíatenercualquierprofesionalquesedediquealdesarrollodesitiosweb.
"Noseentiendeeldiseñowebsinoesresponsive"
Consejosparaqueeldiseñowebadaptableseamásfácildeproducir
NuestratareaalolargodelManualdeResponsiveesestablecerlasguíasyexplicarlastécnicasparaquecualquierpersonapuedacomenzaraimplementarelresponsivedeunamaneramássencilla,menostraumática.
Novamosaexplicarteenesteartículolastécnicasesenciales,seríaimposibleporlalongituddeltexto,perosídartealgunosconsejosqueesperamospuedasseguirenadelante.Reparaademásquetodasestasbuenasprácticassoncomúnesacualquiertrabajodediseñoweb,nosolamentealosdiseñosadaptables,porloqueserviránparacualquierdiseñador.
Nousesestilosin-line:LosestilosinlinesonaquellosquesecolocanenelpropioHTML,sobretodoenelatributostyledelaetiqueta.TambiénporsupuestoesinadecuadousarcualquieratributoHTMLquesirvaparaaplicarunformato,comoalign="center".Esosestilosinlinevanaseruncorséquequizásnoseadapte
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 8 de 59
atodaslascircunstancias.Igualuntextoqueaparececentradoenciertaresoluciónyquedabien,resultahorribleenunaresolucióndiferenteysituetiquetatienemarcadoeseestiloinlinenolopodráscambiarcuandolonecesites,entusmediaqueriesqueveremosmásadelante.
Lawebnonecesariamentesedebeverigualentodoslosdispositivosynavegadores:Elresponsiveesjustamenteeso,adaptarsealmedio,peroloquequierodecirahoraesqueunawebnonecesitaverseigualentodoslosclientesweb.Debepoderleersebienentodosypermitiralosusuariosconsumirsucontenido,peronodebemosempeñarnosenqueseveaigualenInternetExplorer8queenGoogleChrome.Entendamosquesonnavegadoresdiferentesyportantolawebesnormalqueseveadiferente.Notratemosdemarearlaperdizparaconseguirunsin-sentido.
Nodiseñesparaunaplataforma:Cuandohacesresponsiveocuandohaceswebengeneralnosetratadediseñaruoptimizarunawebenundispositivo,navegadorosistemaoperativodado.GeneralmenteesunaequivocaciónandardescubriendosiesInternetExplorerosiesAndroidosiestalcosaotalotraelsistemaquenosvisita.Sibasastuoptimizaciónenplataformas¿Quépasacuandoaparezcaunanueva?ounaversiónnueva?vuelvesaoptimizar?Estonoquieredecirqueparasolucionarunproblemapuntualnopuedaspreguntartesiestásentalsistema,algoqueavecespuedesalvarnoslavida,sinomásbiendecimosquenosedebeasumircomounaestrategiadediseñoengeneral.
UsarelJavascriptparaloquees:AvecestratamosdesolucionarproblemasconlasherramientasquenosonadecuadasyJavascriptseprestaaello.Porejemplo,unaanimaciónJavascriptenvezdeunaanimaciónCSS.Oundiseñodefilasenformatocebra,alternandocolores.SisepuedehacerconCSSespreferiblequeapliquesCSS,porqueseráscapazdemodificaresosestilosfácilmentedependiendodelascaracterísticasdeldispositivoquetevisita,algoquenoestanrápidootansencillosilohacesconJavascript.EsonoquitaqueseuseJavascriptenciertassituaciones,sobretodoamododefallbacks,parafacilitarunasegundavíaennavegadoresquenolasoportan.Porejemplo,hacerunaanimaciónconJavascriptcuandoelnavegadordelusuarionoaceptelasanimacionesCSS.Aunquequizásantesnosdebemospreguntar¿realmenteesnecesariaesaanimaciónenaquelsistemaquenolasoporta?
Nota:Siteinteresasaberlamaneracorrectadedetectarlascapacidadesdelosnavegadores,deberíasleerelManualdeModernizr.
¿Yatehemosdichoquenousestablasparamaquetar?:Creoqueadíadehoyyanoesnecesario,onodeberíaserlo,incidirenestetema.Peroporsilasmoscas,nocuestanadavolveramencionarlo.Nosedebemaquetarcontablas.Envezdeeso,usacontenedorescomoDIV,osiencajantodavíaesmejorusarlossemánticoscomoARTICLE,SECTION,MAIN,etc.Esverdadquelastablassonmuycómodasparacrearunaestructuradecolumnasdondecolocarcontenido,peronosonnadaflexiblesparaundiseñoresponsive.Todoloquetengasentablaslovasatenerquecambiartardeotempranoporotrostiposdecontenedores,paraluegomedianteCSSdefinirlaestructuradecolumnas,unaovarias,segúnlasdimensionesdelapantallaoelnavegador.Asíqueconvienequecuantoantesteacostumbresadesecharlastablas,siesquetodavíalasusas.EstonoquieredecirquenuncamásvasapoderusarlaetiquetaTABLE,nimuchomenos.TABLEesidealparamostrarinformacióntabulada,porejemplounlistadoderegistros,unatabladecaracterísticasdeproducto,dondesabesseguroquesiempresevanavisualizarloscontenidostabulados.Enesecaso,hastaTABLEtieneuncorrectovalorsemántico.
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 9 de 59
Nota:TenencuentaqueinclusocontenedorescomoDIV,ocualquierotraetiquetaqueenglobecontenido,puedeteneruncomportamientodetabla,siesquelonecesitasparatumaquetaciónparahacercosascomoalineadovertical.Enesecaso,puedesmedianteCSSasignaresecomportamientocondisplay:tableycompañía.
Unidadesrelativas:Sinolohacesya,convienequetevayasacostumbrandoausarunidadesdeCSSdelasrelativas,como%,em,rem.Estotefacilitarálaasignacióndeespaciosytamañosmásquelasunidadesabsolutascomopx,cm,pt…Elmotivoesporqueenundiseñoresponsivenosabeseltamañoquevasatenerparadesplegaruncontenido.Porejemplo,siasignasaunacajaunaanchurade600px¿quécreesquepasarásilavesenundispositivoquetieneunapantallade320pxdeancho?.Sienvezdeellohubiesesdefinidoesaanchuracomo80%,nohabríastenidoquizásproblemas.
VolveremosseguramenteaincidirsobretodosestospuntosenelfuturoenelmanualdeResponsiveWebDesign.
EsteartículoesobradeMiguelAngelAlvarezFuepublicadoporprimeravezen26/01/2015Disponibleonlineenhttp://desarrolloweb.com/articulos/diseno-responsive-web.html
Lostrespilaresdeoptimizacióndeldiseñoresponsive
Cuandodiseñamosunawebdebemosfijarnosentrescosasfundamentales,diseñoparatodoslosnavegadoresysistemas,todaslasresolucionesdepantallaytodaslasvelocidadesdeconexión.
Anteriormenteexplicamosque"diseñoresponsive"esdiseñoweb,asíqueenlíneasgeneralestodoloquevamosacomentarsirvetambiénparaeldiseñowebengeneral.Puesbien,cuandodiseñamosunaweb,queremosqueseafácilmenteusableyconsumibleyporellodebemosoptimizarlaenvariossentidos.Elobjetivoeseldesiempre,quelaspersonasaprovechenlapágina,tenganunaexperienciadeusuariogratayaccedanaloscontenidosquenosotrosqueremos.
Diseñoresponsivenoessolamentehacerqueunawebseadaptetantoalaspantallasdeordenadorescomoalasdelosmóviles,quetambiénloes.Enrealidadhaymuchomáspordetrásylovamosaverenformadetrespilaresfundamentalesquedescribiremosalolargodeesteartículo.Losenumeramosacontinuación:
Lastécnicasresponsivesefocalizanendiseñarpara:
Todoslosnavegadoresysistemas
Todaslasresolucionesytamañosdepantalla
Todaslasvelocidadesdeconexión
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 10 de 59
Todoslosnavegadoresysistemasoperativos
LosnavegadoresconlosqueseaccedeaInternettienendiferenciaslosunosconlosotrosydebemosserconscientesdeellasparaquelaspáginaswebseveancorrectamentesiempre.Haymultitudaspectosquedebensertenidosencuenta,peroengeneralnosdebemosdeasegurarqueelcontenidoseaaccesibleentodoslosbrowsers.
Perolasdiferenciasnosoloestánrelacionadasconlosnavegadores,tambiénconlossistemasoperativos.HubountiempoenelquelaspersonasteníanmayoritariamenteWindowsypodíamosestarsegurosquesinuestrosistemaestabaoptimizadoparaelSOdeMicrosoftestábamosalcanzandoelnoventaytantosporcientodelosposiblesusuariosoclientes.Sinembargoesepanoramahacambiadomuchoenlaactualidad,yaquehoyelsistemaMacOSXesbastantepopular,asícomoelsistemaLinux.
Perolacosanoacabaahí,puestoquelosteléfonosmóvilesotabletasseusanparanavegaryelusodeInternetdesdedispositivosdemovilidadrepresentayalamayoríadeltráficoenalgunospaíses.Estosdispositivostienensuspropiossistemasoperativos,quetambiéndebemostenerencuenta.
Todaslasdimensiones/resolucionesdepantalla
Quizásseaésteelapartadoquetodospensamoscuandonoshablande"Responsive",diseñarunawebqueseadaptaalapantalladeordenadoresydispositivos.Nohacefaltahablarmuchodeello,porqueeslaimagenmentalquetodostenemos:Usarlasmediaqueriesparaquetodoslosordenadoresymóvilesveanlawebconloselementosdispuestosdemaneraquesefacilitelalectura.
Noqueremosdecirqueestepuntonotengaimportancia,perohaybastantemásdetrás.Noobstante,lamayorpartedelastécnicasqueseaprendenenrelaciónallenguajeCSSvanorientadasaestepuntoyeselqueveremosconmásdetallealolargodelManualdeResponsive.Portodoello,sobranlaspalabrasdemomentoparadescribirestepunto.
Todaslasvelocidadesdeconexión
Cuandopensamosendiseñomóvilnodebemospensarsoloenlolimitadodeltamañodelapantalladeldispositivo.Nonospodemosolvidarquemuchagentenavegaenelmóvilconconexionesdelimitadoanchodebanda,oincluso,aunquetengananchodebandaamplioenmuchoscasos,casisiempreexistenplanosdedatosquetienenlimitadalacantidaddemegasogigasquesepuedenconsumiralmes.
Portanto,hoyvolvemosaencontrarnosenlanecesidaddeoptimizarlawebparaquetengamenospesoy
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 11 de 59
searápidadetransferir,comoenlaépocadelaccesoaInternetenlaslíneastelefónicasconlosmódemsdeantaño.Debemosoptimizarelcódigo,HTML,CSSyJavascript,asícomolasimágenesycualquierotroelementoqueformepartedelapágina.Peronosoloeso,tambiéntenemosque"optimizar"elcontenido.Aquílapalabra"optimizar"noestaríatanbienutilizadayaunquenodejadeserunaoptimización,setratamásquenadadeelegirbienelcontenidoquesedeseamostrarencadamomento.
Esmás,sabiendoquelaspersonasesperandemediatansolo5segundosparadesistirenelaccesoaunaweb,conmayormotivodebemosmanteneracotadalacantidaddecontenidoamostrar.
Enestepuntohabríaqueseñalarquelaseleccióndeuncontenidocorrecto,conciso,claro,breveparaqueseafácildedescargar,perolosuficientementeextensoparaqueayudecorrectamenteavenderunproducto,unamarcaounapersona,esunadisciplinacompleta.Existenpersonasquesehanespecializadoenestudiarelcontenidoyasegurarsequesiempreseaelcorrectoeinclusohaypersonasquesabenoptimizarlodecaraalaventa,otrasdecaraalacomunicacióncorporativa,etc.
Además,cuandosetratadeoptimizacióndecontenidomuchasveceshayquetirarmanodeprogramacióninformática.Existentécnicaspuramenteligadasalacomunicaciónescrita,asícomoalaspectoestético,comolaoptimizacióndegráficos.Peroademáshaytécnicasdeprogramación,comoAjax,quepuedenayudarateneruncontenidooptimizadoparaunadescargadelapáginamásbreve.
TambiénesimportantelaminimizacióndelcódigoJavascriptoCSS.Enresumen,existenmuchospuntosinteresantes,queveremosmásadelanteenotroartículo,paramejorarlacargadeunawebentérminosdeajustarelcontenidocorrectamente.
Conclusión
Eldiseñowebnecesitaadaptarseatodaslascondicionesdondepuedeserconsumido.Noestamoshablandosolamentedelaspantallas,tambiéndelnavegadorodelsistemaoperativodelordenadorodispositivo.Perotambiénelcontenidodebeserpensadodemaneraquenoseofrezcainformacióninnecesariaquenoagregavalorenlaestrategiadecomunicación.Elcontenidoeselrey,perotambiéntienepeso,ynosoloeso:muchocontenidopuededespistardelorealmenteimportante.Enelcasodeuncomercioelectrónicopuedeacabarprovocandoqueelusuariosesatureconmuchasopcioneselloderiveenlapérdidadeunaventa.
EsteartículoesobradeMiguelAngelAlvarezFuepublicadoporprimeravezen16/02/2015Disponibleonlineenhttp://desarrolloweb.com/articulos/tres-fundamentos-responsive-web-design.html
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 12 de 59
Procedimientoshabitualeseneldiseñoadaptable
AhoravamosaanalizarlosmecanismosoflujosdetrabajohabitualescuandoestamosimplementandoResponsiveWebDesign,indicandocuálessonlosprocedimientosaseguirysusdiversasvariantes.Elobjetivoesentenderquépasosrealizaundiseñadorparacrearunsitiowebadaptablefacilitandolalabordedesarrolloymejorandolasprestacionesdeldiseñoproducido.
Flujodedesarrollodeunsitioresponsive
Cómosedesarrollaunsitioadaptativo,aproximacióndelosprocesosusadosparalacreacióndeundiseñoResponsiveWebDesign.
EnelManualdeResponsivehemosconocidomuchascaracterísticasdeseablesdelossitiosdeInternetdehoyengeneralydelossitiosadaptablesenparticular.Ahoravamosacomenzarconunaaproximaciónalflujodetrabajoquesepodríarealizarparalacreacióndeun"layoutresponsive".Claroquehaymuchastécnicasquedeberemosconocerparapoderproducirlos,yaencódigo,perononosvamosametertodavíaconexplicacionesdemasiadotécnicas,sinoaestudiarlosposiblesprocesosdediseño.
Coneltérmino"procesodediseño"demomentonosreferimosalprocedimientoconelquesepuedeconstruirunsitio,desdesuconcepciónhastasuejecución.Aunquedemomentonosquedaremosenlasfilosofíasoestrategiasposiblesparasolucionarlosproblemasdelawebdehoy.
Problemáticadelawebdehoy
Yahemoshabladodeellaenartículosanteriores,porloquenovamosaintroducirnosdenuevoenlascircunstanciasdelawebactual,solocaberecordarquehoyaldiseñar"páginasweb"tenemosqueconseguirqueéstasseanmedianamenteinteligentesparapoderadaptarseacualquiertipodesituación.
Debequedarclaroqueexistendecenas,ocientos,dedispositivosqueseconectanconunsitiowebyquelosdesarrollosdebenpoderversecorrectamenteentodosellos.Esavariedaddeordenadoresydispositivos
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 13 de 59
tienenunascaracterísticasmuydistintasyademásunnúmerosiemprecreciente.
Pasosparadiseñarunsitioresponsive
Debendeexistirdecenasdeaproximacionesoflujosdetrabajoparadesarrollarunsitio"responsive"quetenganencuentalaproblemáticaactualdescritaanteriormente.Aquíyadependedecadadiseñadorydesuscostumbres,preferenciasoformación.Vamosaintroduciracontinuaciónaproximacionesgenéricasquesoncomúnmenteaceptadasyaplicadasanivelprofesionalymásadelanteenfuturosartículosnosdedicaremosadescribirlasendetalleyapreciarlasventajaseinconvenientesdecadauna.
Nota:Suponemosqueantesdecomenzarsetieneclaroelobjetivodelsitio,sehahechounprototipo(wireframe),enpapelocualquierotraherramientadeprototipadoytantoelclientecomoeldesarrolladorhanllegadoaunconsensosobrecómodebeserlawebyquéelementosdebecontener.Estepuntonoestrivialysobreélhablaremosmásadelante,cuandoexpliquemosfilosofíascomo"MobileFirst",perobásicamentepodemosadelantarquedebemosserbastanteconcisosconloscontenidosquesedebenmostrar,eliminandoaquelloqueseasuperfluooinnecesario.Explicaremosmásadelantequeundiseñoresponsivetenemosquecomenzarpormontarlawebparaqueseveabienenmóvilesysicargamosexcesivamentedecontenidolapáginanonosvaacabertodoenlapequeñapantalladeundispositivo.Esunatendenciahabitualqueelclienteoelequipodemarketingquieraincorporarmuchainformación,perohayquepensarquenosiempreesnecesarioeinclusohabráocasionesenlaquedemasiadainformaciónpuedasercontraproducente.Asíqueesteprocesocomienzaporracionalizarelcontenidoquedebetenerlaweb,algoquenovamosatratarenesteartículo.
1)CrearunHTMLconelcontenidoquedeseamosmostrar
EncualquieradeloscaminosdebemospartirdeunmismoHTML.Comosabes,elcontenidoseescribeconHTMLydebesercomúnparatodoslostiposdedispositivoseinclusoparalosordenadoresconpantallasenormes.EllenguajeCSSeselquenospermiteaplicarunformatoadecuadoparalapresentacióndeesecontenidoyallíesdondepodremosaplicarnuestrasreglas,quepermitiránqueeldiseñoseadapteacadatipodesistemadondedebaserconsumidoelcontenido.
Nota:DesarrollarconHTMLdistintoparalocadatipodesistema,móvil,tablet,ordenadordeescritorio,etc.,dijimosquenoeralaideadetrásdelastécnicasresponsive.LógicamenteestamoshablandodeunmismoHTMLparaunsitioweb.
Aserposible,elHTMLtienequeserbastantesemántico,algoqueaportaelHTML5.EsalgodeseablepordiversosmotivoscomoyahemoshabladoendecenasdeartículosenDesarrolloWeb.comyprogramasendirecto.
ComoresultadodeestepuntodebestenerunHTMLsencillo,enelquehabrássituadoelcontenidocompletodetusitioyaquellasinterfacesparalasfuncionalidadesnecesarias.Merefieroprincipalmentealosbloquesdecontenido,puestoquelomásseguroesquehayascolocadotextosfalsos(lostípicoslorem)eimágenesqueposiblementenotienennadaquever,conlaintencióndeocuparlosespaciosquevasausarentudiseño.Loquetendrástambiénsonlasimágenesdecabeceraopie,comoellogodelaempresa,iconossociales,barrasdenavegación,etc.Enresumen,todoloquesehaacordadoenelprototipoquedeberíasincluirenlapáginawebaconstruir.
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 14 de 59
Demomento,sitienesdudassobresiuncontenidodeberíaestaronoeneldiseñoinicial,esmejorquenolopongas.Osiesuncontenidoquesolosevaaverenordenadoresdeescritorio,tampocolopongas,puestoquenosvamosacentrarprimeroenencajartodoenlaspantallaspequeñas.
2)AplicarCSS
HacerelHTMLeslapartemenosdivertida.ConelCSScomenzarálafiestaypodrásempezaradisfrutarlamejorpartedeldiseñoweb.Comosabes,elCSSsirveparaaplicarunformatoalapágina,tantoenloquerespectaalaposicióndeloselementoscomoalestilooaspectoquedebentener.Enestepuntodebescomenzaraaplicarlosestilosnecesariosalapágina,pocoapoco,paraquecomienceaversecomotúquerías.
AlolargodelManualdeResponsivedeDesarrolloWeb.comiremosexplicandocadaunadelastécnicasyherramientasqueteayudaránaconstruirunCSSoptimizadoquenospermitacrearunlayoutadaptable.Existenmuchainformaciónqueseguramentequerrássaber,peroesimposiblecontarlatodaenelmismoartículo.Demomentovamosadescribirlasdificultadesqueencontrarás,puesnosolodebesconocerafondoelfuncionamientodelasCSSsinotambiéncómolosnavegadoreslosoportan,puesnotodosentiendenlasmismasreglasdeestilos.
Cadanavegadorentiendeunconjuntodereglasdeestilosyaquellasquenosoporta,pordesconocerlas,simplementelasignora.Ahíesdondecomienzalapartemáscomplejadeldiseñowebydondepodremosaplicarprincipalmentedosflujosdetrabajodiferentes.Peroantesdeexplicarlosqueremosanalizarlosdostiposdecircunstanciasenlasquedebemosencontrarsoluciones.
A)Recursosdediseñoestéticos
Sonaquellosestilosqueseagreganparamejorarlaestéticadeunsitio,comofuentestipográficasespeciales,cajasconesquinasredondeadas,sombrasentextosocajas,etc.Estetipodeelementosnorequierenunaespecialadaptabilidad.Sonmenospreocupantes,porquenovanaafectaralaaccesibilidaddeuncontenido.Soninteresantesparaqueunsitioseveaespecialmentebonito,perosiunnavegadornopuederenderizaresetipodeestilosnorepresentaráunproblemadegravedad.Porejemplo,siInternetExplorer8noescapazdemostrarunborderedondeado,novaapasarabsolutamentenada,puestoquelosusuariosseráncapacesdeverlascajas,aunquetenganesquinasconángulosrectos.
Nota:Aquíunosyotrospuedenteneropinionesonecesidadesdistintas.QuizásnuestroclientequierequelawebseveaigualenunnavegadordeúltimageneraciónyenunnavegadoranticuadocomoIE8.Quizásnuestrojefeloexija,peroennuestraopinión(yladelamayoríadelosdiseñadoresmásimportantesdelmomento)tenemosotrascosasmásimportantesenlasquecentrarnos.HemoshabladoendecenasdeprogramasendirectoennuestrocanaldeYoutubesobreestascircunstanciasynuestroobjetivonoesdiscutirunavezmássobreello.Aunque,demaneraobjetiva,lomásimportantedeunawebeselcontenidoyloquedebenexigirnoslosjefes,clientes,ynosotrosmismos,esqueelcontenidoseaaccesibledesdecualquiersistema,notantoqueseveaigual.Sihayunnavegadorquenosoportasombras,porejemplo,noseacabaelmundo.Alcontrario,deberíamosserconscientesdelasdiferenciasdecadaunoyaceptarlas.
B)Diseñodelayout
Sonaquellosestilosqueseencargandepresentarlainformaciónconunaestructuradefinida,porcolumnas,
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 15 de 59
cabecera,pie,etc.Ellayout,alquenosreferimostambiéncomoplantilla,nospermitejerarquizarlainformaciónydesplegarlademaneraqueelusuariolapuedaentendermejor,puedaapreciarlaimportanciadecadacosaycentrarseenloquenosotrospreferimosqueseapreciemás.Porejemplo,siunawebtieneunabarralateraldondehaybannersyotrascosasconmenorimportancia(loqueconocemoscomo"aside")entodoslossistemasdeberíamospoderremarcarlamenorimportanciadeesecontenido.Siunnavegadornoescapazdesituaresabarralateralensulugar,porlomenosdebemoscentrarnosenquenoaparezcaantesqueotrasinformacionesmásimportantes.Oinclusomásimportanteseríaque,siunnavegadornoconsiguerespetareldiseñodelayout,queporlomenosnoaparezcanunoselementosencimadeotros,dificultandolalecturadelcontenido.
EnresumenyComosabes,enelmundodelaweb,atodoslosniveles,loimportanteeselcontenido.Silaestéticadeunawebnoesigualentodoslosnavegadorespodemosseguirviviendotranquilos.Sinembargo,sihaydiferenciasdelayoutéstaspuedenprovocarqueelcontenidonoseaaccesible,oentendible,yesosírepresentaríaunproblemamayorquedeberíamoscorregir.
AproximacionespararesolverlosproblemasdecompatibilidaddelCSS
HemosdichoquenosdebemospreocuparmásporlosproblemasdelayoutderivadosdelasdiferenciasdenavegadoresysusoporteconCSS,aunqueestastécnicastambiénpuedenayudarteaencontrarvíasdesolucióndeproblemasestéticos.
Ahoradeberíamosintroducirdosnuevosconceptosquesonvariacionesdiferentespararesolverunmismoproblema,lasincompatibilidadesenelCSS:ProgressiveEnhancementoGracefulDegradation.Sinembargo,sonconceptosytécnicaslosuficientementeimportantesparaverlosdemaneraindependiente,porloquelodejaremosparaelpróximoartículo.AunquedemomentocabedecirqueestastécnicasnosonalgoespecíficodeResponsiveWebDesign,sinoquelasaprendimoscuandoestudiamosHTML5eneldiseñoweb.
SiquieressabermásterecomendamosverelvídeosobreHTML5ycompatibilidadconlosdistintosnavegadores.
EsteartículoesobradeMiguelAngelAlvarezFuepublicadoporprimeravezen02/02/2015Disponibleonlineenhttp://desarrolloweb.com/articulos/flujo-desarrollo-responsive-web-design.html
ProgressiveEnhancementVsGracefulDegradation
Dostécnicas,oflujosdetrabajo,quenosayudanaresolverlosproblemasdecompatibilidaddelosdistintosnavegadoresfrentealestándarCSS,explicadasenelmarcodeldiseñoadaptable.
EnelartículoanteriorestuvimosanalizandoelFlujodedesarrollodeundiseñoresponsiveyaunquequedóclaroqueestemaamplio,motivodeestudioendiferentesartículosquevamosaabordarduranteelManualdeResponsivewebdesign,comentamosqueexistíandosvariantescomúnmenteusadasparasolucionarlosproblemasdecompatibilidadentrelosnavegadores.
EnelpresenteartículovamosaexpolartantolaaproximaciónProgressiveEnhancementcomoGraceful
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 16 de 59
Degradation,aunqueantesdebequedarclaroquesetratadedostécnicasquenoseusansolamenteeneldiseñoresponsive,sinoquelasconocimosyacuandohaceañoscomenzamosaexplicarHTML5enDesarrolloWeb.com.
Básicamente,loquehacemosconestasdosaproximaciones,essolucionarlasdiferenciasentrenavegadorescuandointerpretanunmismocódigo.Comosabes,alolargodelosañossehanidopresentandodiferentesversionesdenavegadoresquesoncapacesdeentenderunconjuntodiferentedeetiquetasHTML,atributosdeestilosCSSyJavascript.Antelasdiferenciasdenavegadores,susversionesylossistemasoperativosdondefuncionan,yconlaintencióndehaceruncontenidoaccesibleparatodosellos,nosvemosenlanecesidaddeaplicarestastécnicas,quenospermitenqueuncontenidoseveacorrectamenteentodoslossistemasposibles.
Ambastécnicastepuedenayudar,inclusopuedequeprefierasenunmismoproyectoaplicarlasalavezparasolucionardiferentesproblemas.Tododependedetuspreferenciasolasnecesidadesdeldesarrollo.Ahondaremossobreestepuntoalfinaldelartículo.Perocomencemosdescribiendolasaproximacionesmotivodeestudiodeestetexto.
Nota:Comodecimos,ProgressiveEnhancementyGracefulDegradationsonaproximacionesparasolucionarproblemasdecompatibilidadentreHTML,CSSyJavascript(quesonloslenguajesqueentiendenlosnavegadores).Noobstante,enelmarcodeldiseñoadaptativo,nosinteresamásquenadaelCSSyporelloesentérminosdeCSSquevamosaconocerestasfilosofías.
ProgresiveEnchancement
Sediseñaunsitiowebcentrándoseenlossistemasmásanticuados,yportantoconmenossoportedelasCSS.ElCSSqueutilizaremosseráelbásicoqueestádisponibleenesosviejossistemasysimplementenospreocuparemosporqueelcontenidoseaaccesible.Apartirdeahíiremosimplementandomáscomplejidadaldiseño,aplicandoCSSquesoportansololosnavegadoresestándaractuales.EseCSSnoserásoportadoporsistemasantiguos,porloquesimplementenolesafectará.ComoúltimopasoaplicaremosCSSquesepuedaverenlasversionespunterasdelosnavegadores,quizásseanlasversionesexperimentalesquesoportanunCSSquequizástodavíanoformapartedelestándaractualmenterecomendadoparasuimplementaciónporlaW3C.
EnestaaproximaciónpartimosdeunmismoHTMLyvamosagregandocapasaldesarrollo,preparadasparalosdistintosnavegadoresdelmercado.Amedidaquenoscentramosenunconjuntodenavegadoresmásavanzado,vamosagregandonuevascapasqueaprovechanlascaracterísticasmásnovedosasyque
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 17 de 59
simplementesonignoradasporlosnavegadoresmásantiguos.Estatécnicaloqueproduceesuna"mejoraprogresiva"delossitiosweb,visibleenlosnavegadoresquelasoporten,manteniendounproductodebaseaccesibleparalosnavegadoresmenosactuales.
Porconcretarloconunejemplo,podríascomenzarenunaprimeraetapaporestilizartuHTMLconCSScompatiblecontodoslosnavegadoreshistóricos,probandoeldesarrolloenInternetExplorer8,porejemplo.Unaveztengastuwebmodestaperocorrecta,pasarásaunnavegadormásactual,porejemploInternetExplorer9osuperior(IE10,11oelqueseaquedeseesfocalizarte)oinclusoenversionesactualesdeFirefoxoChrome,aplicandoreglasdeestilosquesabesquenoestánsoportadasenIE8peroquesíformanpartedelestándarpresente.Despuésdeesesegundopasotendrásunawebbonita,quesecomportaráfantásticamenteennavegadoresquesoportanelestándaractual.Podrásirunpocomáslejos,enunaterceraetapa,silodeseasyaplicarásestilosCSSexperimentales,quesoloestándisponiblesendeterminadosnavegadoresmáspunteros,quizásutilizandolosprefijospropietariosdelasreglasdeestiloquetodavíanoestánenelestándarrecomendado.
Gracefuldegradation
Estaaproximaciónrecorremásomenoselcaminoensentidoinverso.BásicamentedesarrollaselCSSdetuweb(recuerdaqueelHTMLeselmismosiempre)atendiendoalascaracterísticasmásactualesdelosnavegadores.Tecentrasenhacerunsitiowebtalcomoatitegustaríaqueseviera,contodoslosdetallesdediseñoquehaspensadoaplicarparatuasombrosaweb.Duranteesaprimeraetapaprobarástuwebenunnavegadoractual,aplicandotodotipodereglas,aunquesepasquealgunasnosevanapoderverennavegadoresosistemasoperativosanticuados.
Unavezestássatisfechoconeldiseñoquetehasalidoyhasvistoqueenlasversionesdenavegadoresmodernossevetalcomodeseabas,acontinuaciónpruebaselsitiowebennavegadoresmenosavanzadosyrealizaslastareasqueseannecesariasparaqueelsitioseveadecentemente.
EsastareasdeadaptacióndelawebparasistemashistóricosenocasionesincluyenlainstalacióndealgúnscriptJavascriptquepermitaquelosnavegadoresantiguosentiendancaracterísticasdelasCSSquenosonsoportadasdemaneranativa.Quizásinclusodefinirásestilosalternativosquedebenaplicarsesoloalosnavegadoresquenoentiendenlosestilosquetúqueríasaplicarenunprincipio.
Nota:LosscriptsJavascriptquetesirvenparasuplirlascarenciasdelosnavegadoresantiguossellaman"Polyfills"(rellena-huecos)ylaestrategiacorrecta,parasuinstalaciónúnicamenteennavegadoresdondesenecesiten,pasaporusarunalibreríacomoModernizr,delaquehemoshabladoyaenelManualdeModernizr.
Comodecimos,comienzasdesarrollandotuwebyprobándolaenunnavegadoractual,ChromeoFirefoxsonlosprincipalescandidatos,puestoqueseactualizanautomáticamenteyporlotantoesdesuponerquetengassuúltimaversión,perotambiénpodríashacerloenInternetExplorerenversión10,11olamásmodernaqueencuentresenestemomento.Luegolavasprobandoennavegadoresantiguosyvassolventandolosproblemasdevisualizaciónquevayasencontrando.PuedesprobarlaenunasegundaetapaenInternetExplorer9yenunaterceraenInternetExplorer8yasíhaciaabajohastadondequierasllegar.
¿Cuáleslamejor?
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 18 de 59
LosdiseñadoresmásdestacadosapoyanmáslaaproximaciónbasadaenProgressiveEnhancementporqueopinanquelosflujosdetrabajoestánmásoptimizados.Hayunalecturadeestasdosprácticasencontraposiciónqueesinteresanteyquedebemospensar.
ProgressiveEnhancementpartedelabasedeundiseñobásicoyaccesible.Amedidaquesevadisponiendodetecnologíasuperiorsomoscapacesdeañadircapasporencimaalproductoanterior,connuevosestilosquesoloseveránenlosnavegadoresmásmodernosyavanzados.
Porsuparte,GracefulDegradationyacomienzaconunniveldecomplejidadgrandeyelprocesodeconseguirundiseñoqueseveacorrectamenteennavegadoresantiguosserealizamuchasvecesenbaseaparcheareldesarrollodemaneraqueseadaptetambiénanavegadoresantiguos.
BajoeseprismapodríamosdecirqueProgressiveEnhancementmirahaciaadelanteenelflujodedesarrollo,mientrasqueGracefulDegradationempiezadelanteymirahaciaatrás.Teóricamente,cuandosaquenenelfuturonuevosclienteswebconnuevascaracterísticasseríamásfácilmenteincorporadaseneldiseñoconunaaproximaciónProgressiveEnhancement,añadiendosimplementeunacapaporencimaanuestroCSS.Portanto,mirarhaciaelfuturonuncaestádemás.
Nota:TécnicamenteyentérminosdediseñoCSSañadirunacapaporencimanoesmásqueañadiralfinaldelcódigoCSSnuevosestilos.AlestaralfinaldelcódigoCSS,ydebidoalacascada,esacapadeestilosnuevosmandaránsobrelosanteriores,aunquesololosinterpretaránlosnavegadoresnuevos,quelosconocen.Losantiguossimplementelosignorarán.
Algunosdiseñadoressonmásradicalesenestesentidoyseoponenalgracefuldegradationbajoelargumentoquelosprofesionalesnodeberíamosperdertiempoensolucionarlosproblemasderivadosdenavegadoresantiguos,aplicandoparcheso"polyfills",porqueesoprovocaquelosusuariosdenavegadoresobsoletosnosepreocupenporactualizarsussistemas.
Mivisiónpersonal
Entrelasdosaproximacionescomentadas,ProgressiveEnhancementoGracefulDegradation,enmiopiniónpersonalnohayunaquesealamejorolamásadecuada.Insistoqueestoyaesunaopiniónyqueunosdiseñadoresodesarrolladorespuedenpensardeunamaneraodeotra.Inclusopuedehaberprofesionalesquemezclenunayotrafilosofíallegandoanuevosflujosdetrabajoperfectamenteválidos.
Enmicaso,cuandodesarrollounaweb,hoyprefierocentrarmeennavegadoresactuales,diseñandocomorealmentequieroqueseconsumalawebyolvidándomedelosnavegadoresantiguos.AplicoelCSSquerealmentequieroquetengalawebyluego,cuandoyalatengolista,laprueboenInternetExplorer,enversionesantiguas,modificandoaquellascosasquesonnecesariasparaquesepuedaconsumircorrectamente,yaseanJavascriptsoestilosCSSalternativos.Osea,prefieroimplementarGracefulDegradation.
Nota:ParacolocarestilosalternativosennavegadoresantiguostieneslaposibilidaddeusarModernizr,quetrabajandodelamaneracorrectanotedaráningúnproblemademachacarestilosquerealmentequierasparalosnavegadoresavanzados.
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 19 de 59
Yopersonalmentedisfrutomásdiseñandounawebpensandoenunnavegadoractualyluegometomolatareanotanagradecidade"apagarfuegos",solventandolosproblemasdevisualizacióndenavegadoresantiguos.Paraquenosentendamos,escomocomenzarlacomidaporlospostresyluegocomertelosplatosquetegustanmenos,quizásnosealomejor,peroescomomásmegustatrabajar.
Además,noveoproblemaenmezclarambasaproximaciones.PuedeshabercreadoeldiseñodeunsitiowebsiguiendolafilosofíaGracefulDegradationydosañosdespuésaplicarleporencimaunacapanueva,conCSSpensadoparanavegadores,oversiones,quehayanaparecidorecientemente,loqueseríaProgressiveEnhancement.
¿Ylostamañosdepantalla?¿estastécnicasnoaplican?
Comotehabrásdadocuenta,todavíanonosestamospreocupandodelosdiferentestamañosdepantalla,yahabrátiempodehablardeellosenelManualdeResponsivedeDesarrolloWeb.com.Demomentoestaaproximaciónquedamásquenadaenloqueseríaunflujodetrabajocomúnmenteaceptado.
Noobstante,algunosautorestambiénidentificanlastécnicasProgressiveEnhancement/GracefulDegradationenrelaciónaldiseñoadaptable.Lohacenenelsentidodediseño"MobileFirst"o"DesktopFirst",osea,sisediseñapensandoenelmóvilalprincipioyluegoenordenadoresdeescritorio,obiensediseñaprimeramenteparapantallasgrandesysevaadaptandoapantallaspequeñas.Enestecaso"MobileFirst"seríamáspróximaalafilosofíaProgressiveEnhancementy"Desktopfirst"máspróximaaGracefulDegradation.
Sinembargo,noveomucharelacióndeestostérminosenestesentido,deldiseñoparadistintostamañosdepantallas.Enesteáreanoencuentromuchadiscusiónyhayunconsensoprácticamentetotalenquelaaproximaciónadecuadaes"mobilefirst",delaquehablaremosmásadelantecondetalle.
Conclusión
Comoconsideraciónfinalinsistirenquenotodoesblancoonegro,cadadiseñadorodesarrolladordebeconocerambasaproximacionesparadecidircuáleslaqueseadaptaasumododepensarodeactuar.Inclusopuedequeendeterminadosproyectosoaplicacioneswebseamejorunaaproximaciónquelaotra.Loquetodoscoinciden,oalmenoslamayoríadelosgrandesdiseñadores,esquedebemoscentrarnosenadaptarlossitiosparasolventaraquellosproblemasderivadosdellayoutynotantoadaptarlosrecursosestéticosparaqueunawebseveaigualentodotipodenavegadores.
EsteartículoesobradeMiguelAngelAlvarezFuepublicadoporprimeravezen08/02/2015Disponibleonlineenhttp://desarrolloweb.com/articulos/progressive-enhancement-graceful-degradation.html
MobileFirst
MobileFirstesunafilosofía,unamaneradeencarareltrabajoyunaformadefacilitarnoslalaborduranteeldiseñoresponsive,comenzandosiempreporlosdispositivos,conpantallasmenores.
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 20 de 59
"MobileFirst"esenrealidadunconceptobastantesimple:diseñarpensandoenlosmóvilesprimero.Asíseresumeesteartículoquevieneaexplicarlosmotivosporlosquedebemoscomenzarsiemprecentrándonosenlosdispositivosconpantallasmáspequeñasygeneralmenteconmenoranchodebandadisponibleparalanavegación.
Cuandodiseñasunsitiowebresponsivodebestenerenlacabezaunaenormecantidaddecontextosdondetucontenidovaaserconsumido.ParanoperderseyparaalfinalconseguirunasoluciónoptimizadaparatodoelmundodebemosaplicarlafilosofíaMobileFirst.
AlolargodetodoelManualdeResponsiveWebDesignvamosdandopinceladasquenosorientanhacialaideadelmobilefirst.Desdelaeleccióndelcontenido,quedándoseconlainformaciónmásesencialyrechazandolosuperfluo,hastalasetapasdelaejecucióndeundiseño,sehacenconestafilosofíaenlacabeza.
Contenido
Enunmóvilnotecabetodalainformacióndelmundoynotienesentidoqueunusuariodebahacerunscrollcasiinfinitohastaencontraraquelloqueresultadeimportancia.Enelartículodelostrespilaresfundamentalesdeldiseñoresponsiveyahablamosbastanteacercadeestoyexplicamosmuchosmotivosporlosquenodebemosconcentrarenunapáginamuchacantidaddeinformación.
Ahora,bajolafilosofíadeMobileFirstagregaremoslatareaderealizaruna"especificacióndelcontenido"deunapágina,quecontienesimplementeunlistado(enpalabras)detodosloscontenidosquequeremosenglobardentrodeunapágina,yasealahomeounadelaspáginasinterioresdelsitio.Esarelacióndecontenidotenemosquepensarlaconelmóvilenlacabezaysupantalladedimensionesreducidas,quenoescapazdealbergarunacantidadenormedeinformación.
Nota:Laespecificacióndelcontenidonoserefiereanadagráfico,nisiquieraaesquemasdeinformación,jerarquías,seccionesdelsitioenelárboldecontenidoositemaps.Porsupuestotampocoawireframesoprototiposdondesedistribuyalainformación.Essimplementeunlistadodeelementosquepodríamosescribirconletrasenunblockdenotas.Esuninventariodeelementos,algocomologotipo,buscador,navegadorconlasprincipalessecciones,imagenconelproductoprincipalolos3productosprincipales,etc.
Porsupuesto,esadefinicióndeelementosladebemoshacerconelclienteyseguramentesaldránmuchascosasyquizásalgunasseanprescindibles.Enlacabeceraenunmóviligualnocabeellogotipo+navegador
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 21 de 59
+formulariodelogin+buscador.Entoncesdebemosintentarreducirtodoaquelloqueessuperfluooprescindible,eliminándolodellistado.Quizáslopodemossustituirporuniconode"opciones"y,unavezpulsadoqueseveanaquellascosasquenoentranenlapáginaparamóviles.
Diseño
Laetapacreativa,cuandosediseñalainterfaz,yaseaenpapelduranteelprototipadooenHTML+CSSenlaejecución,tambiénsehacecomenzandoporaquelloqueveríamoscuandolawebseconsultadesdeunmóvil.
Resultamuchomássencillodiseñarunawebparaunmóvil,quetienemuypocoselementos,queparaunordenadordeescritoriodondetenemosespacioparacolocarmuchasotrascosas.Porelloesunabuenaideaque,cuandodiseñemos,nospongamosdelantedeunespacioreducidoyveamosquécosassonlasqueentraneneldiseñoyquécosaspuedenserprescindibles.
SiestásejecutandoeldiseñoenHTML+CSScomenzarásreduciendolaventanadelnavegadoralasdimensionesdeanchuraquepuedatenerunmóvil,quizásunos320píxelesdeancho(ahoranovamosadiscutirsobredimensiones),paraacomodarloselementosdetuinventariodecontenido.Quizástedescuentaquenecesitasprescindirdenuevoselementosquesondifícilesdeacomodaryquenoerantanesencialesdespuésdetodo.
Nota:Tambiénpuedesconectarelmóvilalordenadoryverdirectamenteentudispositivocómoseestávisualizandolaweb.Nocabedudaqueelresultadoylaexperienciadenavegaciónesmuchomásfielcuandovesloqueestásdesarrollandodirectamenteenundispositivoquetienelasdimensionesdeanchuraaproximadasalasqueestásfocalizandotudiseño.Existenvariasherramientasquetepuedenayudarahacerdepuenteentreelmóvilyelordenador,demodoquepuedasverenvivotodosloscambiosqueestáshaciendoentusCSSoentuHTML.Ahoranoeselmomentodeexplicarlas,peronoospreocupéispuestendremostiempoparaelloenunfuturoartículoenDesarrolloWeb.com.
Unaveztengaseldiseñoqueseveabienenunaventanaconanchurareducida,entoncesirásestirandolaventanahastaquetedescuentaquetudiseñocomienzaaversefeo.Entonceseselmomentodeponerun"breakpoint"(puntoderuptura)ydefinirmediaqueriesparapantallasquetengandimensionesmayoresqueesaanchura.
Nota:Hablaremosmásadelantesobrelosbreakpointsylasmediaqueries.Demomentonosquedamosmásenlapartedeconceptosyflujosdetrabajoyenpocotiempopodremosvercómoseimplementanencódigo.
MobileFirstesunacuestióndecomodidad,puestudiseñoirádemenosamásyportantogradualmenteirásacomodandolascosasyadaptandoellayoutalasnecesidadesdecadaanchuradepantalla.Peronosoloeso,tambiénessentidocomún,puesesmuchomásfácilcomenzarporunapantallapequeñadondeaparecenpocoselementosypocosdetalleseiragregandocosasamedidaquevancabiendoenellayout.Esdecir,resultamássencillotenerpocoselementoseiragregandomáscosasamedidaquevancabiendo,queempezarporeldiseñoparapantallasgrandesyluegoirquitandocosascuandonotecaben.
Esmásfácildiseñarenpequeñitoalprincipio.Cuandotienesmásespacioverásquetuscosassiguencabiendo.Sidiseñasengrande,cuandotengasmenosespaciolascosasnoteentrarányseguramentetendrás
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 22 de 59
quehacermuchosmásesfuerzosparaacomodarlas.Enestepuntotodoslosdiseñadoresestándeacuerdo,asíquenolopiensesmucho,comienzadiseñandoparamóviles.
EsteartículoesobradeMiguelAngelAlvarezFuepublicadoporprimeravezen23/02/2015Disponibleonlineenhttp://desarrolloweb.com/articulos/mobile-first-responsive.html
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 23 de 59
MediaQueries
CuandopensamosendiseñoResponsiveinmediatamentesenosvienenalacabezalasmediaqueriesCSS3,pueséstassonlasherramientasfundamentalesparaespecificarestilosconrespectoadiversascondicionesdelclientewebqueestávisitandoelsitio.EnlossiguientesartículosteexplicamoscondetallequésonlasMediaqueriesyteofrecemosinformaciónvaliosasobrecómoaplicarlas,creandolosbreakpointsmásadecuadosparatuslayouts.
CSSMediaQueries
LasMediaQueries,incorporadasenCSS3,sonlasprimerasconstruccionesdellenguajeCSSquenospermitendefinirestiloscondicionales,aplicablesúnicamenteendeterminadassituaciones.
LasMediaQueriesson,enunatraducciónrápida,consultasdelascaracterísticasdelmediodondeseestávisualizandounawebynossirvenparadefinirestiloscondicionales,quesoloseaplicaránencasoqueesaconsultadelmedioseasatisfactoria.
Sonunadelasherramientasfundamentalesparaimplementarel"ResponsiveWebDesign"yhanllegadodelamanodelasCSS3,convirtiéndoseenunaliadofundamentaldecualquierdiseñadorweb.
EnlamayoríadeloscasoslasMediaQueriessirvenparadefinirestilosdiferentesparadistintostamañosdelapantalla.Sonsencillasdeentenderyaplicar,aunqueelestándaresbastantesofisticado,condiversasposibilidades.Existenmuchosusos,algunosnotanhabitualesenelmundodeldiseñoactual,peroquepodrántenersuprotagonismoenalgúnmomento.
Nota:Amododecuriosidad,puesrealmentenoseusamuchoeneldiseñoactual,lasmediaqueriespuedendecirnossieldispositivotieneunarelacióndepantalla4:3o16/9,ounaprofundidaddecolordada,porejemplo.Enesteartículonosencargaremosdeconocerloscasosmáscomunesdeusoymásadelantenosadentraremosenestasotrascaracterísticasadicionales.
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 24 de 59
PasoalfrentedelasCSS
LasMediaQueriesrepresentanunaevoluciónimportantedeCSS,puestoquesuponenlaprimeraestructuracondicionalenellenguaje.SabemosqueCSSnoesunlenguajedeprogramación,nitienemotivosparaparecerse,peroexistenmuchascosasqueseimplementanenloslenguajesdeprogramaciónyquenosvendríanbieneneldesarrolloconCSS,comoeselcasodeloscondicionales.
"Siocurreésto,entonceshaztalcosa"
Unaconstruccióncondicionalcomoestaestanútilybásicaque,aunqueCSSnoseaunlenguajedeprogramación,necesitaincorporarlas.Ejemplosdecasosenlosquenosvendríabienuncondicional:
Silapantalladelusuariotieneestascaracterísticas,entoncesaplicaestosestilosSiseimprimeeldocumentoenlaimpresora,aplicaestosestilos.Silapantalladeldispositivotieneestasdimensionesyademásestásituadoenposiciónhorizontal(landscape),entoncesaplicaesteCSS.
SituacionescomoesassonbásicasylosdiseñadorespuedenresolverlasusandolasMediaQueries.Sonunpasoalfrenteencuantoalaseparaciónentreelcontenidoysurepresentación,puestoquenosfacilitanqueelcontenidodeunapáginapuedaadaptarsealmediodondeseestáreproduciendo,sóloatravésdeladefinicióndeestilos,sintenerquetocarelHTMLparanada.
AlternativasparaimplementarMediaQueries
Aunquelautilidadesnovedosa,lasintaxisesparecidaaloqueyaconocemosdelasCSS,porloquenosresultarábiensencilla.
ParaproducirMediaQueriesdebemostenersiempreenmentelaexpresióncondicional,aquellaquedebecumplirseparaqueseapliquenciertosestilos.Ademáslaexpresióncondicionalpuedetenerinclusovariascondiciones,usandooperadoreslógicoscomo"and"paracombinarlas.DemodoquelascircunstanciasquesedebancumplirparaaplicarunasreglasCSSseandelomásvariadas.
Alternativa1:LaprimeraalternativadelasMediaQueriesesatravésdelatributomediadelaetiquetaLINK.Comosabemos,esaetiquetaeslaqueseusaparaenlazarunahojadeestiloconundocumentoHTML.Eneseenlacepodemosespecificarcondicionalesquedebencumplirseparaquelosestilosenlazadosseapliquen.Porejemplo,queseestéimprimiendoundocumentooquelapantallatengaciertaanchuramínima.
Recordamos,laetiquetaLINKtieneestaforma:
<link rel="stylesheet" href="estilos-generales.css">
Puesahorasimplementelepodemosagregarelatributo"media"indicandolacondiciónquesedebecumplirparaqueestosestilosseapliquen:
<link rel="stylesheet" href="estilo-imprimir.css" media="print">
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 25 de 59
Esteatributomedia="print"quieredecirquelosestilosdebenaplicarsesólocuandolapáginaseestánmostrandoparalaimpresión.
Nota:EsteusoyalovimosanteriormenteenelartículoEstilosespecíficosparaimpresión.
<link rel="stylesheet" href="estilo-pantallas-grandes.css" media="(min-width:1200px)">
Esteusoseráseguramentemásnovedosoparati.Quieredecirqueesosestilosdebenaplicarsesólocuandolapantalladelusuario(Encasodeordenadoresdeescritorio,laventanadelnavegador)tengaunaanchuramínimade1200píxeles.
ElproblemadeescribirtusMediaQueriesasíesquetienesarchivosdeCSSseparados.Esdecir,aquellosestilosparaimpresiónoparapantallasde1200pxestánenarchivosindependientes,loqueessencillodeadministrarparanosotros,perounamalaprácticaentérminosdeoptimizacióndelaweb,puestoquesetienenquerealizarsevariassolicitudesalservidordistintasparatraerselosCSS.EnlaprácticaralentizalacargadelapáginaenrelaciónahacerunaúnicasolicituddeunarchivoCSSquecontengatodoelcódigodelosestilos.
Alternativa2:Estemétodoquevamosaverahoraesmásinteresanteyeselqueseusahabitualmenteanivelprofesional.Consisteenincorporarlosestilosenunaconstrucción@mediadondeseapliquenentrellavestodoslosestilosquequeremosparaunaconsultademediodada.
@media (min-width: 500px) {
h1{
margin: 1%;
}
.estiloresponsive{
float: right;
padding-left: 15px;
}
}
Comopuedesver,tenemoslasentencia@mediaenlaquepodemosindicarentreparéntesislascondicionesquedebencumplirseparaqueseapliqueestamediaquery.Enestecasoseráparapantallasquetenganunaanchuramínimade500píxeles.
LuegoentrellavescolocamostodaslasreglasyatributosdeestilosCSSquenecesitemosaplicarenestasituación.Lasreglasdeestilossonlasmismasquepondríasfueradelaestructuracondicional.Cuandolasentenciaentreparéntesisseevalúecomoverdadera,seaplicarántodasellas.
OperadoreslógicosparalasMediaQueries
Paracombinardiversascondicionespodemosusarlosoperadoreslógicos,deunamanerasimilaracomoseusanenlenguajesdeprogramación.Losquetenemosdisponiblesson:
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 26 de 59
*Operadorand:
*Operadornot:
*Operadoronly:
*Operadoror:
@media (max-width: 600px) and (orientation: landscape) {
h1{
color: red;
}
}
Estareglaseaplicaríaparapantallasconunaanchuramáximade600píxelesycuandolaorientaciónestáenhorizontal.
Nota:Tenencuentaquelamayoríadesmartphonessimulantamañosdepantallamayores,haciendounaespeciededimensionesvirtualesquefacilitenlalecturadewebsquenoestándiseñadasparaResponsiveWebDesign.Porello,lomásseguroesquetengasqueponerel"viewport"eneldocumentoHTMLaalgocomo:
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
Sineseviewporttumóvilsimularíaquetieneunasdimensionesdeunos980píxeles,cuandoquizáslapantallasolotengaunaanchurarealde320o500píxeles.Esteasuntoyaseexplicócondetalleenelartículosobreelviewport.
Paraverenfuncionamientolapartedelorientation(landscapeoportrait),tienesqueusarunmóvilotabletycambiarlaposicióndelapantalla,paraqueestéenhorizontalovertical.
Nota:Sitienesunordenadorquenoreconozcaelcambiodeorientaciónlaposiciónsiempreseráconsideradaserálandscape.
@media tv and (min-width: 1200px){
h1{
margin: 10%;
}
}
Estareglaaplicaríaendispositivosdetipotelevisiónycuyaresoluciónminimadeanchuraseade1200píxeles.
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 27 de 59
@media (min-width: 600px), handheld and (orientation: portrait) {
h1{
color: green;
}
}
Estemediaqueryserviráparapantallasdeminimasdimensiones600píxelytambiénparatodosaquellosdispositivoshandheldqueesténenposiciónvertical.
Nota:Handheldesuntérminoinglésquesirveparaespecificaraquellosdispositivosquesondemano.Pequeñosordenadoresquesellevanenlamano,comolospalmoagendaselectrónicasqueaparecieronantesdepopularizarselossmartphonesotablets.Pormispruebashandheldnoaplicaalosmóvilesotablets.
LasMediaQueriestienenmuchasmásposibilidadesquenocubrimosconesteartículo.Lasveremosmásadelante,perosindudaconloqueahorasabespodrásresolverel98%delasnecesidadesquetepuedasencontrarenelmundodeldiseñoweb.
Siteinteresasabermássobreestetema,enesteotroartículodeDesarrolloWeb.comtecontamoslaestrategiaparaaplicarlasMediaQueriesenResponsiveWebDesign.
EsteartículoesobradeMiguelAngelAlvarezFuepublicadoporprimeravezen07/01/2015Disponibleonlineenhttp://desarrolloweb.com/articulos/css-media-queries.html
GuíasdeusodelasMediaQueriesenResponsiveWebDesign
Vamosaconocermuchasdelastécnicasrelacionadasconlasmediaqueriesquepuedesaplicarparasitiosqueseadaptenatodotipodepantallasymedios.
EnelManualdeResponsiveWebDesigndeDesarrolloWeb.comhemosabordadoyamuchosasuntosimportantesyenconcretoenelcasodelasMediaQuerieslashemosanalizadodesdeunpuntodevistatécnico,centrándonosenlasintaxisdelasCSSparaMediaQueries.Hasidogenial,porqueyasabemosmuchascosasquepodemosrealizargraciasalasMediaQueriesycómoimplementarlasaniveldecódigoCSS.
Noobstantesobretodoparalaspersonasqueseestániniciandohaymuchascosasquelesarrojarándudasoproblemasyquevamosaintentarresolverenelpresenteartículo.Portanto,estásanteuntextomenostécnicoperollenodeconsejosyguíasparaquepuedasaplicarloentusdiseñosadaptables.
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 28 de 59
ConfigurarunbuenViewport
Elviewportesunadefiniciónodeclaraciónsobrediferentesparámetrosdelavisualizacióndeunapáginaweb,queafectasobretodoalosdispositivos.SetratadeunaetiquetaMETAatravésdelacualsepuededefinirsielusuariopuedeonohacerzoomenlapágina,quézoominicialdebeaplicarsealentrar,laanchuraquedebesimularlapantalladeldispositivo.Esalgolargodecontar,sisequiereexplicarbien,porloqueterecomendamosleerelartículodedicadoalViewportparaencontrarlainformacióndetallada.
DemomentotepuedesquedarconqueelViewportsirveparaquelapáginanosemuestreenpequeñitoeneldispositivo(Habrásapreciadoquecuandoentrasenunsitioquenoes"responsive"sevetodomuypequeño).Cuandotrabajasconunsitioadaptabletienesqueobligaraldispositivoanosimularquetienemásanchuradepantalladelaquerealmentetieneyparaellotienesquedefinirunviewportadecuado.
Esunfallocomúncuandoestásempezandoesnotenerunviewportdefinido.Elsíntomaesquetupáginanoteestáaceptandolasmediaqueriesqueestásdefiniendo.Sitepasaesonotevuelvaslocoydefineunviewportadecuado.Consultaelartículomencionadoparaencontrarlainformacióncompletasobrecómosedefine.
Elordendecolocacióndelosmediaqueries
Ordendelasmediaqueriesesimportanteyportantodebestenercuidadoconello.Paraentendercómoordenartusmediaqueriestienesquetenerencuentadoscosas:
1.Lacascadaque,aniveldeCSS,afectaatodaslasreglasdeestilo2.LareglacomentadaanteriormentequellamamosMobileFirst
Nota:Aunqueesunconocimientobásico,loaclaramosporsiacaso.LacascadaenCSSesaquellamaneradeprocesarlosestilosqueproducequesepuedansobrescribir.Osea,sienunpuntodetuhojadeestilosdefinesunCSSparaunelementoymásadelanteenelcódigoCSSlosobreescribescolocandocualquierotrovaloreneseestilo,elquesetieneencuentaeselquesedefinióporúltimolugar(amenosqueuses"important"enlaprimeraregla).Enresumen,sidosvaloresenatributosdeCSSsecontradicen,porlaregladelacascada,elquesetieneencuentaeselquesecolocóporúltimolugar.
Asípues,elordenqueseusanormalmenteparalasmediaquieries(MQ)es:
1.Colocartodoslosestilosaaplicardemaneraglobal,fueradecualquierMQ.Losestilosquecoloquessin
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 29 de 59
MQseráncomo"MQglobales"queafectaránatodoslosdispositivos,contodaslasanchurasdepantalla.PorlaregladelMobileFirst,lasconfiguracionesquepondrásentuCSSglobal(ausenciadeMQ)seránlasqueseapliquenalosmóviles,osea,alosdispositivosconmenoranchuradepantalla.(Veraclaraciónmásabajo)2.Luegocolocarás,comoprimerMQ,elestilonecesarioparalosdispositivosdelasiguienteanchuradepantallaquenecesites.3.IráscolocandolosMQenordendeanchurasdepantallaascendentes.TerminarássiempreporelMQquecoloquesparalasanchurasdepantallamayores,ordenadoresconpantallasdealtaresolución.
Nota:Estaguía,basadaenlafilosofíaMobileFirst,eslaqueponeenprácticalamayoríadelosdiseñadores,porconsiderarsemásútilyversátil.Lógicamentetúpodríasaplicarlafilosofíaquetevengaengana,siempreycuandosigaslaregladelacascada,queeslaqueverdaderamentetemarcaellenguajeCSS.
Rangosdemediaqueries
Puedesperfectamenteespecificarrangosdemediaqueries.Paraellousasmin-widthymax-widthalavez.Quizásnoesalgomuyhabitual,perolomencionamosporsituvierasnecesidaddeello.Lasintaxisseríalasiguiente:
@media (min-width: 700px) and (max-width: 800px){
.lateral{
width: 33%;
float: right;
background-color: #6ee;
}
}
Esosestilosparalaclase"lateral"losvisualizaríasenanchurasdepantallaquecumplanlasdoscondicionesalavez,osea,quesuanchuramínimasean700píxelesylasanchuramáximasea800píxeles.Esdecir,elrangode101píxelesquevandesdelos700hastalos800pixel.
Anchuradelapantalladeldispositivo
Hastaahorahemosdefinidolosmediaqueriesconrespectoaunaanchuradelapantallaquepuedastenerenunmomentodado,perotambiénpuedesdefinirlasparalaanchuratotaldelapantalla,independientementedelaconfiguraciónactual.Loconsiguesconmax-device-widthymin-device-widthynoafectanalaanchuradelapantallaactual,sinoaladeldispositivo.
Nota:Recuerdaquecuandodecimosanchurageneralmentequeremosreferirnosaanchuraoaltura.Generalmentelasmediaqueriesseaplicanalaanchura,perotambiénlaspuedesaplicaralaaltura,min-height,max-height.Recuerdatambiénqueconmediaqueriespuedesespecificarsiseaplicanadispositivosqueesténposicionadosenhorizontaloenvertical(landscapeoportrait).Todoesosemencionóenelanteriorartículodelasmediaqueries.
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 30 de 59
Aclaraciónsobrelas"MediaQueriesglobales"
Anteshemoscomentadoacercade"mediaqueriesglobales".Esteesunconcepto"verdadamedias",puestoquenoexistenmediaqueriesglobales,queafectenatodaslasresolucionespantallaytodoslostiposdedispositivos.Perosiloanalizasmásdecercaobservarásque,sinoexisteningunamediaqueriedefinidaentusCSS,entoncestusreglasdeestiloestaránsiendoaplicadasdemaneraglobal.Dichodeotromodo,cuandonodefinesningúnmediaquerieenrealidadestásdefiniendoestilosCSSqueafectanatodoslosposiblesestados,pantallas,medios,dispositivos,etc.
EsaausenciadeMediaQueriesesjustamentetudeclaración"global",aplicableentodosloscontextos,queafectaatodoslossistemas.
Conclusión
Contodoesteconocimientoyaestásencondicionesdeponertemanosalaobrayaplicarmediaqueriesatudiseñowebyadaptarloatusnecesidades.HaymuchascosaspordelantequeconocerparaaprovecharlasposibilidadesdelResponsiveWebDesign,peroestamossegurosquepodrásaplicarunmontóndeutilidadesparaadaptartodotipodesitiosatodotipodepantallas.Seguroquedisfrutarásdelaexperiencia.Seguiremostrabajandoparallevartemuchosotrosconocimientosytécnicasesencialesparaeldiseñoweb.
EsteartículoesobradeMiguelAngelAlvarezFuepublicadoporprimeravezen04/03/2015Disponibleonlineenhttp://desarrolloweb.com/articulos/guias-uso-media-queries-rwd.html
BreakpointsparadiseñoResponsive
LospuntosomedidasdeanchuradondesepuedencrearsaltoseneldiseñoResponsive,llamadoscomúnmentebreakpoints,apartirdedondeaplicarlasmediaqueriesparaResponsiveWebDesing.
ResponsiveWebDesignsonmuchascosas,esoptimizaciónparatreselementosfundamentales,navegadoresysistemasoperativos,velocidadesyanchurasdepantalla.Enestecasovamosatratarsobrelaoptimizaciónparapantallas,lostiposdepantallasylossaltosqueeldiseñodebepegarparairadaptándose.
Observarásqueundiseñoadaptableesresponsivoaloscambiosdelaventanadelnavegador.Amedidaquelahacemosmayoromenorlaplantilladelapáginavacambiandoparaadaptarsemejoralasnuevasdimensiones.Alestirarlapantallaobservarásque,deunaúnicacolumnaendefinicionespequeñas,pasaaserdedoscolumnasenunaanchuradepantallamayor,luegopasaatenertrescolumnascuandoampliastodavíamáselespacioyasíindefinidamente,talcomoeldiseñadorhayadefinido.
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 31 de 59
Aesossaltosenlosqueundiseñocambiadeunlayoutaotro,amedidaquevaagrandándoselaventanadelnavegadorlesllamamosbreakpointsyseproducengraciasalasmediaqueries.Enesteartículohablaremosdelosbreakpointsysobrecuálessonlospuntosidealesenlosquerealizarlos.
Losbreakpointsnodebenorientarseadispositivos
Esteeselpuntomásimportantedelartículo,puestoquegeneralmentelaspersonasconmenosexperienciaenResponsiveWebDesigntiendenaasumirqueexistenunasmedidasestándarenlasquesedebenaplicarlosbreakpoints.Podríahaberlasconformealasdimensionesdediversosdispositivos,comoiPhone,iPad,ordenadoresconpantallasestándaryluegohablaremosdeellas,perolarealidadolarecomendaciónvaporotrolado.
ComovimosenloscapítulosdeintroducciónenelManualdeResponsive,unodelosmotivosporlosqueexisteestafilosofíadediseñoeseldenocrearversionesdistintasparadistintostiposdesistemas.Nocreamosunaversiónparamóviles,otraparatabletasyotraparaordenadores.Esodebehaberquedadoclaro.Puesdelamismamanera,nocreamosbreakpointsorientadosadispositivos.Elmotivoeselmismo:esimposiblequepuedasgenerartantossaltoscomotiposdepantallasysusresoluciones,etc.
Siteempeñasesencrearbreakpointsconlasdimensionesdedispositivosenlacabeza,vasatenerquecrearsaltosparacientosdedispositivos.Cuandosaquenunnuevomodeloounanuevamarcaseguroquenoquieresactualizartussaltosparaquelawebseveabienenellos.Esimposiblealcanzaratodoslosdispositivos,todaslasmarcasymodelos.Esimposiblequeconozcastodaslasdimensionesdepantalla,lasexistenteshoyylasquepuedanexistirmañana.
Cómosaberellugardondecolocarunbreakpoint
Sinohacesbreakpointsorientadosadispositivos,¿cómosaberdóndecolocarlos?Larespuestateladatudiseño.Enotraspalabras,breakpointdebeestarorientadoaldiseñoparticulardetuweb.
Parasaberdóndecolocarlossaltosconlasmediaqueriesdebesestirarlaventanadelnavegador,partiendodelaventanacondimensionesreducidas(mobilefirst)vasestirandolaanchurahastaquecomienzasaapreciarquetudiseñoestáviéndosepeor.Noesquelosusuariossedediquenacambiarlasdimensionesdelaventanadelnavegador,esalgoquehacemoslosdiseñadores,paraimitarrápidamentedistintostamañosdepantallademóvilesotablets.
Tomacualquierpáginawebadaptable,comoladeDesarrolloWeb.com,yponlaendimensionesdeanchurapequeñas.Entoncesagrandalaventanayapreciarásqueendeterminadomomentosurgemuchoespaciovacíooquelascolumnascomienzanaserdemasiadograndes.Entonces,enesemomento,pocoantesopocodespués,verásque"zas",cambiaellayout.
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 32 de 59
Osea,vashaciendolapáginamásanchaycuandotudiseñoempiezaaempeorar,olosespacioscomienzanaestarpeordistribuidos,entonceseselmomentoadecuadodecolocarunbreakpoint.
Breakpointsgrandesypequeños
Laregladeoroesnolimitarnosanosotrosmismosaunnúmerodebreakpointsdeterminado.Nodebesescatimaralahoradehacerbreakpoints.Nolosveascomopuntosdondecambiasdelayout,orientadoamóviles,tabletsomonitoresdeordenadordealtadefinición.Comohemosdicho,noeseseelobjetivo,crearversionesdeldiseño,aunquemantengasunúnicoHTML.Avecesunbreakpointpuedesersimplementecambiarlaalineacióndeunelemento,lamedidadeuntextoenuntitular,etc.Lospuntosdondecolocasmediaqueriespuedenserparacualquiercosaquenecesites.Avecesesalgotansimplecomounaimagen,queapartirdedeterminadasdimensiones,quieresqueflote(float)paraqueeltextoalrededorlarodee.Ounaumentominúsculoenlafuentedelapágina.Noimportaquetanpequeñoeselcambio,sivesquebeneficiaalaspectodetupágina,esmotivoparacrearunnuevo"mediaqueries".
Portanto,haytantobreakpointsgrandes,quetecambiaránellayoutdelapáginayportantoafectandemaneramásradicalaldiseñoyotrospequeñospuntosderupturaintermedios,querealizaránpequeñosajustesparasolucionardetallesquemerezcalapenaretocar.Portodoeso,volvemosaremarcarelpuntoanterior,esimportantequelosbreakpointsloshagasenfuncióndetudiseño,apreciandoelmomentoadecuadoparaproducirlos,agrandandoyempequeñeciendolaventanadelnavegadorparadecidircómoycuándo.
Medidasestándarparamediaqueries
Haydiseñadoresque,apesardetodolodichoanteriormente,aúnsepreguntansiexistenmedidasestándarparaunapágina,enlosquecrearsusbreakpoints.Nopodemosdarteesasmedidas,entreotrascosasporquenopretendemoscontradecirnosanosotrosmismos,almenosnoenesteartículo.Peronodesesperesporquerealmentenolasnecesitas.
Volvemosainsistir,lasvecesquehagafalta,quelasmediaqueriesnosedebendefinirparaoptimizarundiseñoparaiPadoiPhone,etc.sinoquedebenseraquellasqueproduzcanunaadaptabilidadmejordeldiseño.Yesosololoconsiguesconociendotupropiodiseñoynoconociendolossoportesdesdedondelovanaacceder.Recuerdaademásquecualquiercoleccióndedispositivosquepuedastenersiemprevaserparcial,puestoqueesimposiblereunirtodoslostamañosdepantallayresolucionesenningúndocumento.Básicamenteademásporquenecesitaríamosestaractualizandoesalistacasidiariamente.
EsteartículoesobradeMiguelAngelAlvarezFuepublicadoporprimeravezen05/05/2015Disponibleonlineenhttp://desarrolloweb.com/articulos/breakpoints-responsive-web-design.html
Medidasestándardepantallasparatusmediaqueries
ListadodepantallasyviewportscomunesdedispositivosyordenadoresdeescritorioparahacernosunaideadehaciadóndepodríanapuntarnuestrasmediaqueriesCSS.
Hepensadobastanteantesderedactaresteartículo,analizandohastaquépuntodeberíaonoescribirlo.
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 33 de 59
Comosabemos,losbreakpointsdeundiseñoResponsiveWebDesignparacreartusMediaQueriesnodebenorientarseatamañosdepantallaestándar,sinodebeseralgoespecíficoparatupropiodiseñoweb.Sinembargo,muchaspersonasquierensaber,almenosamodoorientativo,quémedidasdepantallashabitualessepuedenencontrarenlosdispositivos.
LoquenoquieroquesepienseesqueestepuntocontradicetodolodichoanteriormenteenelManualdeResponsiveWebDesign.Poresoesbuenoinsistirqueestasmedidassonsolamenteamodoorientativo,paraaquellaspersonasquetienencuriosidadsobrelasdimensionesdelosdispositivos"estándar".
Recordandoquecualquiercoleccióndemedidasparamediaqueriesestásiempredesactualizadaeincompleta,porqueesimposiblealbergartodasycadaunadelasmedidasdepantallaquehayenelmercadodeordenadoresydispositivosyademás,cuandosepubliqueoleaestetexto,quizásyahayanaparecidonuevosdispositivoscondimensionesdiferentesalasquesemencionan.Asíquetomaestasmedidasdeviewportcomounareferenciaúnicamenteorientativaysobretodoparcial.Entiendeademásquenopretendemosquediseñesparaningunadeestasdimensiones,puestoqueseríaunerror.
Nota:Muyimportante,loquesemuestraacontinuacióneseltamañodelViewport.Lasmedidasencentímetrosopulgadasdelapantallanotienenqueverconlasmedidasqueelteléfonotieneenpíxeles.Peroademás,elmóvilpuedetenerunaresoluciónenpíxelesdiferentequesuviewport,porquemuchosmóvilesusanvariospíxelesdepantallapararepresentarunpíxeldeimagen,debidoasu"devicepixelratio"oelratiodepixelsqueeldispositivousaparamostrarunpixeldecomputableenmedidasdeviewport.Porejemplo,lapantalladelNexus5esFullHD,loqueimplicaunaresoluciónde1080x1920pixels.Sinembargo,almostrarunapáginawebelNexus5tieneunviewportde360x598.Todoestoesunpocodelío,peroesporquelasdensidadesenpíxlesdelaspantallasahorasonmayoresypararepresentarunpíxelusanvariospuntos.
Medidasdeteléfonosmóviles
LagamaiPhonetienemedidasquesonfactiblesderecopilar,puestoquelosmodelosquehanaparecidoenelmercadosonlimitados.Sinembargo,lagamaAndroiddebetenerdecenasdemilesdetiposdepantallasdistintas,porloquesimplementepodemoshacerunresumendemodelosmástípicos.
iPhone4y4S:320x480iPhone5y5S:320x568iPhone6:375x667iPhone6+:414x736Nexus4:384x598Nexus5:360x598GalaxyS3,S4,S5:360x640HTCOne:360x640
Medidasdetablets
Pasaunpocolomismo,podemosindicarmedidasdeviewportparalostabletsdeApple,peroesimposible
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 34 de 59
dartodaslasmedidasqueencontrarásenunAndroid.Recuerdaque,asícomolosmóviles,puedessituarlapantallaenverticaluhorizontal,asíqueesunpocolomismoquedigamosqueuniPadtieneunasdimensionesde768x1024ode1024x768.
Además,porladensidaddepíxelesdelaspantallas,aunqueiPad1,2,3y4,inclusoeliPadMini,tenganelmismoviewport,lospíxelesderesolucióndesuspantallassondiferentes,loquecambiaeselpixelaspectratio.Enestecasoconcreto,losiPadMiniylosiPad1y2tienenundevice-pixel-ratiode1mientrasqueiPad3enadelantetieneundevice-pixel-ratiode2.
iPadtodoslosmodelos,asícomoiPadMini:1024x768GalaxyTab2y3(7.0pulgadas):600x1024GalaxyTab2y3(10.1pulgadas):800x1280Nexus7:603x966Nexus10:800x1280MicrosoftSurfaceW8RT:768x1366MicrosoftSurfaceW8Pro:720x1280
Ordenadoresdeescritorio
Enelcasodelosordenadoresdeescritoriocontamosconlasresolucionesdepantallatípicasdetodalavida,aunquetambiénentraenjuegorecientementeladensidaddepíxelesqueaumentaenordenadoresmodernos,comolaspantallasRetinaenlosMac.
Pantallaspequeñas(usadasporejemploennetbooks):1024x600Pantallasmedianas:1280x720/1280x800Pantallasgrandes:anchosuperiora1400píxeles,ejemplo1400x900o1600x1200.
Relojes
Aquíyalacosaseponecomplicada,puestoqueelviewportesmuyreducido,porloquelaexperienciadeusuariodebeajustarsemucho,peroesoesotrotema.
AppleWatch:42mmdeanchuradepantalla,viewportde256px(calculadoenrelaciónaltamañodepantalladeliPhone)360MotoWatch:218x281
Conclusión
Demomentoesoestodo.Noquieroacabarsinvolverainsistirenqueestarecopilaciónnopretendesercompleta,yaquelasMedidasestándarparabreakpointsnoexisten,puesdependedeldiseñodetupágina.
Haydosreferenciasquemeparecenmuyútilesyqueheutilizadocomodocumentaciónparaconstruirestelistado.PorunaparteelsitiowebViewportSizes,quetieneunaestupendareferenciadeunacantidadenormededispositivos.PorotraparteelartículoMediaQueriesforStandardDevicesdeCSS-Tricks,quetevieneconuncódigodelosmedia-queriesquedeberíasusarparadefinirestilosparaundispositivo,loquenospareceunpocoerrorporlosmotivosqueyahemoscomentado,peroquepodríanserdeutilidadalosinteresados(soloporcapricho)deaplicarestilosespecíficosparaunmodeloparticular.
EsteartículoesobradeMiguelAngelAlvarezFuepublicadoporprimeravezen30/06/2015Disponibleonlineenhttp://desarrolloweb.com/articulos/medidas-estandar-pantallas-media-queries.html
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 35 de 59
Todosobreunidadesdemedidaparaeldiseñoadaptable
CSSdisponedeungrancatálogodeunidadesdemedidaquesepuedenadaptaradiversasnecesidades.EnloquerespectaaResponsiveWebDesign¿Cuálessonlasunidadesdemedidamásinteresantes?¿Enquécasosdebemosusarcadauna?
UnidadesdemedidaenCSS:relativasyabsolutas
DiscusiónsobrelasunidadesdemedidaCSS,distinasunidadesconsusexplicacionesyladiferenciaciónentreunidadesrelativasyabsolutas.
LasunidadesdemedidasonalgoquevienedeCSS,tienenqueverconellenguajedelashojasdeestiloynoespecialmenteconlastécnicasenglobadasen"responsive".Portanto,yahansidoobjetodeestudioenotrosartículosdeDesarrolloWeb.com.SiquieressaberlobásicoconvieneleerelartículodeunidadesdemedidaCSShttp://www.desarrolloweb.com/articulos/185.phpsinosabéisaquénosreferimos.
SinembargoenResponsiveWebDesigndebemosusarunidadesdemedidaconmayorcuidado,sicabe,parasacarlomejordecadauna.Quizáshabéisescuchadoqueenlíneasgeneralessedebeintentarusarunidadesdemedidarelativasy,aunqueesciertoenmuchascircunstancias,nosiempreescorrectoniportantolomásadecuado.
Lasunidadestienendiversascaracterísticasquedebemosconocer,parausarlasconcriterioyescogerlasmásadecuadasencadacaso.Deesoesloquetrataesteartículo.Además,tambiénqueremosactualizarlainformacióndeDesarrolloWeb.com,puestoqueenlosúltimosañoshanaparecidonuevasunidades,ennuevasespecificacionesdeCSS,delasquenohemoshabladoenartículos.
Nota:EnprogramasenvivodelosqueemitimosporhangouttodaslassemanassíhemosidoactualizandolainformaciónacercadeunidadesdemedidaCSS.Porejemploterecomendamosel#designIO:UnidadesdemedidaCSS.
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 36 de 59
Medidasfijasymedidasrelativas
Loprimeroquetenemosquesaberdistinguiresentreunidadesrelativasyunidadesfijas.Porsiacaso,vamosadescribirlasyconstatarcuálessonlasunidadesCSSmáshabitualesdecadatipo.
Unidadesfijas:
Sonaquellasqueespecificanunamedidaentérminosabsolutos,sintenerencuentaelcontextodondeseestánaplicando.Porejemplo300px(300píxeles)esalgobastantefijo,quetendráunvalorindependientementededóndesehayadefinido.300pxsonsiempreeso,300px,independientementedesitucontenedortieneunaanchurade2000pxode500px.
Nota:Enmuchosdeloscasoscuandodecimos300pxenCSScorrespondecon300puntosenlapantalla,peronoessiempreasípueshabríaquediscutiracercadepantallasconmayordensidaddepíxeles,comolaspantallasretina.EndeterminadaspantallasunpxdeCSSnotienesiemprequecorresponderconunpuntoenlapantalla,perononosvamosametertodavíaenello.
Lassiguientesunidadessonunidadesfijas:
px:Píxelesin:Pulgadas(1inesiguala96px)pt:Puntos(1ptesiguala1/72in)cm:Centímetrosmm:Milímetrospc:Picas
Unidadesrelativas:
LasunidadesrelativasdeCSSsonaquellasquetienenencuentaelcontextodondeseencuentran.Sonrelativasalasdimensionesdelcontenedordondesehandefinido.Porejemplo%,esunaunidadrelativa,puestoque30%deanchonoserálomismoparaunelementosituadodentrodeuncontenedorde2000pxdeanchuraosobreuncontenedorde1000pxdeanchura.
%:porcentajeem:Alturadelafuenterem:Root-emvw:Viewportwidthvh:ViewportHeightvmin:Viewportmenor,entrealturaoanchuravmax:Viewportmayor,entrealturaoanchuraex:anchuradelafuenteparalaletra"x"ch:laanchuradelcarácter"0"(cero)
Nota:Sigueleyendoparaencontrarexplicacionesdetalladasdeestasmedidas.
Unidadesrelativas¿aqué?
Sisabeslarespuestaoalmenostehashechoesapreguntatepuedesdarporsatisfechopuesesunabuenareflexión.Cadaunidadpuedeserrelativaaunacosadistinta,oinclusomedidascomoelporcentajepuedenserrelativasavariascosas.
Elporcentajeesrelativoalapropiamedidaheredada.Porejemplo,siestamosdefiniendotamañosde
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 37 de 59
fuentesydecimosquees150%,entoncesesamedidaesrelativaalpropiotamañodelafuentedelelementoqueheredadelcontenedor(unavezymediaeltamañodelafuentequehabríaenelelementoantesdeaplicarleelestilo).Perolamismaunidaddeporcentaje,aplicadaalapropiedadwidthdeunacajaserárelativaaltamañodelcontenedorensuanchura.
Porsuparte,launidademesrelativaaltamañodeltextodelcontenedordondeestáaquelelementodondeseleaplicaesaunidad.Ysiempreesrelativoaltamañodeltexto,aunqueseapliqueenunapropiedadcomowidthqueafectaalaanchuradelelemento.
Nota:"em"esunaunidadqueequivalealtamañodeltextoenuncontenedor.1emeseltamañodelafuentedefinidoenuncontenedor.Eltamañodeltextopredeterminadoenunnavegadoresde16píxeles,portantoyanoserquelocambiemos,1emenelbodyseráequivalentea16px.
Porejemplo,sidefinimosqueuntextosea2emparacalculareltamañoefectivohabráquesabercuáleseltamañodeltextoenelcontenedorymultiplicarlopordos.Igualmente,siestamosdefiniendounaanchurayleasignamos10em,paracalcularlaanchuraefectivaenpíxelestendremosquesabercuáleseltamañodelafuentedelcontenedor.
Porejemplo,tenemosunelementoDIVqueeshijodirectodeBODY.SinosehamodificadoeltamañodeltextodelBODYesequivalentea16px.SieseDIVtieneunwidthde10em,laanchuraefectivadeelementoseráde10x16píxeles=160px.
Lointeresanteaquíesque,paraelcasodelasdimensionesdeloselementos,podemosespecificarlasanchurasoalturasrelativastantoenemcomoen%.Siusasemseránrelativasaltamañodetextoysiusas%seránrelativasaltamañodelcontenedor,llegandoafórmulasdistintas:
Valor%=(dimensiónobjetivo/dimensióndelcontenedor)x100Valorem=(dimensiónobjetivo/fuentecontenedor)
Dichoconpalabras:Siquieresqueunelementotenga200píxelesdeanchoylasdimensionesdelcontenedorenunmomentodadosonde1000píxeles,elvaloren%seráde200/1000=0.2*100=20%
Siquieresqueunelementotenga200píxelesyeltamañodelafuenteensucontenedoresde16píxeles,enemtendríasquedarleelvalor200/16=12.5em
Lasfórmulasessolocuestióndeaplicarlas,loimportantequedeberíasquedarteenestepuntoesque,dependiendodelaunidad,éstassonrelativasaunascosasyavecesaotras.¿Cuálusar?Laquetevengabien.Generalmenteparaanchurasrelativasdeelementosteserámásfácildistribuirlosespaciosusando%,peroquierestenerunelementoquetengaalturaaproximadadeltexto,puedesusarem.Porejemplo,unspanqueseaunpocomásaltoqueeltextoquetienedentro.
Acontinuacióntienesuncuadroresumendelasunidadesrelativas,conrespectoalamedidaalaquesonrelativas.%:Porcentaje,puedeserrelativofrenteavarioselementos,sitrabajamosconfuentesesrelativoalafuente,perosiloaplicamosawidthesrelativoalaanchuradelcontenedor,porponerdosejemplos.
em:Relativaaltamañodelafuentedelelementoactualrem:Relativaaltamañodelafuentedelelementoraíz(HTML)vw:ViewportWidth,relativaaltamañodelviewport,seríael1%delaanchuradelviewport
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 38 de 59
vh:ViewportHeight,relativaaltamañodelviewport,seríael1%delaalturadelviewportvmin:Relativaaltamañodelviewport,elvalormínimoentresualturayalturavmax:Relativaaltamañodelviewport,elvalormáximoentresualturayalturaex:Relativaalafuentedefinidaenelcontenedor,tamañodelaletra"x"enlaanchurach:Relativaalafuente,igualqueexperoconlaanchuradelcaracter0(cero)
Nota:ParaaclararvminyvmaxpensemosenunViewportdeejemplo320x480(Silotenemosenvertical"portrait",sería480x320silotenemosenhorizontal"landscape").SilotenemosenPortraitelvwseráequivalentea3.2pxyvhsería4.8px.Encualquieradeloscasos,tantohorizontalcomoverticalvminseríaelmenorentrevwyvhqueseríaequivalentea3.2pxyvmaxseríaequivalentea4.8px.
Enelsiguienteartículoseguiremoshablandodeunidadesdemedida,explicandoalgunasunidadesnotanusadasyvalorandolaconvenienciadelasunidadesrelativasyabsolutasendiversassituaciones.
EsteartículoesobradeMiguelAngelAlvarezFuepublicadoporprimeravezen10/08/2015Disponibleonlineenhttp://desarrolloweb.com/articulos/unidades-medida-css-relativas-absolutas.html
UnidadesdemedidaCSSmásadecuadasparaelResponsiveWebDesign
Explicacionessobrelasmejoresunidadesdemedidaydiscusiónsobrecuándodebemosusarunasuotrasparasacarlomejordelashojasdeestiloyeldiseñoadaptable.
EnelanteriorcapítulodelManualdeResponsiveWebDesignestuvimoshaciendounaprimeraaproximaciónalasunidadesdemedidadeCSSyexplicandolosgrandesgruposdeunidades,queseríanlasunidadesdemedidarelativasyabsolutas.
Estetextovieneacontinuarconloqueveníamoshablando,haciendounespecialhincapiéenexplicarunidadesdemedidanotanutilizadasenlaactualidad,peroquetienenuncomportamientomuyadecuadoparalossitiosadaptables.
Comenzaremosofreciendounaexplicaciónsobrelasunidades"em","rem",asícomo"vw"y"vh".
Unidades"em"
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 39 de 59
EnelartículoanterioryaexplicamosmuchascosassobreestaunaunidaddemedidaCSS,asíquenonosvamosarepetir.Solorecordarqueemcorrespondeconlamedidaactualdelafuenteenuncontenedor.Porejemplo,sihasmodificadoeltamañodelafuenteenunelementoylehasasignadofont-size:20px,entoncesdentrodeesecontenedor(ysushijossinoredefinimosesetamaño,1emseráiguala20px.
Ademáscomentamosqueeltamañodefuentepredeterminadoenelnavegadoresusualmentede16px,porloque,sinolohasalteradoenalgúnlugardetuCSS,1emequivalea16px.Peroojo,tómalosolocomounareferencia,yaqueesetamañodefinidopordefectoesalgopropiodelnavegadoryquepodríacambiarentremarcasdenavegadores,versiones,modelos,sistemasoperativosoconfiguracionesdelusuario.
Unidades"rem"
Ahoraquehasentendido"em",puedesentenderlaunidad"rem",queesrelativaaltamañodelafuentecomoem,peroenestecasotieneencuentaeltamañodelafuentedelelementoHTMLynolaheredadaodefinidaenelelementodondeseencuentreaquellocuyasdimensionesestásdefiniendo.
Elproblemaderemeslacompatibilidadconnavegadoresantiguos,IE8oanteriores,puestoqueesunaunidaddefinidaennuevasversionesdeCSS.Poresemotivo,siquieresusarremyasegurarlacompatibilidadhaciaatrás,deberíasdefinirprimerolasmedidasencualquierunidadcompatiblecontodoslosnavegadores,comopxoemyluegodefinirlasmedidasconrem.
Nota:Comoveseltrabajodeusarremseduplicaportenerqueespecificarlasunidadesdosveces.PeroestolopodríassolucionardeunamaneraprácticayeleganteconpreprocesadoresdeCSS,delosquenohablaremosahora.
Launidadremesunaexcelentemaneradedefinirtamañosdefuentes,puessuelesermuchomásfácildeorganizaryteevitasorpresasodudashabitualesalusarem,yaqueremsiempretendráencuentaunaúnicamedidaparacalculareltamañofinaldelafuenteencualquierlugar.
Unidadesvwyvh
EstastambiénsonunasunidadesderecienteapariciónenelestándarCSS.Sunombre,vwyvhcorrespondenconlassiglas"viewportwidth"y"viewportheight".Podríamosdecirquesecorrespondeconlaanchuraylaalturadelapantalladeldispositivo,perononecesariamentecorrespondejustamenteconlasdimensionesreales,puestoqueaveceselviewportpuedesimularqueeldispositivotieneunasdimensionesdiferentesdelospíxelesdelapantalla.Estoseentiendemejorsiconoceselconceptodeviewportquehemosexplicadoanteriormente.
Estasunidadessonrelativas,aunqueenestecasolosonalapantalladeldispositivo.1vweslacentésimapartedelaanchuradelviewportdeldispositivo,demodoque100vwseríalaanchuratotal.Delmismomodo1vhseríalacentésimapartedelaalturadelviewport.
Enlaprácticaesespecialmenteútilparaconseguirqueunelementoocupetodalaalturadisponibleenlapantalladeundispositivo.Comosabemosunheight:100%tieneuncomportamientomuyerrático,nofuncionandoenlamayoríadeloscasosparalosobjetivosdeseados.Porellopodemosusarelvhcomounidad,comosigue:
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 40 de 59
.lateral{
width: 200px;
height: 100vh;
background-color: #4ff;
}
Lapartemenosinteresanteesquenofuncionaenpantallasdeordenadores,porloquetendrásqueaplicarestilosalternativossiquieresqueunelementoocupatodalaanchuradelapantalla.
Nota:TenemosunartículocompletodondeseexplicanestasunidadesViewportWidthyViewportHeight.
CuálessonmejoresunidadesCSS,fijasorelativas?
Otradelaspreguntastípicasquenospodemoshacer.Entonces,despuésdetodo,¿Cuálessonlasunidadesrecomendadas,lasfijasolasrelativas?Puesmetemoquenohayunarespuestaexactaquesirvaentodaslassituaciones.Debemosconocerlascaracterísticasdecadaunaparasabercuálusar.
Noobstante,debidoaldesarrolloresponsiveylaimposibilidaddeconocerdeantemanolasdimensionesexactasdelapantalla,generalmenteusarásunidadesdemedidarelativas.Perorepitoquenolopodemostomarcomounareglageneral.
Cuandodefinasunaanchuradeunelementoqueformapartedeunlayoutusaráshabitualmentelasunidadesrelativas,paraquealagrandarodisminuirelespaciosigaadaptándosebienysedistribuyancorrectamentelascajasparalasdimensionesactualesdelnavegador.Estoenloquetienequeverconlaanchura,puestoquealturasrelativasnosesuelentrabajar,yaquesabemosquelaalturasecalculaenfuncióndelcontenidoquehayaquecolocarenloscontenedores.
Enladefinicióndetamañosdelasfuentestambiénesmuyútiltrabajarconunidadesrelativas,dadoqueasítodoslostamañosdeltextoseadaptaránalelementoraíz.Experimentarásqueesmuyútil,llegadaaunaanchuradadadepantalla,aumentar(odisminuir)todoslostamañosdelostextosdelapágina,parafacilitarlalectura.Sihasusadosiemprefuentescontamañosrelativosseríamuyfácildeconseguir,cambiandosimplementeelvalordelelementoBODYoHTML.EnelsiguienteartículovamosaampliarelusoadecuadodelasunidadesCSSparafuentesendiseñosadaptables.
Peroaveceshayelementosquepornecesidadtienendimensionesfijas,comoimágenesquequizásnodeseamosqueseestirenoseencojandependiendodelapantalla,columnasquedebentenersiempreunasmismasdimensionesfijas,elementosdeinterfazgráficaquenodeseamosquealterensuforma,etc.
Engeneralcomoves,encontrarásmáscasosenlosqueaplicarunidadesrelativas,aunquenosignificaquedebamosconsiderarlocomounareglageneraldeobligadocumplimiento,pueshabrámuchasocasionesdondeseránnecesariaslasunidadesfijas.
EsteartículoesobradeMiguelAngelAlvarez
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 41 de 59
Fuepublicadoporprimeravezen31/08/2015Disponibleonlineenhttp://desarrolloweb.com/articulos/unidades-css-adecuadas-diseno-adaptable.html
UnidadesdemedidaCSSparafuentesResponsiveWebDesign
LasmejoresunidadesdemedidadeCSSparatrabajarcontamañosparatipografíasenResponsiveWebDesign,ventajas,inconvenientesysolucionesalaunidadrem.
LasunidadesdeCSSnotienenmuchomisterio,yaqueestándocumentadasencientosdesitiosweb,sinirmáslejosenDesarrolloWeb.comtenemosvariosartículossobreeltema.Peroenlaprácticasurgendudassobreestosasuntosporque,aveces,laspersonasnotenemosclarocuándoutilizaremorem,porcentaje,etc.cuandosetratadedartamañoalostextos.
Sobreesteasunto,DanielMartínezestuvoexponiendolasrespuestasalosproblemasmástípicosalahoradeasignartamañosalasfuentes,siempreconunidadesdemedidaparalashojasdeestiloqueseadaptenaldispositivo,paraelResponsiveWebDesign.
Nota:esteartículoesunextratoparcialdelprogramacompleto,emitidoendirectoquerealizamosenDesarrolloWeb.com,#designIOsobreUnidadesdemedidaCSS.
LasmejoresunidadesdemedidaparalostextosenCSS
Comodebemosdesaber,cuandotrabajamoscondiseñosadaptables,debemosusarsiempremedidasrelativas,paraqueéstasseadaptenalasdimensionesdelaspantallasdondepuedaverseelsitioweb.Estonosobligaadescartarpx,cm,peronosquedanvariasotrasdondeelegir.
Básicamente,lamejorunidadparatrabajartextosadaptablesenCSSeselrem,"launidadperfecta".Estaunidaddemedidaquieredecir"rootem",yesaquellaquenosremitealtamañodefuentequetenemosenlaraíz.Porejemplo,sinosotrostomamoselBODYytieneunfont sizede100%(loquecorresponderágeneralmenteconunos16píxeles),sabemosquesiempreremseráequivalenteaesos16píxeles,lopongasdondelopongas.
Porquéremesmásútilqueem
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 42 de 59
Hastahacepoco,estoysegurodequemuchosdelosdesarrolladoresveníanutilizandounidadesdemedidaenem,pero¿cuáleraelproblemaconestosem?puesqueelemdependedeltamañodelafuentedelcontenedor,odeltamañodefuentedeclaradoenalgunodeloscontenedorespadredeéste.
Launidademesrelativaalpadre,quesitieneasuvezotraunidadenem,sehacerelativaalpadreyasí,enlajerarquíadeelementoshastallegaralelementoraíz,elBODY.Esto,quepuederesultarfácildeentender,enlaprácticaavecesnospuededaralgúnquebraderodecabezaalcalcularquémedidaesexactamenteunemenuncontenedor,porquedichotamañodependedeunainnumerablecantidaddecontenedoresquepuedenestaranidados,hastallegaralcontenedordondeestamosindicandolasmedidas.Deestemodo,paracambiareltamañodelafuentedeeseelemento,tenemosquetenerencuentamuchasotrasmedidasquepuedahabersedadoacualquieradelospadresenlapágina.
Calculandounvalorenem
Veamosestoennúmerosparadarnoscuentadecómosedebecalculareltamañodeunafuenteusandoem,parahacerlacorresponderaltamañodepíxelesdeseado.
Imaginemoseltamañobasedelafuenteesde16píxeles.EltamañodeunH1imaginemosqueloqueremosde24píxeles,quesería1.5em.¿Porqué?puestenemosqueaplicarlaregla"target/context"eltargeteslamedidaquelequeremosdaralH1,24pxyelcontextoeslamedidadelcontenedordondeestamos16px.DemodoquelamedidaqueletenemosqueponeralH1seríade24/16=1.5em.
PeroahoraimaginemosquedentrodelH1tenemosunlinkyqueremosdarleuntamañodeletramenor,digamos12px.Ahorayanopodemosdividir12/16parasabereltamañodeesamedidaenem,ahoratendríamosquetenerencuentaeltamañodelH1quehabíamosquedadoqueera1.5em.Sinosabemosqueesoequivaleenestecasoa24px,primerodeberíamosdecalculareltamañodelH1parallegaralos24pxquetenía.Targetsería12pxycontext24px,demodoque12/24=0.5emeltamañoenemquedeberíamosponeralenlace.
Perolacosasepuedecomplicartodoloquequeramos.AhorapodemosimaginarquedentrodellinkhayunSPAN,alquequeremosdarleotrotamañodefuentedistinto.SiqueremosacertarconeltamañodeseadotendremosquetenerencuentaeltamañodelBODY,eldefinidoluegoparaelH1,eldefinidoparaelenlaceyfinalmentecalculareltamañodelSPAN.
Pensandoenotrosdispositivos
Pensemosademásendiferentesdispositivos.EltamañodeunafuenteenunmóvilpodríasersisedeseaunpoquitomenorqueeltamañodefuenteenunIpad.
Nota:AquípodríamospensarquealserelmóvildemenortamañoqueelIpad,lafuenteyadeporsivaaversemenor,perodebemostenerencuentaqueunmóvilsiemprelotendremosmáspegadoalacara,conloquerealmenteadmiteuntamañodefuentemenor.
SiqueremosentoncesreducirlafuentepodríamosasignaralBODY,pormediode"mediaqueries"parapantallaspequeñas,untamañode80%eneltamañodelafuente.Comotodaslasfuentesestándefinidasconmedidasrelativas,encontraremosquesereducenentodalapágina,peroenlaprácticaobservaremos
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 43 de 59
quesenosempiezaadescuadrar,quelostamañosnocasan.
Estossonlostípicosproblemasqueevitamosconrem.
CómofuncionanlasunidadesRem
Remnofuncionademanerarelativaasucontenedor,sinodemanerarelativaaltamañodefinidoenlaraíz.Deesaforma,cuandoquierocalcularunamedidadeunelemento,notengoquepensareneltamañodesupadreoeneltamañodelpadredelpadre.
Laregladel"target/context"siguevaliendoperfectamente,peropuedohacerlacuentasiempreconrespectoaltamañodefinidoenlaraíz.
SienelelementoBODYteníamos16pxdetamañoyquiero24pxenelH1,tengoquecalcular24/16=1.5rem.SiluegoenelenlacequehabíadentrodelH1quieroquesea12px,tengoquecalcularcomocontext16px(queeraelequivalenteal100%definidocomotamañodelaraíz)ynoeltamañodelH1.Osea,enestecasosería12/16=0.75rem.
CompatibilidadconlasunidadesdemedidaRemyfallback
Infelizmente,existeunproblemaconlasunidadesdemedidaespecificadasenremynoesotroqueInternetExplorer8yporsupuesto,lasversionesanterioresaéste.LosIEantiguosnosoncompatiblesconlasunidadesrem.
Lasoluciónessencillayserealizaporloquesedenominafallback,quesebasaenespecificarcódigoalternativoencasodequenofuncioneeloriginal.Enestecasoelfallbackestansencillocomoespecificarlasmedidasendosunidades.
fontsize: 16px;
fontsize: 1rem;
Losnavegadoresantiguosquenoentiendenremsequedaránconfont size16px(porqueignoranlasegundalínea,yaquenosoncompatiblesconesaunidad).Losqueentiendenremsimplementeleenlasegundalíneaysobreescribenelvalorespecificadoenlaprimera.
Nota:¿Porquénospodemospermitirescribirenpíxelesesamedidafallback?porquenosresultacómodoutilizarlos,yaquenotenemosquehacerningúncálculo.ComoesamedidasololavanainterpretarenlosIE8oinferior,ysonordenadoresdeescritorio,nonosmolesta.
Ciertamentenosdaunpocomásdetrabajoespecificarporpartidadobletodaslasmedidas,peroaquíencontramosunadelasventajasdeusarlosllamadospreprocesadoresCSS.ÉstostienenlaposibilidaddeescribirunmixinpormediodelcualpodemosindicarennuestrosCSS,siempremedidasenpíxelesyluegoqueelpropiopreprocesadorseaelquelaconviertaarem,mediantelareglatarget/contextyescribalasdosunidadesdemedida,tantoenremparalosnavegadoresmodernosypíxelescomofallbackparalosInternet
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 44 de 59
Explorerantiguos.
Conclusión
Demomento,conestasinformaciónesesperamosquetengassuficienteparaempezaraexperimentarconlosremyasignardemaneramássencillalostamañosdelasfuentesdetussitiosweb.
Sitehainteresadoesteartículodebessaberquesimplementetehemosresumidolosprimeros14minutosdelprograma.EstuvimoshablandosobremuchasotrasmedidasyunidadesenCSS,nosolamenteparalasfuentes,sinoparaotrostiposdeatributos,comoaltura,anchura,etc.Todoesoloencontrarásenel#designIOsobreunidadesdemedidaCSS.
EsteartículoesobradeDanielMartínezFuepublicadoporprimeravezen10/07/2013Disponibleonlineenhttp://desarrolloweb.com/articulos/unidades-medida-css-responsive.html
UnidadesCSSviewportwidthyviewportheight
NuevasunidadesdeCSS3:viewportwidthyviewportheight.Cómopodemoshacerunútilusodeellasalaplicarlasatamañosdelastipografías.
EnesteartículovamosahablarosdedosunidadesnuevasdeCSS,quetienenespecialutilidadeneldiseñoadaptable(conocidocomo"responsive")yquevienenasolucionaralgunasnecesidadesalahoradedefinirtamañosendispositivos,sobretodoútilesparalasfuentes(otipografías).SetratadelasunidadesCSS3"viewportwidth"y"viewportheight",quesonrelativasalaanchurayalturadeldispositivo,respectivamente.
Estasunidadessonunaopcióninteresanteparadefiniralturasyanchurasendispositivos.Lasunidadessonabrevidadasconlassiglas"vw"y"vh".Sumedidaesequivalenteauncentésimodelaanchuraoalturadeldispositivodondeseestávisualizandolaweb.Porejemplo,sideseamosasignarleaunelementounaalturaigualaltamañocompletodeldispositivo,leaplicaremoselvalor100vp.
Porexpresarlomedianteporcentajes,1vw=1%delaanchuradeldispositivo.Porsuparte,1vh=1%delaalturadeldispositivo.
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 45 de 59
Nota:Paraentendermejorestasmedidas,siesquenolosabesya,teinteresasaberloqueesel"Viewport".Enresumen,viewportesigualalasdimensionesdelapantalladetumóvilotableta,mientrasqueenordenadoresdeescritorioseríanlasdimensionesdelaventanadelnavegador.
Lapegadelviewportheight,bastanteimportante,esquesolofuncionaendispositivosmóvilesynoenordenadoresdeescritorio.Peroaunasímerecelapenaconoceryaplicarcuandorealmentelepodamossacarpartido,siempreenteléfonosytabletas,porqueendesktoptieneunoscomportamientosunpocoerráticos.
Usodeviewportheightparadefiniralturasdeunamaneracómoda
LasalturasenCSSsiempresonunquebraderodecabezacuandosequiereusarmedidasrelativas,conunidadescomo"%"deCSS.Seguramentequesitenemosalgodeexperienciasobremaquetaciónwebsesabedeloqueestamoshablando.Paratenerlasalturas"controladas"conunidadesrelativasdeCSStenemosquedarledimensionesdealturaatodosloscontenedores.Osea,definirlasdimensionesdeheightdetodosloselementosdelajerarquíadeldocumentohastallegaralelementoquerealmentequeramosdefinirsualturaconunvalorporcentual.Laopciónparaalturaseselviewportheight
Elcorrespondiente"compañero"deViewportheightparalasanchuras,viewportwidth,noestancrucialparadefinirlasdimensioneswidth,debidoaqueloscomportamientosdeunidadesCSSparalasanchurasnonosdanningúnproblema.Peronoconvieneperderlodevista,especialmentepensandoenlastipografías.
Medidas"viewport"paratipografías
Estasmedidas,tantoviewportheightcomoviewportwidth,tienenuncomportamientoespecialquemerecelapenamencionar.¡Sepuedeusarenlatipografía!Estoquieredecirquepodemosasignarlemedidasenviewportwidthauntextoyéstesiempretemedirálomismoentodaslaspantallas,relativamentealasdimensionesdelapantallaquetengamos.Paraquenosenteremos,sidefinimoseltamañodeunafuenteconviewportwidth,ysienundispositivovemosqueocupaun50%delaanchuradesupantalla,podemostenercertezadeque,entodoslosdispositivosocuparámásomenosesemismoporcentajedeanchuradelapantalla,aunqueestemostrabajandoconunaresolucióndiferente.
Loasombrosodetodoestoesqueeltamañodelaletraes"responsive",oencastellano"adaptable",sinnecesidaddeutilizarningúnscriptparaconseguirloodeotrastécnicascomomediaqueriesquesepodríanaplicarconCSSparaintentarconseguireseefectodefluidez.
OsanimamosaprobarestasmedidasdeCSSparasacarvuestrasconclusiones.Suusonodifieredecualquierotroquepuedasestartrabajandoentushojasdeestilo.
body{
fontsize: 2.5vw
}
h1{
fontsize: 4.8vh
}
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 46 de 59
Esunamaravillaquepodemosusaryalmenosendispositivosnosdarálatranquilidaddequeesasfuentessevanaverigualdegrandes,relativamentealtamañodelapantalladondeseestémostrandolapágina.
Nota:EstainformaciónlahemosextractadodeleventotransmitidoendirectoUnidadesdemedidaCSS#designIO,realizadoenDesarrolloWeb.comconlaparticipacióndeDanielMartínez@WakkosyDanielRuiz@MrViSiOn2,quenosofrecieronmuchainformaciónsobreunidadesdemedidaenhojasdeestiloencascadayconlamenteeneldiseñoadaptable.SiteinteresanlasmedidasCSSmásadecuadasparadiseñosadaptablesterecomendamosleertambiénelartículoUnidadesdemedidaCSSparafuentesResponsiveWebDesign.
EsteartículoesobradeDanielMartínezFuepublicadoporprimeravezen16/09/2013Disponibleonlineenhttp://desarrolloweb.com/articulos/unidades-css-viewportwidth-viewportheight.html
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 47 de 59
PracticandoconCSSparaResponsiveWebDesign
Porfinaterrizamosalcódigo,comenzandoavertécnicas,estilosyrecursosprácticosparapodercomponerdiseñosadaptables.Peroojo,todoloqueyaconocesdelasCSSestádisponibleyesaplicableenprincipioaldiseñoresponsive,porloquenoslimitaremosaverlascosasquerepresentanunanovedadenlosdiseñosadaptables.ParacomplementarestainformacióntesugerimostambiénquebusquesenotrosmanualesdeCSSenDesarrolloWeb.com.
EstilosCSSbásicosparaResponsiveWebDesign
Estilos,atributosyvaloresdeCSSqueresultanesencialesparaelResponsiveWebDesignyqueexistendesdelasversionesantiguasdelestándardelashojasdeestilo.
CuandopensamosenCSSparaResponsiveWebDesignnosvienenalacabezamultituddeherramientasdisponiblesenellenguaje.QuizásaquelloquemásresultarepresentativoseanlasMediaQueriesyesciertoqueéstassonlasquenospermitenhacerlamayorpartedela"magia"paraconseguirsitioswebqueseadaptanatodotipodepantallas.Sinembargo,elmundodelasCSSesenormeydebemosaplicarmuchasotrastécnicasyestilosparaconseguirproducirsitiosresponsivos.Enesteartículovamosarepasarunascuantas.
Nopretendemosofrecertécnicasenordendeimportanciaoenelordenquelasdebesdeconocer,tampocoexplicaracercadeflujosdetrabajo,puesdetodoesoyasehablaendetalleenotraseriedeartículosdelManualdeResponsive.Másbiensetratadeexponerunalistadepropiedadesdeestilo,amododecajóndesastre.
Comocasisiemprequehablamosdediseñoresponsive,losconsejosqueencontrarásenesteartículosepuedenaplicar,ysedebenaplicar,paraunmejordiseñowebengeneral,asíquelasdebestenerpresentesinclusosinoestáshaciendositiosadaptables.
Variacionesdelmodelodecajaentrelosnavegadores
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 48 de 59
Unadelasprimerascosasquedebemosentender,yaprender,cuandonosincursionamosenelmundodelasCSSeselmodelodecaja.Supongoquesiestásleyendoestetextoalgunasnocionesdebesdetener.Loquenosésisabessonlasdiferenciasqueexistenentrelosnavegadores,principalmentelasversionesantiguasdeInternetExplorer.
Elatributobox-sizing,aparecidoenlaespecificaciónCSS3,nospermiteindicarcómodeseamosqueseinterpreteelmodelodecaja,evitandoquecadanavegadorloentiendaasumodo.
Enconcretonossirveparaalterarelmodoenelquelosnavegadorescalculanlasdimensionesdeunacaja(unelementodelapáginaentérminosgenerales),esdecir,sualturayanchura.Elproblemaesqueunosnavegadoresparahaceresecálculotienenencuentaelpaddingyotrosno,asícomolasdimensionesdelborde.Sinodefinimosunbox-sizingdemaneraglobalparatodoelsitioweb,corremosunserioriesgoquelaspáginasdelsitioseveandemaneradiferenteencadanavegador,loquegeneralmentenoesdeseable.
Obviamente,estasdiferenciassonmuyimportantesalahorademaquetar.Básicamenteporquesinolastienesencuentapuedequetengasquerehacermuchotrabajocuandopruebastupáginaenotrosnavegadores.Estoesporquegeneralmentevamosmaquetandoyprobandolapáginaenunnavegadoryluego,cuandoprobamoslapáginaenotronavegadorquenoentiendeelmodelodecajadelamismamanera,vemosquemuchascosasquedanfueradellugardondelescorresponde.
Noesnuestroobjetivoexplicardetenidamentelasdistintasalternativasdebox-sizing,perosíteindicamoscuáleslarecomendación:
box-sizing: border-box
Eseatributolotendrásqueespecificarparatodosloselementosdelapágina,asíquepuedesusarelselector*paraseleccionarlosatodos.
Lasposibilidadesdedisplaytableparamaquetación
Esetitularnosignificaqueestemosapoyandolamaquetacióncontablas,nimuchomenos.Unacosaeseldisplay:tabledeCSSyotrabiendistintalastablasdeHTMLrealizadasconlaetiquetaTABLE.Larecomendaciónsiguesiendolamisma,usarTABLEparamostrarinformacióntabulada,sinembargodisplay:tablenossirveparafacilitarlasposibilidadesdelastablastradicionalesenelusodeHTMLsemánticamentecorrecto.
Comoestoyalohemosexplicadoenotrasocasionesnotienesentidoquelovolvamosarepetiraquí,simplementerecomendarlalecturadelartículosobredisplaytable.
MaquetaciónFlexbox
OtradelascosasnuevasquenostraeCSSyquesirvenparamaquetardemaneramuchomásversátil,rápidayevitandomuchosdelosproblemashabitualesdelposicionamientodeelementos,esusarlastécnicasFlexbox.
Flexboxestáconnosotrosdesdehacetiempo,elproblemaesquenavegadoresmuyantiguosnolosoportantodavía.Enconcretoycomosueleocurrir,InternetExplorereselquedalosproblemas,puestoquesólose
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 49 de 59
encuentradisponibleFlexboxapartirdelaversión10.Aunquedichoseadepaso,IE10todavíateobligaatrabajarconprefijospropietarios"ms-"ytieneunsoporteparcial.ElestándardemaquetaciónFlexboxlodisfrutarásdesdeInternetExplorer11ydemaneraglobalentodoslosotrosnavegadoresdelmercado.Siesenorepresentaunproblemaparati,lomejorparamaquetaresaprovecharFlexboxporqueteofreceunasposibilidadesincreíbleshastaelmomento.
ParasabermásdeFlexboxterecomiendoverteunaclaseendirectoenlaqueexplicamoslasposibilidadesdeesteestándar.
Atributosmin-widthymax-width/min-heightymax-height
EstosatributosestándisponiblesdesdehacemuchotiempoenlasCSSasíquedeberíasconocerlos.Sonespecialmenteútilesenlosdiseñosresponsiveporqueloscontenedoresseestiranyseencogen,paraadaptarsealasdimensionesdelasventanasopantallas.Generalmenteeselcomportamientodeseado,loqueocurreesqueenmuchoscasosnodeseasqueeseencogeroagrandarlleguehastaciertoslímites.
Estásdiseñandounawebymuchasvecesnodeseasquelaanchurallegueallímiteposibledeunmonitordealtaresolución,porejemplo2.500píxeles.Nodigoquenosedebahacer,esunadecisióndediseño.
.dimensiones-maximas{
max-width: 1600px;
}
Avecessetratadeunacolumnaquenodebemedirmásqueunasdimensionesdeanchura,quieresquealhacergrandelaventanaseestire,peroquenollegueapasardeunvalordeterminado.Ounaimagenqueseadaptaalanchodeuncontenedorperonoquieresquellegueasertangrandequesesobrepasesuresolución.
.img-banner-aside{
width: 100%;
max-width: 300px;
}
Conalturaspasaunpocolomismo,aunqueenestecasonoseagrandandebidoacambiosenlasdimensionesdelapantallaoventana,sinodebidoalcontenidoquetienen.Avecestienesunlistadodeartículos,porejemplo.Elpropionavegadorharáquelascajasdondeloscoloquesseandelaalturanecesariaparaquequepaladescripcióndelartículo,perounostienenmástextoqueotrosyportantopuedeocurrirquelasalturasquedendescompensadas.Muchasvecesnosignificaráunproblema,sobretodocuandoestánunodebajodelotro,perosiquedaunoalladodelotroylascajastienenuncolordefondopuedequeelefectoseamásfeo(EseproblemasesolucionaconFlexboxocondisplaytable).Incluso,aunqueesténunodebajodelotro,avecessiunostienentextomuypequeño,lacajaquedacontanpocaalturaqueseveridículaencomparaciónconotrasyporelloquieresquetengaunaalturamínima.
.article-home{
background-color: #ddd;
min-height: 225px;
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 50 de 59
}
Endefinitiva,entodosesoscasosymuchosmásquetepuedasencontrar,convieneteneramanolosatributosmax-widthymin-width,asícomomax-heightymin-height.
Conclusión
EnesteartículohemoscomentadodiversoscriteriosdeCSSyherramientasdellenguajequeseusanmuchoparalosdiseñosresponsive.Porsupuestonosonlosúnicos!solounoscuantosquedebesusarsíosí,ysinllegaralacomplejidadypotenciadelasMediaQueriesquetesolucionanlosproblemasdeunamaneradiferente.
Enelpróximoartículotenemosquehablartedeotroelementofundamentalcuandotrabajascondiseñosresponsive.NoesunCSS,sinounaetiquetaMETAqueesnecesariaparaquetupáginaseadaptecompletamentealapantalladeunmóvil:elViewport.
EsteartículoesobradeMiguelAngelAlvarezFuepublicadoporprimeravezen13/11/2015Disponibleonlineenhttp://desarrolloweb.com/articulos/estilos-css-rwd.html
EtiquetametaViewport
ElViewportesunadelasetiquetasmásrepresentativasdelawebmóvil,quenospermiteconfigurarcómodebeinterpretarunapáginaelnavegadorwebparamóviles.
InicialmentecreadaporAppleparadefinirdiversasdirectricessobrecómoeliPhonedeberenderizarundocumentoweb,elviewportesunaetiquetaMETAquesehaconvertidoenunestándarenelmomentoactual.Lamayoríadedispositivosmóvileslasoportanenlamayorgamadesistemasoperativos,loquelaconvierteenunintegranteimprescindibleparacualquierpáginaqueestépensadaparaversetambiénendispositivosenmovilidad.
Elviewportesunodeesosconceptosquecuestamásdeexplicarquedeentender,oporlomenosamímeloparece.QuizástampocoseaelinterlocutormásadecuadoparahablardeestaetiquetaMETA,peroalguienlatienequetratarconeldetallequesemereceenelManualparaeldiseñowebenmóviles.Asíque¡vamosmanosalaobra!
Básicamente,sirveparadefinirquéáreadepantallaestádisponiblealrenderizarundocumento,cuálesniveldeescaladoquepuederealizarelusuario,asícomosielnavegadordebemostrarlaconalgúnzoominicial.TodoelloseindicaatravésdevariosparámetrosenlapropiaetiquetaMETA,comoveremosenelpresenteartículo.
Entenderelviewport
Comencemosporentenderquéeselviewport.Ycomoveremos,setratadeunconceptobiensencillo,puescorrespondeconeláreaqueestádisponibleenlapantalladelnavegador.
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 51 de 59
Aunqueelviewportesalgopropiodenavegadoresparamóvilesycobrasentidojustamentecuandoestemospensandoenestosdispositivosconpantallasreducidas,podemosentenderloprimeroenelcontextodeunnavegadordeescritorio.
Elviewportenunnavegadorencualquierordenadorconsistemastradicionalesesigualaláreadelaventana,omejordicho,aláreadisponiblepararenderizareldocumentoweb(osea,lerestamostodalainterfazdelnavegador,comobotones,barradedirecciones,barrademenús,barrasdedesplazamiento,etc.)Dichodeotromodo,eseláreaútildondesemostrarálapáginaweb.
¿Sencillo?Esperoquesí.Peroahorapensemosenmóvil.Quizássepasquecuandosevenlaspáginasenunadispositivoamenudosereducenloscontenidos,paraconseguirqueseajustenalreducidoespaciodelaventanadelnavegador.Esdecir,paramostrartodalapáginaenelespaciodisponibledelapantalladeldispositivo,sehaceunescaladodelaweb,demodoquesevetodoenpequeñito.
EstaeslamaneraenlaqueseveríaelsitioactualdeDesarrolloWeb.comqueestáoptimizadoparaordenadoresdeescritorioynotienedefinidaningunaetiquetaviewport.
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 52 de 59
Bien,pueselviewportcuandoestamoshablandodedispositivosmóviles,nocorrespondealtamañorealdelapantallaenpíxeles,sinoalespacioquelapantallaestáemulandoquetiene.Porejemplo,enuniPhone,aunquelapantallaenverticaltieneunasdimensionesde320píxeles,enrealidadeldispositivoestáemulandotener980píxeles.Estohacequeciertaspáginasweb(optimizadasparanavegadoresdeescritorio)quepanenunapantallade320píxeles,porqueenrealidadelSafariparaiOSestáemulandotenerunespaciode980píxeles.
Puesbien,elviewportenestoscasoseselespacioqueeldispositivoemulatener,nolaresoluciónrealenpíxelesquetienelapantalla.Lointeresanteenestecasoesquelosdesarrolladoressomoscapacesdealterarelviewportquevieneconfiguradoenelnavegador,algoqueresultatotalmentenecesariosiqueremosquenuestrapáginaseveacorrectamenteendispositivosdemovilidad.
EstaimagentienelamismafotoquesemuestraenlapantalladeuniPhone.Supongamosquelafotomide320píxelesdeancho.Enlapartedeladerechatendríamoslafotoatamañoreal,queescomoseveríasituviéramosunviewportconfiguradoa320píxelesdeancho.PeroalverlaenuniPhoneconunviewportconfiguradoa980píxelesdeancho,laimagenseverábastantemáspequeña.
ConfigurarlaetiquetaViewport
CuandoSafarideiOSrenderizaundocumentoweb,haceunescaladodeloscontenidosparaquelaspáginasdiseñadasparasistemasdeescritorioseveanmásomenosbienenunteléfonomóvil.Comopudisteapreciarenlaprimeraimagendeesteartículo,alverseelsitiowebdeDesarrolloWeb.com,loscontenidosaparecíanmuypequeñitosyellonosobligaahacerzoomparapoderleerlos.Sinembargo,nosotrospodemosconfigurarelviewportparadecirleaSafari,ocualquierotronavegadorparamóviles,quédebehacerenestesentido.
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 53 de 59
Nota:Insistimosenque,cuandohablamosdeSafari,enrealidadnosreferimosacualquiernavegadorparamóviles,yaseanendispositivosiOS,Android,Blackberry,etc.,yaquelaetiquetaviewportessoportadaactualmenteporlamayorgamadesistemasparamóviles.Enrealidad,decimosSafarisolamenteporquefueelprimeroenutilizarla.
Esaltamenterecomendablequesealterelaetiquetaviewportparaconseguirquetunavegadorsecomportecomotúdeseas,especialmenteenelcasodelaspáginasqueestamosdiseñandoparaversecorrectamenteenpantallaspequeñas.ParaellodisponemosdelossiguientesparámetrosenlaetiquetaMETA.
Width:anchuravirtual(emulada)delapantallaoanchuradelviewport.Height:alturavirtualdelapantallaoanchuradelviewport.Initial-scale:laescalainicialdeldocumento.Minimum-scale:laescalamínimaquesepuedeponereneldocumento.Maximum-scale:laescalamáximaconfigurableeneldocumento.User-scalable:sisepermiteonoalusuariohacerzoom.
Comopuedesver,enlaMETAviewportnoseindicasimplementelasdimensionesdelapantallaemulada,sinotambiénelniveldezoomquesepuedeestarconfigurandoinicialmenteyelniveldezoomquesepermitiríatener.
Nota:recordarqueelusuariopuedehacerzoomenlapáginaweb,conelgestotípicoenlapantallatáctil.Alhacerzoom,realmentenoestaríacambiandoelviewport,sinolaescalaconlaquesevisualizaeldocumento.
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 54 de 59
Enestaterceraimagentenemosunviewportde320píxeles,sinembargohemosdefinidoun"initial-scale"de1.5,poresolaimagenquemedíarealmente320píxelesdeanchonocabeenlapantalladeliPhone.
Unejemplodeetiquetaviewportseríaelsiguiente:
<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1">
Laanchuraylaalturadelviewportdebenquedarmásomenosclaros,puesserefierensimplementealasdimensionesfijasdelviewportinicial.Sinembargo,esasdosmedidasnosesuelenindicar,siendomáshabitualdefinirúnicamentelaanchuraconelvalor"device-width",queesunamedidaquehacereferenciaalaanchuradelapantalladeldispositivo.
Asíqueconwidth=device-widthconseguimosqueelviewportseaigualalaanchurarealdelapantalladeldispositivo,demodoquenosetratarádeemularunapantallamayordeloquerealmenteesyveremoslospíxelesreales.
Coninitial-scale=1conseguimosquenosehagazoomsobreeldocumento.Esbiensimple,elcontenidodelawebnosetransformará,niseagrandará,niseharámenor.
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 55 de 59
Conuser-scalable=noconseguimosqueelusuarionopuedahacerzoomenlapágina,conloquesiempresemantendránlasmedidasquenosotroshemosdefinidoalconstruirlaweb.
Nota:desactivarelzoomconuser-scalable=nonosfacilitatenersiemprelaescalaacomonosotroshayamosdefinidoenlaetiquetaMETAviewport,loquepuedesimplificarnoslavidaalahoradedefinircómosedebeverunaweb.Sinembargo,estaremoslimitandolaposibilidaddequeelusuariohagazoompuntualmenteparaagrandaroempequeñeceralgunacosa.Portodoello,cabesopesarbienquéesloquequeremospermitirysirealmentedefiniendounmaximum-scaleyminimum-scale,estamosacotandobienelusodenuestraweb.
Conclusión
Elviewportrequiereunestudiopormenorizadoyalgodeprácticaparaentenderbiensusposibilidadesylamaneradeconfigurarlo,demodoqueseoptimicelaformaconelquenuestrawebsedebedeverenlosdispositivosmóviles.Comosehapodidocomprobar,haymuchasydiversasposibilidadesparaexplorar.
Esperamosqueenesteartículotehayamossacadodedudas,sinembargoposiblementepodríamosestarhablandodelviewportduranteunlargoratopararesolvertodaslasnecesidadesdelosdesarrolladoresylasdudasdeaquellaspersonasqueestándiseñandowebsoptimizadasparamóvilesoadaptablesatodoslosdispositivos(responsivedesign).
Paramayoresreferencias,sepuedeconsultarlapáginaweb"ConfiguringViewport"deladocumentacióndeAppleiOSparadesarrolladores.
EsteartículoesobradeMiguelAngelAlvarezFuepublicadoporprimeravezen19/07/2012Disponibleonlineenhttp://desarrolloweb.com/articulos/etiqueta-meta-viewport.html
ImágenesresponsiveconlaetiquetaPicture
CómousarlaetiquetaPictureparacrearimágenesresponsive,unnuevoelementodeHTML5quepermitequelasimágenesysuresoluciónseadaptenatodotipodepantallas.
Unodelosprincipalescomponentesconlosquetenemosquelidiarentodawebsonlasimágenesysutratamientoparaproducirsitiosadaptablesesclave.ParaadaptarunaimagenmuchasvecesessuficienteconasignarleconCSSunaanchurarelativa,demodoquesisucontenedoraumentadetamaño,laimagentambiénaumentará.
Laproblemáticasobretodolaencontramosconimágenespesadas,comofotografías,dondelaeleccióndesutamañoycalidaddependerádelapantalladondesevisualicen.Sipensamosqueesaimagendebemostrarseenpantallasgrandes,tendremosquegenerarunarchivodegrantamaño.Peroesearchivodeproporcionesgrandesrepresentaundesperdiciodetransferenciasipensamosqueesaimagensevaaverenunmóvilconunapantallarealmentepequeña.
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 56 de 59
Loidealespoderdistribuirimágenesacordeconeltamañodelapantallaynosolamentesuspulgadas,sinoavecestambiénladensidaddepíxelesimporta.EnelpasadoaparecieronalgunospluginJavascriptespecialesparahacerimágenesresponsive,tambiénCSShacksoinclusoserviciosweb,quenospermitíandiscriminarporeltamañodelapantalla,ovelocidad,entregandoalnavegadorelarchivoconelficherodeimagenmásadecuadodependiendodelosdiferentesescenarios.SolucionespropietariasqueacabarándesersustituidasporlanuevaetiquetaPICTURE.
Elobjetivo,enresumidascuentaseselsiguiente:
Poderindicarunaimagenyvariosarchivosdealternativaparadistintosescenarios:pantallaspequeñas,medianasograndes,velocidadesdeconexión,etc.Queelnavegadorsólodescargueunadelasimágenesposiblesynotodas.Osea,siunaimagentienetresalternativasdetamaños,seleentreguealnavegadorsolamenteunadeellas,ahorrandoladescargadelosotrostamañosalternativosquenonecesita.
ElementoPICTURE
ElelementoPICTUREensínorepresentacontenidoalguno,sirvesólocomouncontenedorparaescribirvariasimágenesyqueseaelpropionavegadorelqueelijalamásapropiadaencadacaso.
ParaindicarlasimágenesdentrodePICTUREseindicaránvariasetiquetasSOURCE.SeparecealgoalaetiquetaVIDEOoAUDIO,enelquesepuedenindicarvariosarchivosdiferentes,demodoqueelnavegadorlocaliceaquelqueconsigareproducirconsuconjuntodecodecs.Peroenestecasoenvezdevídeosseindicaránarchivosgráficos.
Además,amododefallback,dentrodelaetiquetaPICTUREseencontraráunaimagencorriente,conlaetiquetaIMG,queserárepresentadaportodonavegadorquetodavíanoimplementeeltagHTML5PICTURE.
ParaquecadanavegadorsepacuáleselarchivomásinteresantesegúnsuscondicionesalasetiquetasSOURCEselesdebeescribirunatributo"media",indicandounamediaqueryCSSquedeberíacumplirseparausaresearchivofuente.
Esmuysencillo.Loveremosmejoralavistadelsiguienteejemplo:
<picture>
<source media="(min-width: 900px)" srcset="grande.png">
<source media="(min-width: 550px)" srcset="media.png">
<img src="archivo-pequeno.jpg">
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 57 de 59
</picture>
Estecódigofuncionaráentodoslosnavegadores.LosqueesténfamiliarizadosconeltagPICTUREmostraránlaimagenadecuadaencadacaso.LosquenoesténfamiliarizadossimplementemostraránlaimagenquesehayaindicadoenIMG.
SOURCEelement
AhoraveamoselelementoSOURCE,usadoparaindicarcadaunadelasvariasimágenes.
Básicamentenospermiteindicarvariosarchivosgráficos.Elnavegadoriráleyéndolosunoauno,desdeelprimerohastaelúltimo,enordendecolocación,hastaqueencuentreunoqueseaposibleusar.Usaráelprimeroqueseaposible,descartandolosdemásquepuedahaberpordebajo.
Incluyelossiguientesatributos.
srcset:Contieneelarchivodeimagenquedebevisualizarse.Esuncamporequerido.
<source media="(max-width: 300px)" srcset="archivo-hasta-300px.jpg">
Peroademás,podríamosindicarvariasalternativasdeimágenes,separadasporcomas,paraindicarversionesdelamismaparadistintasdensidadesdepíxeles.Estoesmuyinteresanteparalosmóvilesmodernos,quetienenpantallasconviewportpequeñosperoquerealmentetienenmuchosmáspíxelesdelosqueaparentan.Tambiénparalosmonitores"retina"uotrasmarcasquetienendensidadesdepíxelesdistintas.Paramarcarladensidaddepíxelesindicamosalgocomo"2x"o"3x"dependiendosiduplicanotriplicanladensidadestándar.(Sinoseindicanadaseentiendequeesearchivoesparaladensidadnormaldepíxeles.
<source media="(min-width: 900px)" srcset="foto.jpg, foto-hd.jpg x2"
Enelcasoanteriorsedistribuirálaimagenfoto.jpgenpantallascondensidaddepíxelescomúnyfoto-hd.jpgparalasdensidadesdepíxelesmayores.
Media:Esteatributosoportacualquiermediaqueryquepodríasusarenunselectordeltipo@media.Sepuedeindicarsoloencasoquesenecesiteysinoseindicanada,afectaráatodoslostiposdepantallas.
Nota:ComosonmediaqueriesCSSpodríamosindicarmásconceptos,comoqueelmododedisposicióndelapantalla,portraitolandscape.Asímismo,podríamosusarcualquiertipodemedidaenlasreglasdeMediaquerires,ademásdelospíxeles(px).EnunartículoanteriorpodríamosaccederaexplicacionesdetalladasdeMediaqueries.
DadalaformaconlaqueseseleccionaelarchivoentrelosdistintosSOURCEsedebetenerencuentaquepodríahabervariasimágenesqueelnavegadorpodríarepresentar,perosoloseindicarálaprimeraqueseadaptealasreglasenlamediaquery.
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 58 de 59
Sabiendoesto,podríaserinteresantequitarelmediaquerydealgúnSOURCE,paraqueseuseesedemanerapredeterminada.EnesecasolológicoseríacolocarelSOURCEsinmediaqueryalfinaldeltodo.
<picture>
<source media="(min-width: 900px)" srcset="grande.png">
<source media="(min-width: 550px)" srcset="media.png">
<source srcset="peque.png">
<img src="predeterminado.png">
</picture>
Enelcódigoanteriorseusaríagrande.pngparapantallasde900píxelesenadelante.Seusaríamedia.pngenpantallasde550píxelesyhasta899píxelesdeanchura.Seusaríapeque.pngentodaslasdemáspantallas.Porúltimoseusaríapredeterminado.pngencualquiernavegadorquenoseacapazdeinterpretarelelementoPICTURE.
Sizes:Esteatributonosayudaráarealizarunaseleccióndelaimagenapropiadadeunamaneradistinta.Esunpocomássofisticadoyporellopuedeparecerunpocomáscomplejo,peroenlaprácticaestamosdelegandomásalnavegadorlaeleccióndelaimagenqueiráautilizar,porloquenodebecausarproblemas.
Hastaelmomentoalnavegadorleestamosindicandolasimágenesquedebeusarparacadarangodepíxeles.Ademássobrequéimágenesdebenaplicarseparadistintasdensidadesdepíxeles.Ahoraconelatriburo"sizes"podemosindicarlaanchuradelaimagenydejaralnavegadorqueescojalaimagenenfuncióndevariosarchivosproporcionados.Elnavegadorseráelresponsablede,atendiendoaltamañodelaventanayladensidaddepíxeles,escogerlamejoralternativa.
Esteatributosecombinaconelatributodeantes,"srcset"paraindicarlasdistintasalternativasdearchivosgráficos.
<picture>
<source media="(min-width: 600px)" sizes="65vw" srcset="peque.png 256w, media.png 456w, grande.png 856w, gigante.png 1280w">
<img src="media.png" sizes="65vw" srcset="peque.png 256w, media.png 456w, grande.png 856w, gigante.png 1280w">
</picture>
Nota:Comovesenelanteriorcódigo,losdosatributos"sizes"y"srcset"puedenaplicarsetambiénaunaimagen(etiquetaIMG)sinnecesidaddeincluiréstaenunelementoPICTURE.Sondosatributosnuevosdelasimágenesquepodemosusarparagenerarimágenesresponsive,oparasermásdetallistasalahoradeaplicarlosdiferentesarchivosgráficos.
Paraelcódigoanterior.Anchurasdepantallasuperioresa600pxaplicaloindicadoenlaetiquetaSOURCEyparapantallasmenoresseaplicaloindicadoenlaetiquetaIMG.Esunpocoredundante,perotambiénpodríaocurrirqueunnavegadornoconozcaPICTUREperosílosatributos"sizes"y"srcset".
Nota:Alprobarestecódigoparaimágenesresponsivelonormalesquehagamosgrandeypequeñala
Manual de Responsive Web Design
http://desarrolloweb.com/manuales/responsive-web-design.html Página 59 de 59
ventanadelnavegador.Enlamayoríadecasosapreciaremosquelaimagenvacambiando,haciéndosegrandeamedidaqueaumentamoslaventana.Noobstante,debidoalsistemadecaché,ylainteligenciadelnavegador,puedequeenocasionesparezcaquenotemuestralaimagenquedebería.Estoesporque,sielnavegadorhadescargadoyalaimagendealtaresolución,aunquereduzcaslaventana,teseguirámostrandoesaimagengrandequesesuponequeeslademáscalidad(anoserqueindiquesotracosaconlasmediaquerydelatributo"media").
type:Esteatributopermiteindicareltipodeunaimagen,demodoqueelnavegadorpuedaseleccionarlosiesqueconoceeseformatodearchivo.
Compatibilidadconelelementopicture
Estenuevoelementoestádisponibleyaenlamayoríadelosnavegadores.SolofaltacompatibilidadconInternetExplorer,SafariparaiOSyOperaMini.Sinembargo,debidoalfallbackqueseindicaconlaetiquetaIMG,nohaymotivoparadejardeusarlo.
Esperfectamenteusableyamismoporquelosnavegadoresquelointerpretengozarándelaposibilidaddetenerimágenesadaptadasaresoluciones.Losqueaunnoloimplementensimplementeloignorarán,dejandotodalaresponsabilidadsobrelaimagenindicadaenlaetiquetaIMGdetodalavida.
Noobstante,siqueremosdarsoporteparaquealgúnnavegadorantiguotambiénpuedaimplementarimágenesresponsiveconelelementopicture,podemoscargarelcorrespondientepolyfill.Esteproyectollamado"Picturefill"contieneunscriptparaquemedianteJavascriptsepuedadarsoporteaPICTURE,asícomolosatribtos"srcset"y"sizes".
EsteartículoesobradeMiguelAngelAlvarezFuepublicadoporprimeravezen12/04/2016Disponibleonlineenhttp://desarrolloweb.com/articulos/imagenes-responsive-etiqueta-picture.html