tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con...

58

Upload: others

Post on 06-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones
Page 2: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

1.1

1.2

1.2.1

1.2.2

1.2.3

1.3

1.4

1.4.1

1.4.2

1.4.3

1.4.4

1.5

1.6

1.7

1.7.1

1.7.2

1.7.3

1.7.4

1.7.5

1.7.6

1.7.7

1.8

1.9

1.10

TabladecontenidoContenidos

Introducción

Frameworksresponsive

Funcionamientodeldiseñoadaptable

Probandoelresponsive

Páginabásica

SistemadeRejilla

Forzarelcambiodefila

Anidamientodecolumnas

Márgenesoespaciadoentrecolumnas

Ordenacióndecolumnas

Utilidadesresponsive

MediaQueries

ComponentesResponsive

Botones

Desplegables

Gruposdebotones

Formularios

Navegación

Barradenavegación

Tablas

Ejercicios1

Ejercicios2

Bibliografía

2

Page 3: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

ContenidosEldiseñodewebstipo"responsive"permitecrearwebsadaptablesadiferentestamañosdepantalla,desdewebsparapantallastamañoescritorio,pasandoportablets,hastawebsparamóviles.EstetipodediseñosebasaencrearunúnicocódigoyutilizarreglasyestilosCSSparaadaptarloscontenidosalosdiferentestamañosdepantalla.

Loscontenidosprincipalesdellibroson:

IntroducciónFrameworksresponsiveFuncionamientodeldiseñoadaptableProbandoelresponsive

PáginabásicaSistemaderejilla

ForzarelcambiodefilaAnidamientodecolumnasMárgenesoespaciadoentrecolumnasOrdenacióndecolumnas

UtilidadesresponsiveMediaQueriesComponentesResponsive

BotonesDesplegablesGruposdebotonesFormulariosNavegaciónBarradenavegaciónTablas

EjerciciosBibliografía

Contenidos

3

Page 4: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

Introducciónaldiseño"responsive"Eldiseñowebresponsive,adaptableoadaptativo,conocidoporlassiglasRWD(delinglés,ResponsiveWebDesign)esunafilosofíadediseñoydesarrollocuyoobjetivoesadaptarlaaparienciadelaspáginaswebaldispositivoqueseestéutilizandoparavisualizarla.Hoydíalaspáginaswebsevisualizanenmultituddetiposdedispositivoscomotabletas,smartphones,libroselectrónicos,portátiles,PCs,etc.Estatecnologíapretendequeconunsolodiseñowebtengamosunavisualizaciónadecuadaencualquierdispositivo.

Eldiseñoresponsivesebasaenproporcionaratodoslosusuariosdeunaweblosmismoscontenidosyunaexperienciadeusuariolomássimilarposible,frenteaotrasaproximacionesaldesarrollowebmóvilcomolacreacióndeapps,elcambiodedominioowebsservidasdinámicamenteenfuncióndeldispositivo.

Aunquetodastienenprosycontras,lawebresponsiveesconsideradapormuchosexpertoscomolamejorprácticaposible,alunificarlaweb,reducirtiemposdedesarrolloyofrecergrandesventajasparaSEOmóvil.

VariabilidadenlasresolucionesdepantallaDurantemuchosañoseldesarrollowebsehabasadoenlaresoluciónestándarde1024×768(haceapenas3añosaproximadamenteel40%delosusuariosteníaestaresolución).Peroenlaactualidadexisteunaampliavariedadderesoluciones,nosoloenpantallasdeordenadoresdeescritoriosinotambiénparatabletsydispositivosmóviles.

Introducción

4

Page 5: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

Esmuyimportanteconocertodasestasestadísticasasícomocualessonlasdimensionesdepantalladelosusuarios,aquépúblicovamosdirigidos,etc.yasípodertenerloencuentaenlausabilidaddenuestraweb.Yanoesposiblecentrareldesarrollopensandoquelosusuariosvanatener(enunaltoporcentaje)unaúnicaresolucióndepantalla.

Desdehaceyaunosañoseneldesarrollowebsehasustituidoenciertamedidaelproblemadelacompatibilidaddenavegadores(graciasaquepocoapocotodaslascompañíasseestánciñendoalosestándaresconHTML5/CSS3yotrassebasandirectamenteenweb-kit)porelproblemadelasresolucionesdelosdispositivos.

Enlasiguientetablasepuedenverlasúltimasestadísticas(2014)delasresolucionesdepantallamásutilizadas:

Resolución %utilización

>1920x1080 34%

1920x1080 13%

1366x768 31%

1280x1024 8%

1280x800 7%

1024x768 6%

800×600 0.5%

<800×600 0.5%

Enlaactualidadyanoes1024x768laresoluciónmásutilizada,sinoquees1366×768yresolucionessuperioresa1920x1080.

Esfundamentaltenerencuentaqueeneldiseñoresponsive,alvariartantolasposiblesresolucionesenlasqueseveránuestrawebdeberemosmostrarenprimerlugarloscontenidosmásimportanteseimprescindibles.

EjemplosdesitioswebcreadoscontecnologíaResponsiveEnunartículollamado:"ResponsiveWebDesign:50ExamplesandBestPractices"muestraexcelentesejemplosdelaaplicacióndeestatecnología.Algunosdeestosejemplosson:

dConstruct2011

Introducción

5

Page 6: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

BostonGlobe

FoodSense

Introducción

6

Page 7: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

Derenkeskin

Introducción

7

Page 8: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

FrameworksresponsiveComosesueledecir,envezdereinventarlaruedayprogramarnosotrostodoeldiseñoresponsive,podemosaprovecharalgunosdelosframeworksqueexistenenelmercadoparaestepropósito.Nosahorraránmuchísimotiempo,partiremosdecódigoampliamenteprobado,ydeunosdiseñosbasedetodosloselementoswebbastantemásbonitosquelaquetendríandeformanativa.

Actualmenteexistenenelmercadounaampliavariedaddeestetipoframeworksresponsive,algunosdelosmásutilizadosson:

