Created
June 27, 2017 13:19
-
-
Save weider86-zz/7b929f374f75c7d0e022012eb2eae1ef to your computer and use it in GitHub Desktop.
Como desenvolver sites utilizando o Bootstrap 3
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Como desenvolver sites utilizando o Bootstrap 3 | |
No artigo ‘Desenvolvendo com Bootstrap 3: um framework front-end que vale a pena!‘ fiz uma breve apresentação do framework apontando seus pontos positivos e negativos, explicando o funcionamento do sistema de grids e como se inicia um projeto. | |
Mas agora chegou a hora de colocar a mão na massa pra valer! | |
Em 6 etapas, você desenvolverá o seu primeiro site utilizando o Bootstrap. | |
1. Fase de concepção | |
Antes de sair desenvolvendo qualquer página, é importante demandar tempo em entender a real necessidade e objetivo do que será criado. | |
Esta é uma das fases mais importantes do ciclo de vida de um projeto e constantemente negligenciadas pelos desenvolvedores, no anseio de se ter um produto a ser usado em pouco tempo. | |
Mas pare e pense: nada adianta uma página bem desenvolvida se ela não atende o objetivo de seu idealizador ou a real necessidade do usuário. | |
Portanto se inspire, pense, rabisque, faça brainstorm’s, peça opiniões, enfim, demande tempo… o quanto necessário, pois valerá a pena, pode confiar. 😉 | |
Homem rascunhando em papel o desenho de um aplicativo | |
Como exemplo de caso, desenvolveremos um site com o objetivo de divulgar informações pessoais e profissionais de um indivíduo. A fase de concepção portanto se dá em descobrir quais serão esses dados e quais suas importâncias (para já se ter uma idéia da organização e disposição do conteúdo). | |
Dados a serem disponibilizados: nome, cargo, foto, resumo, telefone, email, localidade, experiências profissionais, habilidades, paixões e hobbies. | |
2. Defina a estrutura do layout pensando em grids | |
Com a concepção elaborada, chegou a hora de definir o layout, isto é, a estrutura visual de seu site. | |
Lembre-se de sempre pensar em grids! O Bootstrap trabalha com até 12 colunas e seu layout deve respeitar esses limites. (O sistema de grids foi explicado no artigo citado no início desta postagem – ver artigo). | |
Através de desenhos bem simples (chamados de wireframes) feitos à mão ou no próprio computador, você definirá onde e como ficará cada componente de seu site como o menu de navegação, rodapé, conteúdo e o que mais tiver. | |
Imagem mostrando o layout sobrepondo os grids do bootstrap | |
No wireframe acima é possível perceber a distribuição do conteúdo respeitando o sistema de grids (colunas de contorno azul), dividido em 12 porções iguais. | |
3. Preparando o ambiente | |
Em sua forma mais simples de utilização, preparar um ambiente utilizando Bootstrap é extremamente fácil e rápido. | |
Acesse a página oficial do framework (http://www.getbootstrap.com/) e faça o download de sua versão compilada. | |
Seta apontando para o botão de download do Bootstrap | |
Descompacte o arquivo zip no local desejado e seu ambiente está pronto! Simples, não? =D | |
4. Criando a estrutura do HTML | |
Crie o arquivo “index.html” no diretório raíz e insira o código ‘padrão’ da estrutura do Bootstrap disponível abaixo: | |
01 | |
02 | |
03 | |
04 | |
05 | |
06 | |
07 | |
08 | |
09 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
<!DOCTYPE html> | |
<html lang="pt-BR"> | |
<head> | |
<meta charset="utf-8"> | |
<meta http-equiv="X-UA-Compatible" content="IE=edge"> | |
<meta name="viewport" content="width=device-width, initial-scale=1"> | |
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags --> | |
<title>Bootstrap - Template básico</title> | |
<!-- Bootstrap --> | |
<link href="css/bootstrap.min.css" rel="stylesheet"> | |
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> | |
<!-- WARNING: Respond.js doesn't work if you view the page via file:// --> | |
<!--[if lt IE 9]> | |
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> | |
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> | |
<![endif]--> | |
</head> | |
<body> | |
<h1>Olá, mundo!</h1> | |
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) --> | |
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> | |
<!-- Include all compiled plugins (below), or include individual files as needed --> | |
<script src="js/bootstrap.min.js"></script> | |
</body> | |
</html> | |
Estrutura pronta, vamos iniciar a codificação do layout. | |
5. Codificando a estrutura do layout e grids | |
Para o exemplo, vamos dividir esta etapa em quatro itens: | |
5.1. Definindo os componentes principais | |
Nosso layout possui 3 componentes horizontais: | |
1. cabeçalho: header; | |
2. seção principal: section; | |
3. rodapé: footer. | |
Divisões estruturais da página em divs horizontais | |
O código a ser inserido dentro do <body></body> de nosso arquivo “index.html” para realizar esta separação é bastante simples: | |
01 | |
02 | |
03 | |
04 | |
05 | |
06 | |
07 | |
08 | |
09 | |
10 | |
<header> | |
<nav>HEADER > NAV</nav> | |
</header> | |
<section> | |
<aside>SECTION > ASIDE</aside> | |
<article>SECTION > ARTICLE</article> | |
</section> | |
<footer>FOOTER</footer> | |
Com as estruturas horizontais prontas, partimos para codificação de cada componente e suas divisões em grids, ou seja, as divisões em colunas do layout. | |
5.2. Codificando o cabeçalho (header) com a barra de navegação | |
O Bootstrap já possui uma barra de navegação (ou navbar) como um componente pronto para uso (e isso significa que você não precisará codificar uma linha sequer para isso). 😉 | |
Basta entrar na documentação disponível no site oficial http://www.getbootstrap.com e procurar pela navbar na página de componentes. | |
Copie e cole o código da barra de navegação dentro de sua header. | |
Perceba que a documentação disponibiliza algumas customizações para cada componente, um exemplo é a possibilidade de tornar a barra de navegação fixa ao topo ou utilizá-la com suas cores invertidas, como é o nosso caso. | |
Dois pontos importantes a serem observados: | |
1. Para que os elementos fiquem centralizados na página, basta utilizar a classe “container” nos elementos superiores de cada seção. | |
2. Quando utiliza-se a barra de navegação fixa no topo, é necessário adicionar um espaçamento (margin-top) ao elemento inferior para evitar que a mesma sobreponha a navbar. | |
O código para nosso exemplo ficará assim: | |
01 | |
02 | |
03 | |
04 | |
05 | |
06 | |
07 | |
08 | |
09 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
<header><!-- Cabeçalho --> | |
<nav class="navbar navbar-inverse navbar-fixed-top"> | |
<div class="container"> | |
<!-- Brand and toggle get grouped for better mobile display --> | |
<div class="navbar-header"> | |
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false"> | |
<span class="sr-only">Toggle navigation</span> | |
<span class="icon-bar"></span> | |
<span class="icon-bar"></span> | |
<span class="icon-bar"></span> | |
</button> | |
<a class="navbar-brand" href="#">nome do site</a> | |
</div> | |
<!-- Collect the nav links, forms, and other content for toggling --> | |
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> | |
<ul class="nav navbar-nav navbar-right"> | |
<li><a href="#">Link 1</a></li> | |
<li><a href="#">Link 2</a></li> | |
<li><a href="#">Link 3</a></li> | |
<li><a href="#">Link 4</a></li> | |
</ul> | |
</div><!-- /.navbar-collapse --> | |
</div><!-- /.container --> | |
</nav> | |
</header><!-- Cabeçalho-fim --> | |
5.3. Codificando o componente central (section) e seus grids | |
Chegou o momento de trabalhar efetivamente com os grids (visto que não precisamos dele no cabeçalho, uma vez que utilizamos o componente pronto). | |
Conforme o desenho do layout, o componente central, definido na estrutura do HTML como section, deverá receber duas colunas: | |
1. aside (elemento à esquerda): onde virão os detalhes do profissional como a foto, nome, e-mail, telefone, etc; | |
2. article (elemento à direita): elemento principal, onde virão os textos e descrições mais detalhadas. | |
Divisão em grids do layout utilizando o bootstrap | |
Lembrando as regras do sistema de grids: as colunas devem estar inseridas na <div class=”row”></div> e a soma das mesmas não podem ultrapassar 12. | |
Para o exemplo, utilizaremos a seguinte proporção: ‘md-3’ para o elemento aside e ‘md-9’ para o article (somando 12 no total, preenchendo assim a largura da página). | |
Obs: foi adicionado o margin-top à section, evitando que a mesma sobreponha a barra de navegação. | |
O código de nossa section portanto ficará assim: | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
<section class="container" style="margin-top:100px;"> | |
<aside class="col-md-3"> | |
aside | |
</aside> | |
<article class="col-md-9"> | |
article | |
</article> | |
</section> | |
5.4. Codificando o rodapé (footer) | |
Nosso rodapé (footer) seguirá a mesma lógica do elemento anterior (section), porém as proporções serão invertidas. Utilizaremos ‘md-9’ para a coluna da data de última atualização e ‘md-3’ para a coluna dos créditos. | |
Tendo o seguinte código: | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
<footer class="container"> | |
<hr> | |
<div class="row"> | |
<div class="col-xs-9">Última atualização</div> | |
<div class="col-xs-3 text-right">Créditos</div> | |
</div> | |
</footer> | |
5.5. Código completo | |
O resultado é o seguinte código: | |
01 | |
02 | |
03 | |
04 | |
05 | |
06 | |
07 | |
08 | |
09 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
56 | |
57 | |
58 | |
59 | |
60 | |
61 | |
62 | |
63 | |
64 | |
65 | |
66 | |
67 | |
68 | |
69 | |
70 | |
71 | |
<!DOCTYPE html> | |
<html lang="pt-BR"> | |
<head> | |
<meta charset="utf-8"> | |
<meta http-equiv="X-UA-Compatible" content="IE=edge"> | |
<meta name="viewport" content="width=device-width, initial-scale=1"> | |
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags --> | |
<title>Bootstrap - Template básico</title> | |
<!-- Bootstrap --> | |
<link href="css/bootstrap.min.css" rel="stylesheet"> | |
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> | |
<!-- WARNING: Respond.js doesn't work if you view the page via file:// --> | |
<!--[if lt IE 9]> | |
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> | |
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> | |
<![endif]--> | |
</head> | |
<body> | |
<header><!-- Cabeçalho --> | |
<nav class="navbar navbar-inverse navbar-fixed-top"> | |
<div class="container"> | |
<!-- Brand and toggle get grouped for better mobile display --> | |
<div class="navbar-header"> | |
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false"> | |
<span class="sr-only">Toggle navigation</span> | |
<span class="icon-bar"></span> | |
<span class="icon-bar"></span> | |
<span class="icon-bar"></span> | |
</button> | |
<a class="navbar-brand" href="#">nome do site</a> | |
</div> | |
<!-- Collect the nav links, forms, and other content for toggling --> | |
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> | |
<ul class="nav navbar-nav navbar-right"> | |
<li><a href="#">Link 1</a></li> | |
<li><a href="#">Link 2</a></li> | |
<li><a href="#">Link 3</a></li> | |
<li><a href="#">Link 4</a></li> | |
</ul> | |
</div><!-- /.navbar-collapse --> | |
</div><!-- /.container --> | |
</nav> | |
</header><!-- Cabeçalho-fim --> | |
<section class="container" style="margin-top:100px;"> | |
<aside class="col-md-3"> | |
aside | |
</aside> | |
<article class="col-md-9"> | |
article | |
</article> | |
</section> | |
<footer class="container"> | |
<hr> | |
<div class="row"> | |
<div class="col-xs-9">Última atualização</div> | |
<div class="col-xs-3 text-right">Créditos</div> | |
</div> | |
</footer> | |
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) --> | |
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> | |
<!-- Include all compiled plugins (below), or include individual files as needed --> | |
<script src="js/bootstrap.min.js"></script> | |
</body> | |
</html> | |
6. Insira o conteúdo e publique! | |
Layout codificado, agora basta inserir os conteúdos e publicar |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment