aprenda layout com css lara...

39
Aprenda Layout com CSS http://pt-br.learnlayout.com/ Lara Popov Zambiasi Bazzi Oberderfer http://professores.ifsc.edu.br/lara/ [email protected]

Upload: nguyentu

Post on 05-Jan-2019

238 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar

Aprenda Layout com CSShttp://pt-br.learnlayout.com/

Lara Popov Zambiasi Bazzi Oberderferhttp://professores.ifsc.edu.br/lara/

[email protected]

Page 2: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar

A propriedade "display"

● display é a propriedade mais importante do CSS para controlar o layout. Cada elemento tem um valor padrão para o display dependendo de seu tipo. O valor padrão na maioria dos elementos é normalmente block ou inline.

● Um elemento com valor block é chamado de elemento de nível de bloco ou apenas elemento de bloco.

● Um elemento com valor inline é sempre chamado de elemento de linha.

Page 3: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar

display: block

div é o exemplo de bloco mais comum. O elemento de bloco sempre começa em uma nova linha e se expande pra esquerda e direita o tanto quanto for possível. Outros elementos de bloco comuns são p e form, e agora no HTML5 temos: header, footer, section e outros.

<div>

</div>

Page 4: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar

display: inline

● span é o elemento de linha padrão. ● Um elemento de linha pode preencher algum

texto dentro de um parágrafo <span>como esse</span> sem quebrar o fluxo daquele parágrafo.

● O elemento a é o elemento de linha mais comum, já que ele é utilizado para links.

Page 5: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar

display: none

● Outro valor comum do display é o none. Alguns elementos específicos como o script utilizam este valor por padrão. Ele é normalmente utilizado através do JavaScript para esconder e exibir elementos sem realmente os remover nem recriar.

● Ele é bem diferente de visibility. Marcando o display com o valor none vai exibir a página como se o elemento não existisse. Com visibility:hidden o elemento fica invisível, porém ele permanece ocupando o espaço em que estaria totalmente visível.

Page 6: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar

display

● Cada elemento possui um tipo padrão de display. ● No entanto, você sempre poderá substituí-los! ● Embora não faça sentido uma div no modo de

linha, você pode fazer isso para personalizar a visualização de elementos com semânticas particulares.

● Um exemplo comum é aplicar display:inline no elemento li para menus horizontais.

Page 7: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar

Criando um layout com CSS a partir do zero

Page 8: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar

Objetivo: montar um layout assim

Page 9: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar

Identificar os elementos estruturais

● Antes de tudo, temos que identificar os elementos estruturais do design, para então saber como estruturar nosso documento HTML.

● A web é amplamente baseada em retângulos, e nós precisamos nos lembrar disso quando estivermos dividindo nosso design. Essas divisões principais que nós iremos fazer vão terminar em tags <div>. Um <div> é basicamente um contêiner retangular, o qual podemos posicioná-lo usando CSS.

Page 10: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar

Dividindo o design

Page 11: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar

5 elementos principais:

● nav (área de navegação principal): A navegação primária para este website. As imagens vão mudar on hover (quando o cursor do mouse estiver sobre elas).Comprimento: 760pxAltura: 50px

● header (cabeçalho): O cabeçalho do website inclui uma imagem de fundo (puramente por estética) e o nome da companhia.Comprimento: 760pxAltura: 150px

● article (conteúdo): É nesta área que ficará o conteúdo principal do website.Comprimento: 480pxAltura: Pode mudar, dependendo do conteúdo

● aside (barra lateral): Esta terá uma camada secundária que não é tão importante quanto o conteúdo principal.Comprimento: 280pxAltura: Pode mudar, dependendo do conteúdo

● footer (rodapé): Informações gerais: Copyright, créditos, e algum texto alternativo para navegação.Comprimento: 760pxAltura: 66px

Este site será também centralizado na janela do navegador.

Page 12: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar

