Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Desenvolvimento de Software para WEB Fundamentos de CSS Prof. Regis Pires Magalhães regispires@lia.ufc.br Efeito cascata • É o estabelecimento de uma prioridade para aplicação da regra de estilo ao elemento. • Fatores para determinar a prioridade: tipo de folha de estilo, o local físico da folha de estilo no seu todo, o local físico da regra de estilo na folha de estilo e a especificidade da regra de estilo. Regra CSS • Possui três partes: ▫ Seletor elemento HTML identificado por sua tag, classe ou ID, e para o qual a regra será válida ▫ Propriedade atributo do elemento HTML ao qual será aplicada a regra ▫ Valor característica específica a ser assumida pela propriedade • Sintaxe: ▫ seletor { propriedade: valor; } Regra CSS • Exemplos p { font-size: 12px; /* ponto-e-vírgula é facultativo */ } body { color: #000; background: #fff; font-weight: bold; /*ponto-e-vírgula é facultativo */ } Regra CSS • Exemplos body { background-color: #fff; } h3 { font-family: "Comic Sans MS"; /* palavra composta entre aspas duplas */ } p { text-align: right; color: #f00; } Agrupamento de seletores • Vários seletores podem ser agrupados em uma regra CSS. h1, h2, h3, h4, h5, h6 { color: #0f0; } Seletor classe • Exemplos p.cor-um { color:#000; } p.cor-dois { color:#00f; } <p class ="cor-um"> este parágrafo será na cor preta.</p> <p class ="cor-dois">este parágrafo será na cor azul.</p> Classe aplicável a qualquer elemento HTML .cor-tres { color: #00f; } <h2 class="cor-tres"> Este cabeçalho é na cor azul. </h2> <p class="cor-tres"> Este parágrafo é na cor azul. </p> Omite-se o nome do elemento antes da classe. Seletor ID • Deve ser único. ▫ Só pode ser aplicado a UM elemento HTML dentro do documento. • Sintaxe: ▫ Um nome qualquer precedido do sinal #. #meuID { propriedade: valor; } Seletores identificam tags específicas <div class="pageFrame" id="pageHead"> <h1> Welcome, <span id="custName">Armando</span> <img src="welcome.jpg" id="welcome"/> </h1> </div> • Nome de tag: h1 • Nome de classe: .pageFrame • ID do elemento: #pageHead • Nome de tag e classe: div.pageFrame • Nome de tag e id: img#welcome • Relacionamento descendente: div #custName • Atributos herdam dos padrões do navegador, a menos que sejam sobrescritos. Exercício • Que seletor CSS estiliza somente a palavra “bar”? • <p class="a">foo, <span class="a">bar<span></p> a) span.a b) p .a c) .a span d) Todas as respostas estão corretas. Comentários • Começam com "/*" e terminam com " */". • São ignorados pelo navegador. /* este é um comentário*/ p { font-size: 14px; /* este é outro comentário*/ color: #000; font-family: Arial, Serif; } Tipos de CSS • Tipos de vinculação de folhas de estilo 1. Inline. 2. Incorporadas. 3. Importadas ou linkadas a partir de um documento externo. Folha de estilo inline • regras CSS declaradas dentro da tag do elemento HTML com uso do atributo style. • só se aplica a um elemento HTML. • mistura a apresentação com a marcação <p style="color:#000; margin: 5px;"> Aqui um parágrafo de cor preta e com 5px nas 4 margens. </p> Folha de estilo incorporada ou interna <head> ... <style type="text/css"> body { background: #000; url(imagens/minhaimagem.gif); } h3 { color: #f00; } p { margin-left: 15px; padding:1.5em; } </style> ... </head> Folha de estilo externa <head> ... <link rel="stylesheet" type="text/css" href="estilo.css"/> ... </head> <head> ... <style type="text/css"> @import url("estilo.css"); </style> ... </head> Linkado (maior compatibilidade) Importado Box model Tipos de unidades de medida • Unidade relativa ▫ tomada em relação à outra medida. ▫ apropriadas para ajustes de uso em diferentes tipos de mídia. ▫ valor é tomado em relação: em: ...ao tamanho da fonte ('font-size') herdada; ex: ...a altura da letra x (xis) da fonte herdada; px - pixel: ...ao dispositivo (midia) de exibição; %: ...à percentagem de uma medida previamente definida. • Unidade absoluta ▫ não referenciada a qualquer outra unidade e nem é herdada. ▫ usadas quando as mídias de exibição são perfeitamente conhecidas Medidas de comprimento CSS div { margin: 1.5em; } h4 { margin: 2ex; } p { font-size: 14px; } .classe { padding: 90%; } hr { width: 14pt; } h1 { margin: 1pc; } h2 { font-size: 4mm; } p.classe { padding: 0.3cm; } h5.classe { padding: 0.5in; } Herança CSS ... p {color: red;} p em {color: blue;} ... <p>Texto do parágrafo com um <em>elemento EM</em> nele contido.</p> Herança CSS ... div {color: red;} ... <div> <p>Texto do parágrafo com um <em>elemento EM</em> nele contido.</p> </div> Propriedades não herdadas • Imagine: ▫ Criar uma borda no elemento raiz da página. Problema: todos os subelementos herdariam a borda. Solução: nem todas as propriedades são herdadas. • Propriedades não herdadas: ▫ background, border (exceto: border-collapse e border- spacing),clip, content, counter, clue, display, float, height, left, margin, outline, overflow, padding, page- break, pause, play-during, position, right, table- layout, text-decoration, top, unicode-bidi, vertical- align, width, z-index. Links a:link {color: #696; text-decoration: none; background-color: transparent} a:visited {color: #699; text-decoration: none; background-color: transparent} a:hover {color: #c93; text-decoration: underline; background-color: transparent} a:active { color: #900; text-decoration: underline; background-color: transparent } position - propriedades • static (padrão) ▫ Posiciona o elemento no fluxo normal da página e não permite ajustes externos. • absolute ▫ Posiciona o elemento em qualquer local da página. ▫ Posição “relativa” às laterais da página ou ao primeiro elemento posicionado (não static) no qual esteja contido. ▫ O espaço original do elemento é liberado para ocupação dos demais elementos. • fixed ▫ Posiciona o elemento relativo à janela do navegador e não move quando ocorre rolagem da página. • relative ▫ O elemento colocado em sua posição normal na página e, depois, é deslocado de acordo com os valores definidos, deixando vazio o espaço onde ele ficaria. Esse espaço passa a ser ocupado pelos demais elementos. • inherit ▫ Valor da posição herdado do elemento pai. position • As propriedades top, left, bottom e right são usadas para posicionar elementos nas posições absolute, fixed e relative. • top e left são mais usadas. position • absolute ▫ Corre com os elementos da página em caso de rolagem de tela. position • fixed ▫ Semelhante ao absolute. ▫ A diferença é que ele fica fixo, mesmo em caso de rolagem de tela. position • fixed position • fixed z-index • Elementos posicionados (absolute, relative ou fixed) podem ser colocados em camadas sobrepostas umas sobre as outras através da propriedade z-index. • Permite definir a ordem de posicionamento dos elementos em uma pilha. ▫ Assim é possível definir que um elemento fique na frente ou atrás de outro. • O elemento que usa z-index não pode estar usando o posicionamento padrão (static). • Quando maior o valor, mas à frente o elemento fica (mais “próximo da tela”). z-index • Valores possíveis: ▫ auto (padrão) Valor igual ao dos elementos pais. ▫ valor Ordem do elemento na pilha. Números negativos são permitidos. ▫ inherit z-index herdado do elemento pai. z-index • Exemplo: img { position:absolute; left:0px; top:0px; z-index:-1; } float • Faz com que os elementos flutuem na página de acordo com determinada política • O mesmo design pode ser obtido usando elementos posicionados de forma absoluta ou float. ▫ Posicionamento float é uma solução flexível para layouts multi-colunas e permite que elementos “limpem” elementos ao seu lado. • Funciona para o elemento onde for declarada. • Box retirado da sua posição normal do fluxo do documento. • O elemento seguinte “ocupa a vaga” onde estava o elemento que está usando float. float • Um elemento float normalmente deve ter uma largura (width) específica declarada com um valor diferente de ‘auto’. • Valores possíveis: ▫ left O elemento flutua para a esquerda. ▫ right O elemento flutua para a direita ▫ none (padrão) O elemento não flutua e será exibido de acordo com o fluxo normal do navegador. ▫ inherit O valor deve ser herdado do elemento pai. float • Exemplo: p { float: left; } Flutuar para a esquerda. Deixa elementos um ao lado do outro. float • Exemplo: img { float: right; } Flutuar a imagem para a direita dentro do elemento onde ela está inserida. float • Exemplo: span.destaque { width: 40%; float: right; background-color: #888; border: 1px solid black; } clear • Especifica que nenhum elemento float possa ficar à esquerda ou direita (ou ambos) de um elemento em bloco. • O elemento com essa propriedade será movido para baixo até se livrar do elemento em bloco ao seu lado. clear • Valores possíveis: ▫ left Não permite elementos float do lado esquerdo. ▫ right Não permite elementos float do lado direito. ▫ both Não permite elementos float em nenhum lado (esquerdo ou direito). ▫ none (padrão) permite elementos float em ambos os lados (esquerdo e direito) ▫ inherit Valor herdado do elemento pai. Layout • Dividir a página em áreas usando o elemento div do HTML. • Cada área deve ter um nome bem representativo e não vinculado a informações sobre o estilo ou posicionamento a ser aplicado. ▫ O estilo e o posicionamento podem ser modificados e o nome dado pode perder o sentido original. ▫ Exemplos de “bons” nomes: geral, container, menu, conteudo, destaque, rodape, footer, blogs, topo, centro, center, etc. Layout • Estruturar as áreas que esperamos no nosso layout. <div id="container"> <div id="header"></div> <div id="left"></div> <div id="content"></div> <div id="right"></div> <div id="footer"></div> </div> Classificação dos layouts • Número de colunas • Largura da página ▫ Fixa A largura é fixa e não se expande ou se encolhe de acordo com a janela do navegador. Melhor controle do design. ▫ Líquida O conteúdo da página se expande para se ajustar à pagina de acordo com as dimensões da janela do navegador. ▫ Elástica A largura é fixa, mas as margens se expandem ou se encolhem de acordo com a janela do navegador. Normalmente posiciona o conteúdo no centro da página. Layout de largura fixa #container { border: 1 px solid black; width: 500px; } Layout de largura líquida #container { border: 1 px solid black; width: 80%; min-width: 300px; } Layout de largura líquida * { font-size: 14px; } #container { border: 1 px solid black; width: 40em; } Centralização do layout #container { border: 1 px solid black; width: 80%; margin: 0 auto; } #container { border: 1 px solid black; width: 500px; margin: 0 auto; } Propriedades adicionais • min-width ▫ Define a largura mínima do elemento. • min-height ▫ Define a altura mínima do elemento. Construção de layouts Passos: 1. Escolher os containers de layout Construção de layouts Passos: 2. Nomear os containers Construção de layouts Passos: 3. Criar a marcação <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="en"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>Page title</title> <link rel="stylesheet" href="style.css" type="text/css" media="screen"> </head> <body> <div id="container"> <div id="header"></div> <div id="mainnav"></div> <div id="menu"></div> <div id="contents"></div> <div id="footer"></div> </div> </body> </html> Construção de layouts Passos: 4. Inserir conteúdo 5. Posicionar os containers body { margin: 0; padding: 0; background: #ddd; } #container { margin: 1em auto; width: 650px; background: #fff; } #header {background: #CF3;} #mainnav {background: #9F3; } #menu { float: right; width: 165px; background: #6F9; } #contents { float: left; width: 440px; background: #9FC; margin: 0 0 0 20px; } #footer { clear: both; background: #FF9; } Construção de layouts Construção de layouts Passos: 6. Folha de estilo para impressão <link rel="stylesheet" href="style.css" media="screen"> <link rel="stylesheet" href="print.css" media="print"> Construção de layouts body { margin: 0; padding: 0; font: 100% arial, hevetica, sans-serif; color: #000; background-color: #fff; } a { color: #000; text-decoration: none; } #header { border-bottom: 1px solid #999; } #header h1 { color: #000; } #mainnav, #menu, .imagefloat, #skipmenu { display: none; } #menu ul { margin-left: 0; padding-left: 0; list-style-type: none; line-height: 165%; } #contents p { line-height: 165%; } .blogentry { border-bottom: 1px solid #999; } .blogentry ul { list-style-type: none; text-align: right; margin: 1em 0; padding: 0; font-size: 95%; } .blogentry li { display: inline; padding: 0 0 0 7px; } #footer { clear: both; color: #000; text-align: right; padding: 5px; font-size: 90%; border-top: 1px solid #999; margin-top: 2em; } 6. Folha de estilo para impressão Layout de 2 colunas Layout de 2 colunas - HTML <div id="container"> <div id="header"></div> <div id="left"></div> <div id="content"></div> <div id="footer"></div> </div> Layout de 2 colunas - CSS div { border: 1px solid black; } #container { width: 600px; margin: 0 auto; } #header { height: 80px; background: #DDD; } #left { float: left; width: 130px; background: #666; } #content { float:right; width: 450px; } #footer { clear:both; background: #DDD; } Layout de 3 colunas Layout de 3 colunas - HTML <div id="container"> <div id="header"></div> <div id="left"></div> <div id="content"> <div id="principal"></div> <div id="right"></div> </div> <div id="footer"></div> </div> Layout de 3 colunas - CSS div { border: 1px solid black; } #container { width: 600px; margin: 0 auto; } #header { height: 80px; background: #DDD; } #left { float: left; width: 130px; background: #666; } #content { float:right; width: 450px; } #principal { float: left; width: 340px; } #right { float: right; width: 100px; } #footer { clear:both; background: #DDD; } Bordas arredondadas e sombra com CSS3 Bordas arredondadas e sombra com CSS3 #container { border: 2px solid; width: 200px; padding: 10px; border-radius: 10px; box-shadow: 10px 10px 5px #888; } Referências e Links importantes • Vídeos da Universidade XTI • www.w3schools.com • www.gimp.org • FREEMAN Eric & FREEMAN Elisabeth. Use a Cabeça! HTML com CSS e XHTML. Alta Books, 1ª Edição, 2006. • Site sobre CSS e Padrões Web. Por Maurício “Maujor” Samy Silva. Disponível em: http://www.maujor.com/ • Apostila da K19 - Desenvolvimento Web com HTML, CSS e Javascript. Referências e Links importantes • SILVA, Maurício Samy. Construindo sites com CSS e (X)HTML – Sites controlados por folhas de estilo em cascata. São Paulo. Novatec Editora, 1ª Edição, 2008. • SILVA, Maurício Samy. CSS3 – Desenvolva aplicações web profissionais com o uso dos poderosos recursos de estilização das CSS3. São Paulo : Novatec Editora, 1ª Edição, 2010. • RODRIGUES, Andréa. Desenvolvimento para Internet. 1ª Edição, Editora do Livro Técnico, 2010.