Bootstrap(http://getbootstrap.com/):Esteframeworkesunodelosmáspopularesdelmercado,habiendosidodesarrolladoporelequipodeTwitter.BootstraphasidocreadopensandoenofrecerlamejorexperienciadeusuariotantoausuariosdePC(IE7incluido!),comoasmartphonesytabletas.Utilizaungridresponsivede12columnasytraeintegradodecenasdecomplementos,pluginsdeJavaScript,tipografía,controladoresdeformulariosymuchomás.AdemásutilizaelpreprocesadordeCSSLESS.

Foundation(http://foundation.zurb.com/):JuntoconBootstrapesunodelosframeworksmásavanzadosqueexistenenlaactualidad.HasidodesarrolladoconSASS,unpotentepreprocesadordeCSSquehacedeFoundationunframeworkfácilmentepersonalizable.AdemássacapartidodelasnuevastecnologíasyfuncionaconIE8+.

Skeleton(http://getskeleton.com/):Skeletonesunboilerplatequeofreceungridresponsivebasadoenunaresoluciónde960pxqueseajustaaltamañodelosdispositivosmóviles.TienepocopesoeincluyeunacoleccióndearchivosCSSyJSparafacilitarnoseldiseñodenuestraweb.

HTML5Boilerplate(http://html5boilerplate.com/):Aligualquelosdemásnosofreceunsetdeutilidadesparaconstruirnuestrawebresponsivedeformarápidaysencilla,conlaventajadeserunodelosquemenosocupan.

EnestecursonosvamosacentrarenBootstrapporserunodelosframeworksmáscompletos,másutilizadosyquemejorfuncionan.Enlassiguientesseccionesestudiaremosendetalleelfuncionamientodeestalibrería.

Bootstrap

Frameworksresponsive

8

Page 9: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

Comoyahemoscomentadoantes,Bootstrapesunodelosframeworksmáspopularesyutilizadosdelmercadoparalacreacióndepáginasresponsive,habiendosidodesarrolladoporelequipodeTwitter.

EntrelosnavegadoressoportadosseencuentranChrome,Firefox,Opera,SafarieInternetExplorerapartirdelaversión8(aunqueenlaversión7tambiénfuncionacorrectamente).

EstápreparadoparafuncionartantoennavegadoresdePCsyportátilesconcualquiertamañodepantallaasícomoparatabletsysmartphonesdetamañosmuchomásreducidos.

Paraconseguirqueunamismawebsepuedavisualizarcorrectamenteentodosesostamañosdepantallahadiseñadounavanzadosistemaderejilladivididoencolumnasparaelposicionamientodeloselementosdenuestraweb.Ademásincorporaotrasmuchasutilidadesycomplementos(formularios,botones,barrasdenavegación,etc.)parasimplificareldesarrollodeunawebresponsive.

Frameworksresponsive

9

Page 10: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

FuncionamientodeldiseñoadaptableEldiseñoresponsivesebasaenadaptardinámicamenteeldiseñowebenfuncióndelaresolucióndelapantalladelvisitante.Deestaformaadaptamosnuestraswebsadispositivosmóvilessinnecesidaddetenerdossitiosseparadosyalmismotiempotambiénpodemosadaptarlawebaresolucionesgrandesparamejorarlaexperienciadeusuario.

Antiguamentesepensabaenhacer2diseños,unoparamóvilesyotroparaweb,sinembargo,eldiseñoresponsivetratadeestructuraroadaptarelcontenidoqueyatieneseneldiseñooriginalaotrosformatosdiferentes:móviles,tabletsyversióndeescritorio,comobienmuestraestaimagen:

LasolucióntécnicaqueselehadadoeneldesarrollowebalproblemadeestadiversidadderesolucioneswebsellamaResponsiveWebDesignynospermitehacerinterfacesadaptadasalentornodelusuariomedianteestructuras,bloques,columnaseimágenesfluidasgraciasamedia-queriesdeCSS.

ApartirdeCSS2.1lashojasdeestilohanincluidolosmediatypes,locualnoshafacilitado,porejemplo,proveerunestilodistintoparaeldiseñodeimpresión:

<linkrel="stylesheet"type="text/css"href="core.css"media="screen"/>

<linkrel="stylesheet"type="text/css"href="print.css"media="print"/>

Funcionamientodeldiseñoadaptable

10

Page 11: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

ApartirdeCSS3elW3Ccreólasmediaqueries.Unamediaquerynospermiteapuntarnosóloaciertasclasesdedispositivos,sinorealmenteinspeccionarlascaracterísticasfísicasdeldispositivoqueestárenderizandonuestrotrabajo.Parautilizarlaspodemosincorporarunaqueryalatributomediadeunlinkaunahojadeestilos:

<linkrel="stylesheet"type="text/css"href="shetland.css"

media="screenand(max-device-width:480px)"/>

Laquerycontienedoscomponentes:

Unmediatype(screen,printoall).Laconsultaentreparéntesis,conteniendounacaracterísticaainspeccionar(max-device-widthomin-device-width)seguidaporelvaloralqueapuntamos(480px).

TambiénesposibleutilizarlasdirectamenteenelCSScomopartedeunaregla@media:

@mediascreenand(max-device-width:480px){

.column{

float:none;

}

}

Porejemplo,siquisiéramoscrearunestilodebloquesfluidosqueparapantallasgrandessemuestreunoacontinuacióndelotroyparapantallaspantallascambieamostrarsedeformaapilada,unoencimadeotro,podríamoshaceralgocomo:

@mediaalland(max-width:800px){

.bloque{

display:block!important;

/*Cuandoelanchoseainferiora800pxelelementoseráunbloque*/

width:auto!important;

}

}

.bloque{

display:inline-block;/*Paraquesemuestrenlosbloquesenlínea*/

height:300px;

width:300px;

border:1pxsolid#333;

background:#999;

margin:20px;

}

Paramásinformaciónpodéisconsultar:http://www.w3.org/TR/css3-mediaqueries/

Funcionamientodeldiseñoadaptable

11

Page 12: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

Funcionamientodeldiseñoadaptable

12

Page 13: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

ProbandoelresponsiveParaprobarnuestrosdiseñosresponsivetenemosvariasopciones,unadeellasesusaralgunasdelaswebsqueexistenparatalfin.Comoporejemplo:

Responsinator(http://www.responsinator.com)

Estaherramientaestádisponiblesolamentedeformaonline,peronospermiteverdeunsolovistazocomosemostraríanuestrawebconeltamañodelossmarthonesytabletsmáspopulares,comoporejemplolasdiferentesversionesdeiPhone,iPad,KindleyalgunasversionesdeteléfonosAndroid.

Elproblemadeestasherramientasesquetenemosqueaccederaunaversiónpublicadadenuestraweb(nopermitenlocalhost)ysonunpocomáslentaspararealizarpruebascontinuas,porestarazónesmuchomásrecomendableutilizaralgunodeloskitsdeherramientasparaeldesarrolladorwebqueexistenparalosdiferentesnavegadores.

Herramientasdelnavegadorparaeldesarrollador

Probandoelresponsive

13

Page 14: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

TantoenFirefoxcomoChromevieneinstaladopordefectounaseriedeherramientasdeayudaparaeldesarrolladorquenospermiten,entreotrascosas,verlaconsolademensajes,inspeccionarelcódigooverlasecuenciadellamadasalservidor.

Ademásdeestastambiénexistenotrasherramientasmásavanzadasquepodemosinstalarcomounaextensióndenuestronavegador,comoporejemploFirebug.

Laventajadeestasherramientasfrentealasanterioresesquesonmuchosmásrápidas,nospermitenprobarnuestrapáginaenlocalyademáspodemosinspeccionarelcódigoymodificarlosestilosentiemporeal.Usandoelinspectordeestasherramientasnospodemosahorrarmuchotiempoalahoraderealizarpruebassobrelapropiapáginacargada,yaquedeotraformatendríamosquemodificarelcódigodirectamente,recargarlapáginayvolveraprobarlo.

Probandoelresponsive

14

Page 15: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

PáginabásicaBootstraputilizaciertoselementosHTMLypropiedadesCSSquerequierenelusodeldoctypedeHTML5paraquefuncionen,porloqueesimportanteañadirloatodasnuestraspáginas:

<!DOCTYPEhtml>

<htmllang="en">

...

</html>

Ademásparaasegurarquesemuestracorrectamenteendispositivosmóvilesyquepermitelautilizacióndelzoomalarrastrartenemosqueañadirlasiguienteetiquetametadentrodelacabecera<head>:

<metaname="viewport"content="width=device-width,initial-scale=1">

AcontinuaciónseincluyeunaplantillaHTMLbaseparacualquierproyectoconBootstrap,apartirdelacualsetendránqueirañadiendoelrestodeelementos:

Páginabásica

15

Page 16: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

<!DOCTYPEhtml>

<htmllang="en">

<head>

<metacharset="utf-8">

<metahttp-equiv="X-UA-Compatible"content="IE=edge">

<metaname="viewport"content="width=device-width,initial-scale=1">

<title>PlantillabásicadeBootstrap</title>

<!--Bootstrap-->

<linkhref="css/bootstrap.min.css"rel="stylesheet">

<!--libreríasopcionalesqueactivanelsoportedeHTML5paraIE8-->

<!--[ifltIE9]>

<scriptsrc="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>

<scriptsrc="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>

<![endif]-->

</head>

<body>

<h1>¡HolaMundo!</h1>

<!--LibreríajQueryrequeridaporlospluginsdeJavaScript-->

<scriptsrc="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></

script>

<!--TodoslospluginsJavaScriptdeBootstrap(tambiénpuedes

incluirarchivosJavaScriptindividualesdelosúnicos

pluginsqueutilices)-->

<scriptsrc="js/bootstrap.min.js"></script>

</body>

</html>

Esposibledeshabilitarelzoomparadispositivosmóvilesañadiendouser-scalable=noalaetiquetametadelviewport(comosepuedeverenelejemploinferior).Deestaformalosusuariosúnicamentepodránusarelscrolldelaaplicación,haciendotuwebmássimilaraunaaplicaciónnativa.Sinembargo,hayqueusarestacaracterísticaconcuidadoyaquenoesrecomendableparatodoslossitios.

<metaname="viewport"content="width=device-width,initial-scale=1,maximum-scale=1,u

ser-scalable=no">

Páginabásica

16

Page 17: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

SistemaderejillaElsistemaderejilladeBootstrapsebasaenlacreaciónodisposicióndelcontenidodenuestrawebdentroderejillasflexibles,lascualesseescalaránaltamañoyposiciónadecuadadeformaautomáticadependiendodeltamañodelapantallaenlaqueserendericen.

ElementocontenedorElsistemaderejillatienequeserutilizadodentrodeunodelosdoselementoscontenedoresqueproveeBootstrap:containerócontainer-fluid.Esimportantetenerencuentaqueestoselementosseutilizancomoraízdelarejillaynosepodránanidarunosdentrodeotros.

Siloquequeremosesqueelcontenidodenuestrawebaparezcacentradoyconunanchofijoentoncespodemosutilizarlaetiqueta.container,delaforma:

<divclass="container">

...

</div>

Porelcontrario,siqueremosqueelcontenidodenuestrawebpuedaocupartodoelanchodisponible(hayquetenerenmentetodoslostamañosdepantalla,inclusolasmuygrandes),podemosusarlaetiqueta.container-fluid:

<divclass="container-fluid">

...

</div>

FuncionamientodelsistemaderejillaElsistemaderejillaestápensadoparaayudarnosenladisposicióndeloscontenidosdenuestrawebysuadaptaciónalosdiferentestamañosdepantalladeformaautomática.Paraellotenemosqueponerelcontenidodentrodeceldasocolumnasqueirándentrodefilas.Cadafilasepuededividirhastaen12columnas,peroseremosnosotroslosquedefiniremoselnúmerodecolumnasdeseadoparacadatamañodepantalla.

Acontinuaciónsedetallaelfuncionamientodeestesistema:

SistemadeRejilla

17

Page 18: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

Lascolumnasiránagrupadasdentrodefilas(.row).

Lasfilas(.row)sedebencolocardentrodeunaetiquetacontenedora:.container(paraanchofijo)o.container-fluid(parapoderocupartodoelancho),estopermitiráalinearlasceldasyasignarleselespaciadocorrecto.

Elcontenidosedebedisponerdentrodecolumnasoceldas,lascualesdebendeserelúnicohijoposibledelasfilas(.row),lascuales,asuvez,seránelúnicohijoposibledelcontenedor(.containero.container-fluid).

Alseguiresteordenelsistemaderejillafuncionarácorrectamente,creandoelespaciadointeriorylosmárgenesapropiadosdependiendodelasdimensionesdelapantalla.

Cadafilasepuededividirhastaunmáximode12columnas,perosomosnosotroslosquetendremosquedefinirelnúmerodecolumnasenelquequeremosdividircadafilaysuanchoparacadatamañodepantalla.Porejemplo:3columnasdeigualancho.

Sieltamañototaldelascolumnasdeunafilaexcedede12eltamañosobrantesecolocaráenlasiguientefila.

EltamañodelascolumnasseespecificaráconclasescssqueBootstrapdefineparacadatamañodepantalla,porejemplo.col-md-XX,dondeXXeseltamañodelacolumna,quepodrátomarvaloresentre1y12.

EnlasiguientetablasemuestraunresumendelsistemaderejilladeBootstrap,sucomportamientosegúneltamañodeldispositivoylasclasesCSSquenospermitencontrolarlo:

Pantalla Prefijodelaclase Anchodelcontenedor

TamañoextrapequeñoTeléfonos(<768px) .col-xs- Ninguno(automático)

TamañopequeñoTablets(≥768px) .col-sm- 750px

TamañomedioEscritorios(≥992px) .col-md- 970px

TamañograndeEscritorios(≥1200px) .col-lg- 1170px

Esimportantedestacaraldefinirestasclasesnosoloseaplicanparaesetamañodepantallasinoparalossuperiorestambién.Porejemploalindicareltamañodelascolumnasconlasclasesparatablets(.col-sm-),tambiénseaplicaráparalostamañosdepantallamedianosygrandes(sinohubieranotrasclasesparaestostamañosquelossobreescribieran).

SistemadeRejilla

18

Page 19: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

EjemplosAcontinuaciónseincluyenalgunosejemplosdeusodelsistemaderejillaquenosayudaránacomprendermejorsufuncionamiento.

Seleccióndetamañodelascolumnassoloparapantallasdeescritorio

Enelsiguienteejemplosehancreado3filas,laprimeradividida2columnasdetamañodesigual,lasegundaen3columnasdeigualtamañoylaterceraen2columnastambiéndeigualtamaño.

<divclass="row">

<divclass="col-md-8">.col-md-8</div>

<divclass="col-md-4">.col-md-4</div>

</div>

<divclass="row">

<divclass="col-md-4">.col-md-4</div>

<divclass="col-md-4">.col-md-4</div>

<divclass="col-md-4">.col-md-4</div>

</div>

<divclass="row">

<divclass="col-md-6">.col-md-6</div>

<divclass="col-md-6">.col-md-6</div>

</div>

Enlasiguienteimagensepuedeverelresultadoparaunapantallamediana(deescritorio):

Dadoquelascolumnassehanespecificadoúnicamentemediantelasclases.col-md-*estocrearáestasdivisionessoloparalaspantallasdeescritoriomedianasygrandes,peronoparalostamañosdepantallapequeños(tabletsymóviles).Enestosdosúltimoscasoslascolumnasseampliaránparaocupartodoelanchoyporlotantosemostraránapiladasdelaforma:

SistemadeRejilla

19

Page 20: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

Seleccióndeltamañoparamóvilyescritorio

Sinoqueremosquelascolumnassemuestrenapiladasparatamañosdepantallapequeñospodemosindicartambiénladisposiciónparaesoscasosmediantelasclases.col-xs-*ademásdelasqueyateníamos.col-md-*.Porejemplo:

<!--Enpantallaspequeñasapareceráunacolumnaqueocuparátodoelancho

yotraqueocuparálamitaddelapantalla-->

<divclass="row">

<divclass="col-xs-12col-md-8">.col-xs-12.col-md-8</div>

<divclass="col-xs-6col-md-4">.col-xs-6.col-md-4</div>

</div>

<!--Enpantallaspantallasseindicaqueocupecadacolumnalamitad

delanchodisponible-->

<divclass="row">

<divclass="col-xs-6col-md-4">.col-xs-6.col-md-4</div>

<divclass="col-xs-6col-md-4">.col-xs-6.col-md-4</div>

<divclass="col-xs-6col-md-4">.col-xs-6.col-md-4</div>

</div>

<!--Comonoseindicaeltamañoparapantallasgrandeslascolumnas

siempreocuparánel50%-->

<divclass="row">

<divclass="col-xs-6">.col-xs-6</div>

<divclass="col-xs-6">.col-xs-6</div>

</div>

Enlasiguienteimagensepuedevercomoquedaríaelcódigodeejemploparapantallasmedianas(md)ygrandes(lg):

SistemadeRejilla

20

Page 21: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

Enelcasodepantallaspequeñaslascolumnasseveríandelaforma:

Seleccióndeltamañoparamóvil,tabletyescritorio

Siqueremostenerunmayorcontrolpodemosespecificartambiéneltamañodelascolumnasparalaspantallastipotabletconlasclases.col-sm-*.Porejemplo:

<divclass="row">

<divclass="col-xs-12col-sm-6col-md-8">.col-xs-12.col-sm-6.col-md-8</div>

<divclass="col-xs-6col-md-4">.col-xs-6.col-md-4</div>

</div>

<divclass="row">

<divclass="col-xs-6col-sm-4">.col-xs-6.col-sm-4</div>

<divclass="col-xs-6col-sm-4">.col-xs-6.col-sm-4</div>

<divclass="col-xs-6col-sm-4">.col-xs-6.col-sm-4</div>

</div>

Acontinuaciónseincluyeunaprevisualizacióndeestecódigodeejemploparapantallasmedianasygrandes:

Elmismocódigoperoenpantallastipotabletsemostraríacomo:

SistemadeRejilla

21

Page 22: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

Yenelcasodepantallaspequeñas(xs)severíadelaforma:

SistemadeRejilla

22

Page 23: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

ForzarelcambiodefilaMediantelaclase.clearfixpodemosforzarelcambiodefilacuandonosotrosqueremos.Estaclasenospuedeserútilcuandoporejemplolasfilastenganunaltodistintooparaforzarelcambiodefilasoloparadeterminadostamañosdepantallamediantelacombinaciónconotrasclases(porejemplosiañadimosvisible-xs-blocksoloseproduciráesecambiodefilaparapantallaspequeñas).

<divclass="row">

<divclass="col-xs-6col-sm-3">.col-xs-6.col-sm-3</div>

<divclass="col-xs-6col-sm-3">.col-xs-6.col-sm-3</div>

<!--Addtheextraclearfixforonlytherequiredviewport-->

<divclass="clearfixvisible-xs-block"></div>

<divclass="col-xs-6col-sm-3">.col-xs-6.col-sm-3</div>

<divclass="col-xs-6col-sm-3">.col-xs-6.col-sm-3</div>

</div>

Enlasiguienteimagenpodemosverunejemploenelquenosehautilizadolaclase.clearfixydebidoaquelasdosprimerascolumnastienenunaltodistintolaprimeracolumnadelasiguientefilasecolocaenunaposiciónincorrecta:

Siañadimoslaclase.clearfixcomoenelcódigodeejemplopodemossolucionareseproblema,quedando:

Forzarelcambiodefila

23

Page 24: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

AnidamientodecolumnasUnacaracterísticamuypotentedelsistemadecolumnasesquesepuedenanidarunasdentrodeotras,porejemplo,dentrodeunacolumnadetamaño9podemoscrearunanuevafilaysubdividirlacomoqueramos(igualquesifueraunafilanormal,conhasta12columnas).Acontinuaciónseincluyeunejemplo:

<divclass="row">

<divclass="col-sm-9">

Level1:.col-sm-9

<divclass="row">

<divclass="col-xs-8col-sm-6">

Level2:.col-xs-8.col-sm-6

</div>

<divclass="col-xs-4col-sm-6">

Level2:.col-xs-4.col-sm-6

</div>

</div>

</div>

</div>

Anidamientodecolumnas

24

Page 25: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

MárgenesoespaciadoentrecolumnasEsposiblecrearunespaciadoentrelascolumnasodichodeotraforma,moverodesplazarunacolumnahacialaderecha,añadiendounoffsetinicialmediantelasclases:.col-*-offset-*.Porejemplocol-md-offset-4crearáunespacioalaizquierdadelacolumnadetamaño4(comosisecrearaunacolumnaocultadetipo.col-md-4).Enelsiguientecódigopodemosverunejemplomáscompleto:

<divclass="row">

<divclass="col-md-4">.col-md-4</div>

<divclass="col-md-4col-md-offset-4">.col-md-4.col-md-offset-4</div>

</div>

<divclass="row">

<divclass="col-md-3col-md-offset-3">.col-md-3.col-md-offset-3</div>

<divclass="col-md-3col-md-offset-3">.col-md-3.col-md-offset-3</div>

</div>

<divclass="row">

<divclass="col-md-6col-md-offset-3">.col-md-6.col-md-offset-3</div>

</div>

Elcualserenderizaríadelaforma:

Sienalgúncasonecesitamoseliminareloffsetpodemosutilizareltamañocero(0).Porejemplo,siespecificamosunoffsetde2paratamañospequeñosynoqueremosquedichooffsetseapliqueparapantallasgrandesomediastendríamosquehacer:

<divclass="col-sm-5col-sm-offset-2col-md-7col-md-offset-0"></div>

Márgenesoespaciadoentrecolumnas

25

Page 26: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

OrdenacióndecolumnasTambiénpodemosmodificarelordendelascolumnasmediantelasclases.col-*-push-*y.col-*-pull-*.Porejemplo,con.col-md-push-3"empujaríamos"lacolumna3espacioshacialaderechaycon.col-md-pull-3laempujaríamos3espacioshacialaizquierda.Acontinuaciónpodemosverunejemplo:

<divclass="row">

<divclass="col-md-9col-md-push-3">.col-md-9.col-md-push-3</div>

<divclass="col-md-3col-md-pull-9">.col-md-3.col-md-pull-9</div>

</div>

Elcualquedaríadelaforma:

Hayquetenercuidadoconestasclasessihayuncambiodefila(debidoaelnúmerodecolumnasocupemásde12),enestoscasosestasclasesnofuncionaráncorrectamente.

Siqueremosrestaurarlaposiciónpodemosutilizareltamañocero(0).Porejemplo,sihabíamosdesplazadolacolumnahacialaderechaparatamañosdepantallapequeñosyqueremosquenoseapliqueentamañosdepantallamedianosygrandespodríamosutilizarlaclasecol-md-push-0.

Ordenacióndecolumnas

26

Page 27: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

UtilidadesResponsiveBootstraptambiénincluyeunaseriedeclasesparaayudarnosamostraruocultarcontenidossegúneltamañodeldispositivo.Acontinuaciónseincluyeunatablaresumendetodasestasclases:

ExtrapequeñoTeléfonos(<768px)

TamañopequeñoTablets(≥768px)

TamañomedioEscritorios(≥992px)

TamañograndeEscritorios(≥1200px)

.visible-xs-* Visible Oculto Oculto Oculto

.visible-sm-* Oculto Visible Oculto Oculto

.visible-md-* Oculto Oculto Visible Oculto

.visible-lg-* Oculto Oculto Oculto Visible

.hidden-xs Oculto Visible Visible Visible

.hidden-sm Visible Oculto Visible Visible

.hidden-md Visible Visible Oculto Visible

.hidden-lg Visible Visible Visible Oculto

Enelcasodelaclase.visible-*-*tenemoslaposibilidaddeindicarlaformaenlaquesemostraráelelementosobreelqueseaplique(losposiblesvaloressecorrespondenconlosquepuedeadoptarlapropiedaddisplaydeCSS).Porloquetendríamos:

Groupofclasses CSSdisplay

.visible-*-block display:block;

.visible-*-inline display:inline;

.visible-*-inline-block display:inline-block;

Porloqueparaporejemplolaspantallasextrapequeñas(xs)podríamosutilizarlasclases:.visible-xs-block,.visible-xs-inline,y.visible-xs-inline-block.Siendo.visible-xs-blocklamáscomúnyutilizada,paraporejemplomostrarunacolumnasoloanteun

Utilidadesresponsive

27

Page 28: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

determinadotamañodepantalla.

NotasdeUsoHayquetenerencuentaquelasclasesvisible-*-*solosemostraránparaeltipodedispositivoindicado,esdecir,siporejemploindicamosqueuncamposoloesvisibleconlaetiquetavisible-md-blockdichocamponoaparecerápararesolucionesinferioresnitampocoparapantallastipolarge.

Porelcontrario,lasetiquetastipo.hidden-soloseocultaránelelementoparaeltamañoindicado,quedandovisibleparaelrestodetamaños.

Estasetiquetassondemuchautilidadparamejorarunawebresponsivepuesnosvanapermitircrearunmejordiseñoomaquetación.Normalmentenosinteresaráocultardeterminadoscontenidoscuandolapantallaseamuypequeñaomostrarcontenidosadicionalesparapantallasgrandes.

Porejemplo,imaginaosqueennuestrawebtenemosunaseriedeartículosyqueencadaunodeellosincluimosuntítulo,unsubtítulo,unaimagenyuntexto.Siporejemploquisieramosocultarelsubtítuloylaimagenparapantallasextrapequeñas(xs)símplementetendríamosqueañadirlaclase".hidden-xs"aestasetiquetas.Acontinuaciónseincluyeelcódigodeejemplo:

<divclass="article">

<h1>

Títulodelartículo

<smallclass="hidden-xs">Subtítulodelartículo</small>

</h1>

<imgsrc="/article-image.jpg"alt="articleimage"class="hidden-xs"/>

<p>

Loremipsumdolorsitamet,consecteturadipiscingelit,seddoeiusmodtempor

incididuntutlaboreetdoloremagnaaliqua.Utenimadminimveniam,quis

nostrudexercitationullamcolaborisnisiutaliquipexeacommodoconsequat.

</p>

</div>

Utilidadesresponsive

28

Page 29: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

MediaqueriesEnlamayoríadeloscasosgraciasatodaslasclasesqueproveeBootstrapnosserásuficienteparacomponernuestraweb.Sinembargo,enalgunassituacionesesposiblequequeramosmodificardichocomportamiento,porejemploparaaplicardeterminadosestilosCSS(comocolores,alineaciones,etc.)quecambiensegúneltamañodepantalla.Enestoscasosseránecesarioquecreemosnuestrapropiamediaqueryparaaplicarlosestilosdeseados.

Unamediaquerysedefinedelaforma:

@media(min-width:TAMAÑO-EN-PÍXELES){

/*Losestilosaquícontenidossoloseaplicaránapartir

deltamañodepantallaindicado*/

}

Enestecaso,losestilosqueesténdentrodeestamediaqueryseaplicaránsoloapartirdeltamañoenpíxelesindicado.Ademásdeuntamañomínimopodemosindicareltamañomáximooelrangodetamañoenelqueseaplicarán,delaforma:

@media(max-width:TAMAÑO-EN-PÍXELES){

/*Estosestilossoloseaplicaránhastaeltamañoindicado*/

}

@media(min-width:TAMAÑO-EN-PÍXELES)and(max-width:TAMAÑO-EN-PÍXELES){

/*Soloseaplicaránentrelostamañosindicados*/

}

RecordamosquelosrangosquedefineBootstrapson:

Pantallasextrapequeñas(móviles)<768pxPantallaspequeñas(tablets)≥768pxPantallasmedianas(escritorio)≥992pxPantallasgrandes(escritorio)≥1200px

EjemplosdeusoSiporejemploqueremosqueenlaspantallasextrapequeñas(xs)elcolordefondoqueaplicalaclase.miestilosearojoyparaelrestodetamañosseaverde,podríamoshacer:

MediaQueries

29

Page 30: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

.miestilo{

background-color:green;

}

@media(max-width:768px){

.miestilo{

background-color:red;

}

}

Osiporejemploqueremosvariarlaalineacióndeltextoqueseaplicaenunaclaseapartirdelaspantallastipoescritorio:

.miestilo{

text-align:center;

}

@media(min-width:992px){

.miestilo{

text-align:left;

}

}

EstossencillosejemplosnosmuestranlaideabásicaquetenemosqueseguirparacomplementarelcódigodeBootstrapparahacerquelawebsecomportecomonosotrosqueramos.Deestaformapodemosllegarahacercosasmuyavanzadasypersonalizarcompletamenteelaspectodeunawebsegúneltamañodeldispositivo.

Otrosejemplosdepersonalizacionesquepodemoshacerusandolasmediaqueriesson:

Cambiareltamañoylaposicióndeunaimagen.Porejemplohacerquelaimagendecabeceraseamuypequeñaparadispositivosmóvilesymuchomayorparapantallasdeescritorio.Cambiarlaposicióndecualquierelemento.Siporejemplotenemosunelementoquenosevebienconunaalineaciónenpantallaspequeñaspodemoscolocarloenotrolugar.Cambiareltamañodeletra,lafuenteosucolor.Podemosreducireltamañodeletradelascabecerasparapantallasxsoaumentarloparapantallasmásgrandes.Aplicarcombinacionesdeestilosavanzados.Porejemplo,podemoscrearunestilo".articulo"quesegúneltamañodepantallareajustetodalaaparienciadeunartículocontodosloselementosquecontenga.Cualquiercosaqueseosocurra!

MediaQueries

30

Page 31: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

ComponentesresponsiveAdemásdelsistemaderejillaBootstrapincluyeuncompletoconjuntodecomponentesparafacilitarnosaúnmáseldiseñodeunawebresponsive.EstoscomponentesaplicanestilosaloselementosHTMLexistentesparacrearundiseñomásmodernoyademásadaptableatodoslosdispositivos.

Algunosdeestoscomponentesson:

BarrasdenavegaciónBotonesFormulariosTablasDesplegablesymuchosmás...

Acontinuaciónseexplicaelfuncionamientodeloscomponentesmásutilizados.

ComponentesResponsive

31

Page 32: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

BotonesMediantelaclase.btnpodemosaplicarestiloaloselementostipobutton.Estaclaselapodemoscombinarcon.btn-default,.btn-primary,.btn-success,.btn-info,.btn-warning,.btn-danger,.btn-linkparacrearbotonesparadiferentesestadosoaccionesennuestrosformularios:

ElcódigoHTMLquetendríamosqueescribirparaconseguirestosbotoneseselsiguiente:

<buttontype="button"class="btnbtn-default">Default</button>

<buttontype="button"class="btnbtn-primary">Primary</button>

<buttontype="button"class="btnbtn-success">Success</button>

<buttontype="button"class="btnbtn-info">Info</button>

<buttontype="button"class="btnbtn-warning">Warning</button>

<buttontype="button"class="btnbtn-danger">Danger</button>

<buttontype="button"class="btnbtn-link">Link</button>

TamañodelosbotonesPodemosvariareltamañodelosbotonessimplementeañadiendolasclases.btn-lg,.btn-sm,o.btn-xs:

<p>

<buttontype="button"class="btnbtn-primarybtn-lg">Largebutton</button>

<buttontype="button"class="btnbtn-defaultbtn-lg">Largebutton</button>

</p>

<p>

<buttontype="button"class="btnbtn-primary">Defaultbutton</button>

<buttontype="button"class="btnbtn-default">Defaultbutton</button>

</p>

<p>

<buttontype="button"class="btnbtn-primarybtn-sm">Smallbutton</button>

<buttontype="button"class="btnbtn-defaultbtn-sm">Smallbutton</button>

</p>

<p>

<buttontype="button"class="btnbtn-primarybtn-xs">Extrasmallbutton</button>

<buttontype="button"class="btnbtn-defaultbtn-xs">Extrasmallbutton</button>

</p>

Losbotonesdelcódigoanteriorsemostraríandelaforma:

Botones

32

Page 33: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

ElementostipobotónElestilotipobotónnosololopodemosaplicarsobrelasetiquetasbuttonsinoquefuncionarádelamismaformacon<a>y<input>:

<aclass="btnbtn-default"href="#"role="button">Link</a>

<buttonclass="btnbtn-default"type="submit">Button</button>

<inputclass="btnbtn-default"type="button"value="Input">

<inputclass="btnbtn-default"type="submit"value="Submit">

Todosestoselementosserenderizarándelamismaforma:

Botones

33

Page 34: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

DesplegablesBootstrapnosfacilitalacreacióndebotonesconlistasdeopcionesdesplegablesmediantelaclase.dropdown.EsteelementorequierequeelpluginJavaScriptdeBootstrapestéincluidoenlaplantilla.Laestructurabásicaparacrearunelementodeestetipoeslasiguiente:

<divclass="dropdown">

<buttonclass="btnbtn-defaultdropdown-toggle"type="button"id="dropdownMenu1"

data-toggle="dropdown"aria-expanded="true">

Dropdown

<spanclass="caret"></span>

</button>

<ulclass="dropdown-menu"role="menu"aria-labelledby="dropdownMenu1">

<lirole="presentation"><arole="menuitem"tabindex="-1"href="#">Action</a></li>

<lirole="presentation"><arole="menuitem"tabindex="-1"href="#">Anotheraction</a

></li>

<lirole="presentation"><arole="menuitem"tabindex="-1"href="#">Somethingelseh

ere</a></li>

<lirole="presentation"><arole="menuitem"tabindex="-1"href="#">Separatedlink</a

></li>

</ul>

</div>

Paraalinearunmenúaladerechasepuedeutilizarlaclase.dropdown-menu-right,porejemplo:

<ulclass="dropdown-menudropdown-menu-right"role="menu"aria-labelledby="dLabel">

...

</ul>

Encabezadosenundesplegable

Desplegables

34

Page 35: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

Paraañadirunencabezadoydividirenseccionesundesplegablepodemosutilizarlaclase.dropdown-headerdelaforma:

<ulclass="dropdown-menu"role="menu"aria-labelledby="dropdownMenu2">

...

<lirole="presentation"class="dropdown-header">Dropdownheader</li>

...

</ul>

SeparadoresenundesplegableTambiénpodemosañadirseparadoresenundesplegablesimplementeutilizandolaclase.dividerdelaforma:

<ulclass="dropdown-menu"role="menu"aria-labelledby="dropdownMenuDivider">

...

<lirole="presentation"class="divider"></li>

...

</ul>

Desplegables

35

Page 36: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

GruposdebotonesPodemoscrearungrupodebotonesenunalíneaagrupándolosdentrodeunelementocontenedorconlaetiqueta.btn-group.

<divclass="btn-group"role="group"aria-label="...">

<buttontype="button"class="btnbtn-default">Left</button>

<buttontype="button"class="btnbtn-default">Middle</button>

<buttontype="button"class="btnbtn-default">Right</button>

</div>

MediantelalibreríaJavaScriptdeBootstrappodemosañadircomportamientostipocheckboxoradiobuttonaungrupodebotones.

BarradebotonesLabarradebotonesnospermitecombinargruposdebotonesparacrearcomponentesmásavanzados:

<divclass="btn-toolbar"role="toolbar"aria-label="...">

<divclass="btn-group"role="group"aria-label="...">...</div>

<divclass="btn-group"role="group"aria-label="...">...</div>

<divclass="btn-group"role="group"aria-label="...">...</div>

</div>

TamañosdelosgruposdebotonesLosgruposdebotonesnospermitenademásindicareltamañodelosbotonesparatodoelconjuntomediantelasetiquetas.btn-group-*:

<divclass="btn-groupbtn-group-lg"role="group"aria-label="...">...</div>

<divclass="btn-group"role="group"aria-label="...">...</div>

<divclass="btn-groupbtn-group-sm"role="group"aria-label="...">...</div>

<divclass="btn-groupbtn-group-xs"role="group"aria-label="...">...</div>

Gruposdebotones

36

Page 37: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

GrupodebotonescondesplegablesTambiénesposibleañadirdesplegablesalosgruposdebotones.Paraestoeldesplegabletendráqueestarcontenidoasuvezdentrodeotrogrupodebotones,delaforma:

<divclass="btn-group"role="group"aria-label="...">

<buttontype="button"class="btnbtn-default">1</button>

<buttontype="button"class="btnbtn-default">2</button>

<divclass="btn-group"role="group">

<buttontype="button"class="btnbtn-defaultdropdown-toggle"data-toggle="dropdow

n"aria-expanded="false">

Dropdown

<spanclass="caret"></span>

</button>

<ulclass="dropdown-menu"role="menu">

<li><ahref="#">Dropdownlink</a></li>

<li><ahref="#">Dropdownlink</a></li>

</ul>

</div>

</div>

Comosepuedeobservarlaúnicadiferenciaconundesplegablenormalesquelaetiquetacontenedoraenvezdeserdetipo.dropdownesun.btn-group.

Gruposdebotones

37

Page 38: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

FormulariosBootstrapaplicaestilosaloselementosdetipoformularioparamejorarsuaparienciaypermitirnoscreardiferentesalineaciones.Laestructurabásicadeunformularioeslasiguiente:

<formrole="form">

<divclass="form-group">

<labelfor="exampleInputEmail1">Emailaddress</label>

<inputtype="email"class="form-control"id="exampleInputEmail1"

placeholder="Enteremail">

</div>

</form>

ParapermitirqueBootstrapajustecorrectamenteelespaciado,cadabloqueogrupodeunformulario(normalmenteformadoporunaetiquetalabelyalgúnelementodeentradadedatoscomouninput,textarea,etc.)tendráqueestaragrupadoporunacajacontenedoraconlaclase.form-group.Ademásacadainputseletienequeaplicarlaclase.form-control.

BootstrapsobrecargayaplicaestilosalosprincipaleselementosdeformulariodefinidosenHTML5,comoson:text,password,datetime,datetime-local,date,month,time,week,number,email,url,search,tel,ycolor.

FormularioinlineMediantelautilizacióndelaclase.form-inlinesobrelaetiqueta<form>podemoscrearformulariosquesedispondránenunasolalínea.Acontinuaciónseincluyeunejemplodeestetipodeformularios:

Formularios

38

Page 39: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

<formclass="form-inline"role="form">

<divclass="form-group">

<divclass="input-group">

<labelclass="sr-only"for="exampleInputEmail2">Emailaddress</label>

<divclass="input-group-addon">@</div>

<inputtype="email"class="form-control"id="exampleInputEmail2"placeholder="En

teremail">

</div>

</div>

<divclass="form-group">

<labelclass="sr-only"for="exampleInputPassword2">Password</label>

<inputtype="password"class="form-control"id="exampleInputPassword2"placeholder=

"Password">

</div>

<divclass="checkbox">

<label>

<inputtype="checkbox">Rememberme

</label>

</div>

<buttontype="submit"class="btnbtn-default">Signin</button>

</form>

Nota1:aunqueloscamposdelformularionocontenganetiquetas(labels)esnecesarioincluirlasporcuestionesdeaccesibilidad,paradarsoportealoslectoresdepantalla.Porestemotivosehanincluidoenelejemploanteriorconlaclase.sr-only(screenreadersonly).

Nota2:Esteestilonoseaplicaráenpantallaspequeñastipomóvil.

FormulariohorizontalMediantelacombinacióndelaclase.form-horizontalconelsistemaderejilladeBootstrappodemoscrearformularioshorizontalescomoenelejemplosiguiente:

Formularios

39

Page 40: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

<formclass="form-horizontal"role="form">

<divclass="form-group">

<labelfor="inputEmail3"class="col-sm-2control-label">Email</label>

<divclass="col-sm-10">

<inputtype="email"class="form-control"id="inputEmail3"placeholder="Email">

</div>

</div>

<divclass="form-group">

<labelfor="inputPassword3"class="col-sm-2control-label">Password</label>

<divclass="col-sm-10">

<inputtype="password"class="form-control"id="inputPassword3"placeholder="Pas

sword">

</div>

</div>

<divclass="form-group">

<divclass="col-sm-offset-2col-sm-10">

<divclass="checkbox">

<label>

<inputtype="checkbox">Rememberme

</label>

</div>

</div>

</div>

<divclass="form-group">

<divclass="col-sm-offset-2col-sm-10">

<buttontype="submit"class="btnbtn-default">Signin</button>

</div>

</div>

</form>

Esimportantequenosfijemosquenoseutilizanlasclases.rowparacrearfilas,yaquesonsustituidaspor.form-groups.Además,podemosaplicarlaclasedelascolumnasparalasetiquetaslabeldirectamentesobredichoelemento,sinnecesidaddecrearunacajacontenedora.

Estadosdevalidacióndeunformulario

Formularios

40

Page 41: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

Bootstraptambiénincluyeclasesparaaplicardiferentesestadosdevalidaciónaunformulario.Parautilizarlosimplementetenemosqueañadirlasclases:.has-warning,.has-error,o.has-successalelementocontenedor,enestecasoa.form-group.Deestaforma,elcolordeloselementosdelformulariodedichogrupocambiarán.Acontinuaciónpodemosverunejemplo:

<divclass="form-grouphas-success">

<labelclass="control-label"for="inputSuccess1">Inputwithsuccess</label>

<inputtype="text"class="form-control"id="inputSuccess1">

</div>

<divclass="form-grouphas-warning">

<labelclass="control-label"for="inputWarning1">Inputwithwarning</label>

<inputtype="text"class="form-control"id="inputWarning1">

</div>

<divclass="form-grouphas-error">

<labelclass="control-label"for="inputError1">Inputwitherror</label>

<inputtype="text"class="form-control"id="inputError1">

</div>

AgruparinputsconotroselementosPodemosañadirtextoobotonesalprincipio,finaloaambosladosdecampotipo<input>.Paraestotenemosqueagrupardichoinputdentrodeun.input-groupyañadirdentrodelgrupoelelementoquequeremosagruparconlaetiqueta.input-group-addon.Acontinuaciónseincluyeunejemplo:

Formularios

41

Page 42: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

<divclass="input-group">

<spanclass="input-group-addon">@</span>

<inputtype="text"class="form-control"placeholder="Username">

</div>

<divclass="input-group">

<inputtype="text"class="form-control">

<spanclass="input-group-addon">.00</span>

</div>

<divclass="input-group">

<spanclass="input-group-addon">$</span>

<inputtype="text"class="form-control">

<spanclass="input-group-addon">.00</span>

</div>

Formularios

42

Page 43: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

NavegaciónLoselementosdenavegacióndeBootstrapcompartenlaetiqueta.navparasumarcadoenlaclasecontenedora.EstoselementosnecesitanlalibreríaJavaScriptparasucorrectofuncionamiento.Algunosdeloselementosdenavegaciónquepodemosutilizarsonlasfichasopestañasylas"píldoras".

FichasopestañasMediantelaclase.nav-tabspodemoscrearungrupodepestañasofichas,paraellotenemosqueseguirlasiguienteestructura:

<divrole="tabpanel">

<ulclass="navnav-tabs">

<lirole="presentation"class="active">

<ahref="#home"aria-controls="home"role="tab"data-toggle="tab">Home</a>

</li>

<lirole="presentation">

<ahref="#profile"aria-controls="profile"role="tab"data-toggle="tab">Pr

ofile</a>

</li>

<lirole="presentation">

<ahref="#messages"aria-controls="messages"role="tab"data-toggle="tab">

Messages</a>

</li>

</ul>

<!--Tabpanes-->

<divclass="tab-content">

<divrole="tabpanel"class="tab-paneactive"id="home">...</div>

<divrole="tabpanel"class="tab-pane"id="profile">...</div>

<divrole="tabpanel"class="tab-pane"id="messages">...</div>

</div>

</div>

Píldoras

Navegación

43

Page 44: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

Laclase.nav-pillssedefinedeigualformaquela.nav-tabperosuselementosadoptaránunaaparienciamássimilarabotoneso"píldoras":

<ulclass="navnav-pills">

<lirole="presentation"class="active"><ahref="#">Home</a></li>

<lirole="presentation"><ahref="#">Profile</a></li>

<lirole="presentation"><ahref="#">Messages</a></li>

</ul>

Enestecasotambiénpodemoscrearunmenúverticaloapiladoañadiendolaclase.nav-stackedalaetiquetacontenedora:

<ulclass="navnav-pillsnav-stacked">

...

</ul>

Justificado

Tambiénpodemosindicarqueelanchodelaspestañasodelaspíldorassedistribuyaequitativamentesegúnelanchodisponible.Paraestosimplementetenemosqueaplicarlaclase.nav-justifiedalaetiquetacontenedora,delaforma:

<ulclass="navnav-tabsnav-justified">

...

</ul>

<ulclass="navnav-pillsnav-justified">

...

</ul>

Navegación

44

Page 45: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

Nota:Esteestilonofuncionaráparapantallasconunanchomenora768px,quesonlaspantallasdefinidascomoextrapequeñasodesmartphone.

Elementosdenavegacióncondesplegables

Podemosañadirdesplegablesanuestroselementosdenavegacióndelaforma:

<ulclass="navnav-tabs">

...

<lirole="presentation"class="dropdown">

<aclass="dropdown-toggle"data-toggle="dropdown"href="#"role="button"aria-expa

nded="false">

Dropdown<spanclass="caret"></span>

</a>

<ulclass="dropdown-menu"role="menu">

...

</ul>

</li>

...

</ul>

Navegación

45

Page 46: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

BarradenavegaciónBootstrapnosfacilitalacreacióndelabarraprincipaldenavegacióndenuestrawebmediantelaclase.navbar.Estabarraseadaptaráaltamañodepantalla,mostrandoloselementoscolapsadosenunbotónenpantallaspequeñasydeformanormalparapantallasmásgrandes.

EsteelementorequierequeelplugindeJavaScriptdeBootstrapestéincluido.Además,paracumplirconlasreglasdeaccesibilidadserecomiendaañadirrole="navigation"anuestrasbarrasdenavegación.

Acontinuaciónseincluyeunejemplocompletodeunabarradenavegación:

<navclass="navbarnavbar-default"role="navigation">

<divclass="container-fluid">

<!--Brandandtogglegetgroupedforbettermobiledisplay-->

<divclass="navbar-header">

<buttontype="button"class="navbar-togglecollapsed"

data-toggle="collapse"data-target="#bs-example-navbar-collapse-1">

<spanclass="sr-only">Togglenavigation</span>

<spanclass="icon-bar"></span>

<spanclass="icon-bar"></span>

<spanclass="icon-bar"></span>

</button>

<aclass="navbar-brand"href="#">Brand</a>

</div>

<!--Collectthenavlinks,forms,andothercontentfortoggling-->

<divclass="collapsenavbar-collapse"id="bs-example-navbar-collapse-1">

<ulclass="navnavbar-nav">

<liclass="active"><ahref="#">Link<spanclass="sr-only">(current)</span></a>

</li>

<li><ahref="#">Link</a></li>

<liclass="dropdown">

<ahref="#"class="dropdown-toggle"data-toggle="dropdown"role="button"

aria-expanded="false">Dropdown<spanclass="caret"></span>

</a>

<ulclass="dropdown-menu"role="menu">

<li><ahref="#">Action</a></li>

<li><ahref="#">Anotheraction</a></li>

<li><ahref="#">Somethingelsehere</a></li>

<liclass="divider"></li>

<li><ahref="#">Separatedlink</a></li>

<liclass="divider"></li>

<li><ahref="#">Onemoreseparatedlink</a></li>

</ul>

</li>

Barradenavegación

46

Page 47: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

</ul>

<formclass="navbar-formnavbar-left"role="search">

<divclass="form-group">

<inputtype="text"class="form-control"placeholder="Search">

</div>

<buttontype="submit"class="btnbtn-default">Submit</button>

</form>

<ulclass="navnavbar-navnavbar-right">

<li><ahref="#">Link</a></li>

<liclass="dropdown">

<ahref="#"class="dropdown-toggle"data-toggle="dropdown"role="button"

aria-expanded="false">Dropdown<spanclass="caret"></span>

</a>

<ulclass="dropdown-menu"role="menu">

<li><ahref="#">Action</a></li>

<li><ahref="#">Anotheraction</a></li>

<li><ahref="#">Somethingelsehere</a></li>

<liclass="divider"></li>

<li><ahref="#">Separatedlink</a></li>

</ul>

</li>

</ul>

</div><!--/.navbar-collapse-->

</div><!--/.container-fluid-->

</nav>

Lacualsemostraríacomoenlasiguientefiguraenpantallasmedianasygrandes:

Enlaspantallasdesmartphoneloselementosdenavegaciónsecolapsaríanenunbotón,delaforma:

ImagenenlabarradenavegaciónParaincluirellogotipodenuestrawebenlabarradenavegacióntenemosquemodificarlasecciónnavbar-headerdelejemploanteriorparaincluirlaetiqueta<img>,delaforma:

Barradenavegación

47

Page 48: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

<navclass="navbarnavbar-default"role="navigation">

<divclass="container-fluid">

<divclass="navbar-header">

<aclass="navbar-brand"href="#">

<imgalt="Brand"src="...">

</a>

</div>

</div>

</nav>

Nota:Esposiblequeseanecesarioañadiromodificarlosestilosparadisponercorrectamentelaimagenenlabarradenavegación.

AlineacióndeloselementosdelabarraMediantelasclases.navbar-lefty.navbar-rightpodemosindicarlaalineacióndeloselementosenlabarradenavegación,yaseanenlaces,botones,textooformularios.

BarradenavegaciónconformularioPodemosañadirunformularioanuestrabarradenavegaciónañadiendolaclase.navbar-formalaetiquetadelformulario,estoharáquesealineecorrectamenteysecolapseenpantallaspequeñas.Deformaopcionalpodemosutilizarlasclases.navbar-lefto.navbar-rightparaindicarsualineaciónenlabarra.

<formclass="navbar-formnavbar-left"role="search">

<divclass="form-group">

<inputtype="text"class="form-control"placeholder="Search">

</div>

<buttontype="submit"class="btnbtn-default">Submit</button>

</form>

Fijarlabarraalapartesuperior

Barradenavegación

48

Page 49: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

Podemosfijarlabarraalapartesuperiordelapantallasimplementeañadiendolaclase.navbar-fixed-topjuntoalasclasesnavbarnavbar-default.Ademáspodemosindicarladisposicióndeloselementosdelabarraañadiendounaclasecontenedoradelostipos.containero.container-fluidparaqueaparezcancentradosoparaqueocupentodoelancho,respectivamente.

<navclass="navbarnavbar-defaultnavbar-fixed-top"role="navigation">

<divclass="container">

...

</div>

</nav>

Dadoquelabarrasecolarádeforma"flotante"sobreelcontenidoesposiblequeoculteunapartedelmismo.Parasolucionarestoesnecesarioañadirunpequeñoespaciadoinicialalaetiqueta<body>.Elaltodelabarraesde50px,porloquesesuelerecomendarunespaciadode70px,delaforma:

body{padding-top:70px;}

BarrafijaenlaparteinferiorTambiénpodemoscrearunabarradenavegaciónquepermanezcafijaenlaparteinferiordelapantalla.Paraestosimplementetenemosqueañadirlaclase.navbar-fixed-bottomanuestrabarra.Ademáspodemosañadiruncontenedordelostipos.containero.container-fluidparaindicarladisposicióndeloselementos.

<navclass="navbarnavbar-defaultnavbar-fixed-bottom"role="navigation">

<divclass="container">

...

</div>

</nav>

Enestecasotambiénseránecesariomodificarelespaciadodelaetiqueta<body>peroporlaparteinferior,paraquelabarranooculteloscontenidos.

body{padding-bottom:70px;}

Barradenavegaciónprincipal

Barradenavegación

49

Page 50: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

Paracrearlabarradenavegaciónprincipaldenuestrositioserecomiendaañadirlaclase.navbar-static-topparaqueocupetodoelanchoposible.Estonospermitirádefinirsiqueremosqueelcontenidoaparezcacentradoconunaclasecontenedoratipo.containeroqueporelcontrarioocupetodoelanchoposiblecon.container-fluid.

<navclass="navbarnavbar-defaultnavbar-static-top"role="navigation">

<divclass="container">

...

</div>

</nav>

ColoresinvertidosPodemosinvertirloscoloresdelabarraañadiendolaclase.navbar-inverse:

<navclass="navbarnavbar-inverse"role="navigation">

...

</nav>

Barradenavegación

50

Page 51: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

TablasBootstraptambiéndefineunaseriedeclasesparaaplicarestilossobrelastablasdeHTML.Lamásbásicaeslaclase.table:

<tableclass="table">

...

</table>

Coloresalternos

Siademásaplicamoslaclase.table-stripedanuestratablaconseguiremosquelasfilaspresentencoloresalternos:

<tableclass="tabletable-striped">

...

</table>

Tablasconbordes

Tambiénpodemosdibujarunbordealrededordelatablaañadiendolaclase.table-bordered,delaforma:

<tableclass="tabletable-bordered">

...

</table>

Tablas

51

Page 52: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

TablasResponsive

Bootstrapproporcionaunaformadecreartablasresponsivequesebasaencrearunscrollhorizontalparaqueseveancorrectamente.Paraqueestofuncionetenemosquecrearunacajacontenedoraanuestratablaconlaclase.table-responsive:

<divclass="table-responsive">

<tableclass="table">

...

</table>

</div>

Nota:esteefectoseaplicaráúnicamentesobredispositivospequeños(<768px)mientrasqueenelrestodedispositivosnosenotaráladiferencia.

Tablas

52

Page 53: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

Ejercicios1

Ejercicio1-Diseñoresponsive(1punto)EnesteejerciciovamosapracticarconlalibreríaBootstrapysusistemaderejilla.Partiremosdelaplantillaparaunapáginawebbásicafacilitadaenlateoría,leañadiremosuncontenedordetipocontainereiremosañadiendofilasycolumnasintentandoimitareldiseño(ycolores)delesquemadelasiguientefigura:

Enelesquemadelafigurasepuedenvertresdisposicionesdelamismaweb,ladelaizquierdaserefierealostamañosgrandes(lg)ymedianos(md),ladisposicióncentralaltamañopequeñoodetablets(sm)yladeladerechalacorrespondienteamóviles(xs).

TenéisqueaplicarlasclasesdeBootstrapnecesariasparaquealcambiareltamañodelapantallasecambieladisposicióndelosbloquescomosemuestraenelesquema.Tenedencuentaquelacolumnarojatendráquedesaparecercuandoeltamañoseaextrapequeño(xs).

Ejercicio2-Offsetyordenación(1punto)

Ejercicios1

53

Page 54: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

EnesteejerciciovamosapracticarconalgunascaracterísticasmásdeBootstrap:laposibilidaddeañadirunoffset(oespacioinicialalascolumnas),elcambiodeordendeloselementosdeunafilaylavisibilidaddelascolumnassegúneltamañodeldispositivo.

Paraellonoscrearemosunanuevapáginawebpartiendodelaplantillabásica,leañadiremosuncontendordetipocontainereiremosañadiendofilasycolumnasintentandoimitareldiseño,coloresycontenidosdelesquemadelasiguientefigura:

Tenedencuentaque:

Lasegundafila(quecontiene4columnasconlosnúmeros1,2,3y4)essolamenteunafilaalaqueselehanañadidooffsets.Paraforzarelcambiodefilasepuedeañadirunelementoentrela2ªyla3ªcolumnaquesoloseavisiblecuandolapantallaseamedianaogrande(mdolg)yqueapliquelaclaseclearfixdeBootstrap.Elordendelatercerafila(conlasletrasa,b,c,d)sehaalteradoparalasdisposicionesdepantallagrandes(mdolg)usandolasclasesdebootstrapcol-*-push-*ycol-*-pull-*.Enla5ªfilanaranjasehaaplicadouncambiodeordenyunoffsetparalaspantallasgrandesymedianas(mdolg).Además,cuandolapantallaseadetipoxssedeberádeocultarunadesuscolumnas.LafilaazulclaroenlaqueponeDesktop(parapantallaslgomd),Tablet(parasm)yMobile(cuandolapantallaesxs)enrealidadson3filasdistintasconclasesparaquesolosemuestrenendichostamañosdepantalla.Laúltimafilasedeberádeocultarsolamentecuandolapantallaseadeltipoxs.

Ejercicio3-Personalizandomediantemediaquery(1punto)

Ejercicios1

54

Page 55: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

EnesteejerciciosepidequecreéisunanuevapáginawebusandolalibreríaBootstrap.Elcontenidoaparecerácentradoenlapantallayconstarádetresfilasconelsiguientecontenidoydisposicióncuandolapantallaseadetamañomedio(md)ygrande(lg):

Unafilaenlapartesuperiorconunaúnicacolumnaconfondoverdequeocuparátodoelancho,endichacolumnaapareceráeltexto"Header"alineadoalaizquierdayengrande.Unasegundafilacontrescolumnasencolorrojoconelmismoanchoyconlosnúmeros1,2y3(respectivamente)centradosyenletrasgrandes.Latercerayúltimafilacontendrádoscolumnasdeigualanchoyencoloramarillo,laprimeracolumnatendráeltexto"footer1"alineadoaladerechaylasegundaeltexto"footer2"alineadoalaizquierda(ambosusandountamañodefuentegrande).

Enlasiguienteimagensepuedeverunesquemadelawebarealizar:

Comosepuedeverenelesquemadelaimagenladisposicióndelascolumnasylaalineacióndelostextosvariarádependiendodeltamañodelapantalla.Tenéisquereproducirestecomportamientoparaquelaaparienciadelawebseasimilaralesquema(númerodecolumnas,alineacionesdelostextosycolores)cuandoeltamañodelapantallasealadeuntablet(sm)oladeunteléfono(xs).

Tenedencuentaque:

SiemprequeseaposibleseutilizaránlasclasesqueproveeBootstrap.Cuandonoseaposible(porejemploparacontrolarlaalineacióndelostextosyelcambiodecolordefondo)tendréisquedefinirunamediaqueryquelohaga.

Ejercicios1

55

Page 56: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

Ejercicios2

Ejercicio1-CrearunaWebresponsive(3puntos)ParaponerenprácticalosconceptosteóricosvistossobrediseñoresponsiveseproponecomoejerciciolacreacióndeunpequeñositioWebestáticoqueuselosestilosycomponentesvistosdeBootstrap.

Latemática,contenidosyestilosdelsitiosonlibres,perodeberáteneralmenoslassiguientescaracterísticas:

Elsitioestaráformadoporalmenos3páginasenlazadasentresí(concontenidosestáticos).Sercompletamenteresponsive,deformaqueseadaptetantoapantallasextrapequeñasdesmartphonecomoatabletsypantallasmásgrandesdeportátilesydeescritorio.Tenerunabarradenavegaciónprincipalquesecontraigacuandolapantallaseapequeña.Estabarratendráalmenos:

dosenlaces,unaimagencomologotipo,unbuscador(aunquenoseafuncional).

Contenerlossiguienteselementos(unejemplodecadaunoenalgunadelaspáginasdelsitioweb):

botones,undesplegable,unasecciónconfichasopestañas,unformulariohorizontal,unatablaresponsiveconbordesydetipostriped.

ElestilobaseautilizarseráelquedefineBootstrap,sisedefinenestilosCSSpersonalizadostendránqueestarenunficheroseparado,llamado"custom.css",yqueserácomúnparatodaslaspáginasdelsitio.

Unposibleejemplodeunawebquepodéisrealizarsería,porejemplo,unawebderecetas.Estapodríatenerunapáginaprincipalconlainformaciónmásimportante,unapáginaconunarecetadeejemplo(aquísepodríanutilizarlasfichasopestañasparacambiarentre

Ejercicios2

56

Page 57: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

elaboracióneingredientes,loscualespodríanestarenunatabla)yotrapáginaparaelenvíoderecetas(conunformulariohorizontal,botonesparaenvíarycancelar,yundesplegableparaelegirlacategoría).

Deformasimilarsepodríacrearlawebsobrecochesuotrotipodevehículos,mascotas,bicicletas,etc.

Nota:alserunawebestáticatendréisquerepetirpartesdelcódigoentodaslaspáginas,porejemplolabarrademenúprincipaltendráqueserigualentodaslaspáginas.Porestemotivoserecomiendarealizarprimeroestaspartesyunavezprobadascopiarypegarelcodigoenelrestodepáginas.

Ejercicios2

57

Page 58: Tabla de contenido · 2018-03-14 · compañías se están ciñendo a los estándares con HTML5/CSS3 y otras se basan directamente en web-kit) por el problema de las resoluciones

Bibliografíahttp://getbootstrap.com/

PáginaoficialdeBootstrapdesdedondedescargarlalibreríayconsultartodaladocumentación.

http://blog.getbootstrap.com/

ElblogoficialdeBootstrapdondesepublicanlasúltimasnovedades.

TemasyplantillasgratuitasparaBootstrap:http://startbootstrap.com/http://bootstrapzero.com/http://bootswatch.com/http://www.bootbundle.com/

http://bootsnipp.com

EjemplosytrozosdecódigoútilesparaBootstrap.Aquípodrásencontrarcientosdeejemplos,desdecomohacerunformulariodeloginhastatodotipodeelementosconanimacionesoestilosavanzados.

http://expo.getbootstrap.com/

EjemplosinspiradoresdeusodeBootstrap.

http://startbootstrap.com/bootstrap-resources/

ListadocompletísimocontodotipoderecursosdisponiblesparaBootstrap.

Bibliografía

58