index.html<!DOCTYPE html><html lang="pt-br"> <head> <meta charset="UTF-8"> <link rel="stylesheet" type="text/css" href="estilo.css"> <title>Meu Site</title> </head> <body> <nav>Main Nav</nav> <header>Header</header> <aside> Texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto. </aside> <article> Texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto. </article> <footer>Footer</footer> </body></html>

Page 13: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar

● Como você vai notar no design, qualquer coisa em nossa página é da largura de 760px ou menos, e nada flutua fora disso. O que nós vamos fazer é criar um contêiner para nossa página que tenha 760px de largura e posicionado no meio da página. Nossos 5 principais elementos serão colocados dentro desse contêiner.

Page 14: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar

estilo.css

● E isto é todo o HTML que precisamos para nosso contêiner. Vamos às CSS.

● Crie um novo arquivo vazio e salve-o como estilo.css.

Page 15: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar

ID e CLASS

● O sinal # na frente da id diz ao navegador que estamos selecionando uma id. Para uma classe, nós usaríamos um . Exemplo: .page-container { } — no caso de uma classe.

● Um id é um identificador único que usamos para coisas que somente ocorrerão uma vez na página. Então para cabeçalhos, rodapés, navegadores, etc..., nós usamos id's e para elementos que se repetem, como links, nós devemos usar classes, que podem aparecer mais vezes na mesma página.

● Nós não estaremos habilitados a ver as modificações que são feitas a esta <div>, porque ela é transparente por padrão.

Page 16: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar

● Precisamos escrever uma regra CSS para redefinir as margens e alinhamentos das tags html e body para zero. Adicione essa regra bem no topo do seu arquivo css:

html, body {

margin: 0;

padding: 0;

}

Page 17: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar

Os CINCO elementos principais

Page 18: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar

● Nós precisamos adicionar 5 tags. ● Estas tags correspondem às áreas do design

que nós identificamos na parte 2. ● Nós vamos inserir texto dentro das tags

somente para facilitar a identificação visual quando visualizarmos a página.

Page 19: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar

HTML

<div id="page-container">

<div id="main-nav">Main Nav</div>

<div id="header">Header</div>

<div id="sidebar-a">Sidebar A</div>

<div id="content">Content</div>

<div id="footer">Footer</div>

</div>

Page 20: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar

HTML 5

<nav>Menu de Navegação</nav>

<header>Cabeçalho</header>

<section>

<aside>Barra Lateral</aside>

<article>Conteúdo</article>

</section>

<footer>Rodapé</footer>

Page 21: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar

section

● devemos atribuir uma largura de 760px para esta tag.● vamos centralizar esta tag. Isto é feito atribuindo suas

margens para auto. Quando as margens esquerda e direita são atribuídas para auto, elas se igualam em ambos os lados e a div fica no centro do contêiner.

section {

width: 760px;

margin: auto;

background: red;

}

Page 22: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar

● Remova o fundo vermelho da #page-container, e adicione uma nova regra para #main-nav. Mude o fundo da #main-nav para vermelho para que possamos vê-la, e atribua sua altura para 50px:

article {

width: 760px;

margin: auto;

background: yellow;

}

nav {

background: red;

height: 50px;

}

Page 23: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar

● Note que nós não especificamos a largura da div. Isto por que, por padrão, a div vai se esticar até preencher seu contêiner-pai, que neste caso, é nosso body que foi configurado para 760px de largura.

● Faça a mesma coisa para a div cabeçalho (header), utilizando a altura que usamos no primeiro passo. Use a cor azul para o fundo.

header {

background: blue;

height: 150px;

}

Page 24: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar

● Já que estamos aqui, vamos configurar o rodapé (footer). Use a cor laranja para o fundo.

● Lembre-se de que quando escrever sua folha-de-estilos, você pode agrupá-los. Então todos os estilos do cabeçalho (header) poderiam vir juntos. Todos os estilos do rodapé (footer) poderiam estar juntos, e os estilos de navegação poderiam estar juntos. Eu também acho que estruturar a folha-de-estilos similar à ordem do HTML ajuda bastante. Assim sendo, header fica próximo ao topo, footer ao final.

footer {

background: orange;

height: 66px;

}

Page 25: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar

Floats

Page 26: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar

Floats

● Floats (flutuadores) pode ser um conceito enganoso para fazer você perder a cabeça.

● Basicamente um float é um elemento que é alinhado contra os lados esquerdo ou direito do seu contêiner.

● No caso deste website, nós vamos fazer flutuar (float) nossa tag aside à direita, com a largura de 280px.

aside {

float: right;

width: 280px;

background: darkgreen;

}

Page 27: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar

Adicionando conteúdo

● Somente para o propósito de testes, substitua o texto do conteúdo de article para o seguinte:

<article>

Texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto.

</article>

Page 28: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar
Page 29: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar

Note que o conteúdo do aside ficou em uma linha só.

Page 30: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar

Propriedade: CLEAR

● Isso não é o que queremos. Nós queremos que o conteúdo da div seja distribuído através da div sidebar, a qual tem seu lado direito contra o lado esquerdo da barra lateral.

● Um jeito fácil de conseguir isto num layout flutuante como esse, é colocar a propriedade que limpa os floats, pois o o article e o aside estão 'flutuadas', no footer coloque:

clear: both;

Page 31: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar

CLEAR: BOTH

● Quando um elemento tem sua propriedade clear atribuída, se ele entrar em contato com um elemento flutuante, ele é colocado exatamente abaixo de onde o flutuante termina. V

● ocê pode especificar se ele é afetado somente por flutuadores esquerdos ou direitos, neste caso nós poderíamos utilizar tanto right ou both. Nós vamos utilizar clear: both somente por segurança.

Page 32: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar

Inserção de metas

<meta http-equiv="Content-Language" content="pt-br" />

<meta name="description" content="Descrição do site" />

<meta name="keywords" content="Palavras-chave" />

<meta name="author" content="IF.Com Soluções" />

Page 33: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar

Menu <nav>

● Trocar o texto para:

<nav>

<a href="#">Principal</a>

<a href="#">Sobre</a>

<a href="#">Serviços</a>

<a href="#">Portfólio</a>

<a href="#">Contato</a>

</nav>

Page 34: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar

<nav> CSS

● Com CSS:● http://www.universogeek.blog.br/2012/10/tutorial-

aprenda-a-criar-um-menu-dropdown-com-html5-e-css3/● http://www.siteparaempresas.com.br/blog/?p=3408● http://www.betomarques.com/artigos/artigo_021.php● http://msdn.microsoft.com/pt-br/library/jj160310(v=vs.85

).aspx● Com Jquery:● http://www.webmaster.pt/76-menu-jquery-14624.html

Page 36: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar

Footer

● Alterar o rodapé:

<nav id=”navFooter”>

<a href="#">Principal</a> -

<a href="#">Sobre</a> -

<a href="#">Serviços</a> -

<a href="#">Portfólio</a> -

<a href="#">Contato</a>

</nav>

Copyright &copy IF.Com Soluções. <br>

Powered by IF.Com Soluções.

Page 37: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar

FRAMEWORKS CSS

● http://pt-br.learnlayout.com/frameworks.html

Page 38: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar

Aprenda Layout com CSS

Lara Popov Zambiasi Bazzi Oberderferhttp://professores.ifsc.edu.br/lara/

[email protected]

Page 39: Aprenda Layout com CSS Lara ...professores.chapeco.ifsc.edu.br/lara/files/2014/04/Aula-Aprenda... · A propriedade "display" display é a propriedade mais importante do CSS para controlar

Referências Bibliográficas

● BALTER, L.; MUNIZ, B; QUINTINO, T. Aprenda Layout com CSS. Disponível em: <http://pt-br.learnlayout.com/>. Acesso em: mar. 2015.

● MACHADO. Criando um layout com CSS a partir do zero. Disponível em: <http://www.hpmachado.com.br/tutorial-de-css/criando-um-layout-com-css-a-partir-do-zero-parte-6-12.html>. Acesso em: mar. 2015.