Baixe o app para aproveitar ainda mais
Prévia do material em texto
Linguagem CSS Material de apoio ao curso de linguagem CSS Criação: Instrutor Nicolas Alexandre Enzo nicolasaenzo@hotmail.com Revisão: Isabel Mariane de Oliveira Instrutor Kleber Rocha Prezado (a) Aluno (a) O objetivo ao desenvolver essa apostila é que ela seja utilizada como material de apoio ao curso ministrado na Upgrade Informática, não recomendamos que esta apostila seja utilizada isoladamente no estudo. Aproveitem o curso e obrigado! O autor. Nome: ________________________________ Tel. Contato: ___________________________ Sumário: CSS .................................................................................................................................. 1 Introdução.................................................................................................................... 1 Utilizando o CSS ........................................................................................................ 1 Criando um arquivo com CSS.................................................................................. 2 Método 1 .................................................................................................................. 2 Método 2 .................................................................................................................. 3 Exercício 01: ............................................................................................................ 5 ID, Class e <Div>: ...................................................................................................... 7 ID e Class:................................................................................................................ 7 Exercício 02: ............................................................................................................ 8 Exercício 04: .......................................................................................................... 18 Hierarquia de propriedades e modificadores:...................................................... 19 Seletor Contextual: ............................................................................................... 19 O valor inherit ........................................................................................................ 20 Pseudo-Classes do Elemento A......................................................................... 20 Exercício 05: .......................................................................................................... 21 Exercício 06: .......................................................................................................... 23 Transform: .............................................................................................................. 30 KeyFrame: ................................................................................................................. 33 Definindo ciclos......................................................................................................... 36 Exercício 09: .......................................................................................................... 36 Sites Responsivos:................................................................................................... 42 Exercício 10: .......................................................................................................... 43 Exercício 11: .......................................................................................................... 47 Exercício 12: .......................................................................................................... 61 Extras: ........................................................................................................................ 61 Criando Ancoras: .................................................................................................. 61 Exercício 13 ........................................................................................................... 62 Dicas:.......................................................................................................................... 64 Unidades.................................................................................................................... 66 Modelo de caixa ....................................................................................................... 67 Bordas ........................................................................................................................ 67 Margens ..................................................................................................................... 70 Espaçamento ............................................................................................................ 71 Modelo de formatação visual ................................................................................. 71 Detalhes do modelo de formatação visual ........................................................... 75 Efeitos visuais ........................................................................................................... 76 Cores e Fundo .......................................................................................................... 77 Paginação para impressão ..................................................................................... 79 Fontes tipográficas ................................................................................................... 80 Texto........................................................................................................................... 82 Tabelas ...................................................................................................................... 84 Interface de usuário ................................................................................................. 85 Upgrade Informática - 1 CSS Introdução Quando não definimos uma formatação específica para os elementos HTML de uma página web, eles são exibidos com o estilo determinado pelo navegador utilizado. Há dois problemas principais em deixar os navegadores decidirem qual formatação deve ser adotada. O primeiro é que cada navegador pode adotar uma formatação diferente. Consequentemente, uma mesma página web não será exibida exatamente da mesma forma em todos os navegadores. O segundo problema é que as formatações adotadas pelos principais navegadores não são “bonitas”. Podemos padronizar a forma que as páginas web são exibidas nos diferentes navegadores e obter um visual agradável definindo a nossa própria formatação. O estilo das páginas deve ser definido com a linguagem CSS (Cascading Style Sheets). Utilizando o CSS A Linguagem de CSS é utilizada a partir de regras para cada item utilizado no html e deve ter a seguinte estrutura: O seletor determina para quais elementos a regra de formatação deve ser aplicada. No corpo de uma regra CSS, podemos definir diversas propriedades, que por sua vez definem uma característica visual. Por exemplo, a propriedade color é utilizada para definir a cor da fonte utilizada nos textos. Seletor Propriedade Upgrade Informática - 2 Criando um arquivo com CSS Basicamente, existe duas formas de se trabalhar com o CSS a primeira delas é inserir a linguagem de programação dentro do arquivo HTML ou, a mais utilizada, criar um novo arquivo apenas para o CSS. Agora iremos trabalhar com as duas formas depois você usara qual acha mais fácil. Método 1 1) Abra um novo Arquivo de HTML no Dreamweaver e digite os códigos abaixo: 2) Visualize no navegador o resultado. Repare que foi inserido dentro de head a tag <style> onde foi criado as regras para os parágrafos (p) e para o (h1). Esse método de utilizar a tag style dentro do html é pouco usadaporque quando se tem um volume muito grande de linhas é difícil organizar as regras. Upgrade Informática - 3 Foram utilizadas as propriedades: Font-family: utilizada para escolher a fonte do texto que vai estar dentro do seletor. Font-size: é utilizado para definir o tamanho do texto. Color: é utilizado para definir a cor do texto. Obs: as cores são definidas pelo código Hexadecimal (HEX) correspondente a cor. E é sempre antecedido de # Método 2 1) Abra um novo Arquivo em html e digite o seguinte código: 2) Salve seu arquivo. 3) Clique no menu Arquivo em seguida em Novo (Ctrl + N). 4) Na janela que apareceu abra um arquivo em CSS. Upgrade Informática - 4 5) Salve na mesma pasta que criou o arquivo em HTML com o nome de estilo.css 6) Em seguida digite os códigos abaixo: 7) Volte para o arquivo em HTML. 8) Repare que agora que já foi feito o link sempre irá aparecer o nome da página em css que foi criada facilitando assim o acesso a ela. 9) Visualize seu arquivo no navegador. Upgrade Informática - 5 Exercício 01: 10) Faça o download de uma logo e uma imagem para colocar no fundo. Em seguida escreva as linhas de código a seguir: Na página “Código-fonte” em HTML: Na página “Estilo.css” em CSS: Upgrade Informática - 6 11)O Resultado deve ser algo parecido com a imagem abaixo: 12)Agora clique em Arquivo > Salvar como... e salve com o nome de Contato.html. 13)Faça a mesma coisa para Empresa e Portfólio. 14)Em seguida faça algumas alterações no texto que aparece em cada página e mostre ao seu instrutor. Obs: Repare que a página de estilo.css vai ser a mesma para todas as páginas do seu site, facilitando a padronização do mesmo. Foi utilizado as propriedades: Width: Largura. Background-image: Imagem de fundo do elemento. Text-Align: Alinhamento do texto. Text-Decoration: Efeitos decorativos no texto como sublinhado, tachado, linha acima e piscante. É utilizado também para tirar a underline que ficam no texto quando se utiliza uma href. Font-family: utilizada para escolher a fonte do texto que vai estar dentro do seletor. Text-shadow: Cria uma sombra embaixo do texto, necessita de deslocamento, desfoque e em seguida a cor da sombra. Font-size: é utilizado para definir o tamanho do texto. Color: é utilizado para definir a cor do texto. Upgrade Informática - 7 ID, Class e <Div>: ID e Class: A diferença é que os seletores por identificador (ID) estão pensados para que o elemento que se seleciona seja único (só se pode colocar um identificador dado a um elemento da página, ou seja, os identificadores devem ser únicos). No entanto, as classes (class) estão pensadas para poder definir o mesmo estilo a vários elementos da página. Ou seja, você pode atribuir uma mesma classe a vários elementos da página sem problemas. Na verdade, as classes estão pensadas justamente para serem utilizadas em diversos elementos diferentes na página. Por exemplo, se você tem uma página com um menu de navegação que aparece uma única vez, você pode atribuir um id à camada onde está a barra de navegação. Esse ID será único, porque não há outra barra de navegação igual a essa na página. Agora, se dentro da barra de navegação você tiver vários links e quiser atribuir estilos a todos ao mesmo tempo, você terá que criar uma classe (class de CSS) e atribuí-la a cada um desses links. Os x links que você tiver, terão todos a mesma classe e você atribuirá o estilo de uma vez para todos através da class. Para utilizar o atributo ID devemos colocar dentro de uma tag, por exemplo: Para colocar as regras em CSS devemos colocar #nome_id, como por exemplo: Obs: lembre-se que só pode haver uma tag com essa ID na página. Upgrade Informática - 8 Para utilizar o Atributo Class também devemos colocar dentro da tag que você deseja que seja alterada. Já na página de CSS devemos colocar .nome_class para editar as regras da classe (exemplo: .menu). Exercício 02: 1) Digite as linhas de código a seguir: HTML: Upgrade Informática - 9 CSS: 2) Agora dentro da div de cabeçalho insira o seguinte código: Upgrade Informática - 10 3) Na página de CSS digite o seguinte código: 4) Salve e visualize no navegador o resultado, se você achar que é necessário faça alguma alteração. 5) Agora insira dentro da div de Menu os seguintes Códigos: 6) Na página do CSS insira as seguintes linhas: Upgrade Informática - 11 7) Salve e visualize no navegador o resultado, se você achar que é necessário faça alguma alteração. 8) Salve 5 imagens da internet de produtos de informática e em seguida dentro da div de corpo digite as linhas a seguir: 9) Agora digite na folha de CSS os seguintes Códigos: Upgrade Informática - 12 10) Salve e visualize no navegador o resultado, se você achar que é necessário faça alguma alteração 11) Agora, como desafio, faça as alterações necessárias no seu site para criar um rodapé como mostra a figura abaixo: Upgrade Informática - 13 Propriedades de CSS utilizadas neste Exercício: Margin: Atalho para definir de uma só vez o tamanho da margem para todos os lados Min-height: Altura mínima. Height: Altura. Width: Largura. Background: Fundo da Caixa podendo ser, imagem ou cor. Border-Radius: Arredonda os lados da caixa em questão. Float: Posicionamento adjacente à esquerda ou à direita do elemento. Font-Family: Tipo de fonte utilizada no texto. Font-Size: Tamanho da fonte Utilizada no texto Text-Shadow: Sombra do texto. Color: Cor do texto. Text-Decoration: Efeitos decorativos no texto como sublinhado, tachado, linha acima e piscante. É utilizado também para tirar a underline que ficam no texto quando se utiliza uma href. List-Style: Define o estilo do Marcador da lista. Anotações: Upgrade Informática - 14 Exercício 03: 1) Peça auxílio para seu instrutor para colocar em sua pasta as imagens de fundo que iremos utilizar agora. 2) Na folha de html digite as seguintes linhas de código: 3) Na folha de CSS digite os códigos abaixo: Upgrade Informática - 15 4) Salve em sua pasta e visualize no navegador 5) Agora insira o código para dentro da div de id menu: 6) No CSS: 7) Salve e visualize no navegador sua página. Upgrade Informática - 16 8) Agora digite dentro da div de id corpo as seguintes linhas: 9) Na página de CSS digite as seguintes regras: 12) Salve seu arquivo visualize no navegador. 13) Se você achar necessário faça algumas alterações. Upgrade Informática - 17 Propriedades de CSS utilizadas neste Exercício: Margin: Atalho para definir de uma só vez o tamanho da margem para todos os lados Min-height: Altura mínima. Max-height- Altura Máxima. Height: Altura. Width: Largura. Background: Fundo da Caixa podendo ser, imagem ou cor. o Linear-gradiente: Cria um gradiente no background da caixa Border-Radius: Arredonda os lados da caixa em questão. Float: Posicionamento adjacente à esquerda ou à direita do elemento. Font-Family: Tipo de fonte utilizada no texto. Font-Size: Tamanho da fonte Utilizada no texto Box-Shadow: Sombra da Caixa. Color: Cor do texto. Text-Decoration: Efeitos decorativos no texto como sublinhado, tachado, linha acima e piscante. É utilizado também para tirar a underline que ficam no texto quando se utiliza uma href. Position: é definido por: o static é o valor padrão de todos os elementos HTML. Um elemento com position:static; não se posiciona de maneira especial,seria o mesmo que dizer que o elemento não tem posição definida ou então que um elemento com o atributo position definido seria posicionado. o relative se comporta igualmente ao static, a menos que se adicione propriedades extras no estilo do elemento. Definindo as propriedades top, right, bottom, e left em um elemento position:relative o ajustamos em relação à posição atual dele. Outros conteúdos não vão se ajustar para se encaixarem em qualquer espaço deixado por esse elemento. o fixed é posicionado relativamente ao "viewport", isso significa que ele sempre ficará no mesmo lugar mesmo que haja rolagem na página. Assim como o relative, as propriedades top, right, bottom e left também são utilizadas. o absolute é o mais complicado. Este valor se comporta como o fixed, porém tendo como referência a posição do elemento relativo mais próximo de onde está contido, ao invés do viewport. Se um elemento position:absolute não possuir elementos ancestrais posicionados relativamente, ele utilizará o body como referência. Upgrade Informática - 18 Exercício 04: 14) Agora com os conhecimentos adquiridos até esta aula, desenvolva um site simples de uma loja de roupa do seu gosto. Anotações: Upgrade Informática - 19 Hierarquia de propriedades e modificadores: Existem algumas propriedades do CSS que quando aplicadas aos “elementos pais”, os “elementos filhos” herdam a característica aplicada no pai. Um exemplo disso é a propriedade color. Quando aplicamos a propriedade color em um elemento div, o texto dos elementos contidos no div são coloridos de acordo com a propriedade. O texto que há dentro deste div irá ter a cor verde, independente se este texto está “solto” dentro do div ou se ele está dentro de um parágrafo, por exemplo. Ou seja, os filhos herdaram o resultado desta propriedade. A mesma coisa acontece para, por exemplo, a propriedade font-size. Há também as propriedades não herdadas pelos “filhos”. Estas propriedades geralmente são propriedades referentes a formatação da caixa, como por exemplo a propriedade width, height, margin,padding e assim por diante. Essa herança é responsável por uma parte da cascata. É aí que está uma das primeiras vantagens de se utilizar o CSS no desenvolvimento com padrões. A vantagem é que podemos modificar poucas linhas do CSS para fazer alterações no site inteiro, sem ter que “caçar” elemento por elemento para modificar suas propriedades. Seletor Contextual: Imagine que você deseja que apenas o parágrafo <p> que se encontra dentro de uma div seja alterado sem alterar os outros textos. Quando se tem situações parecidas com esta, onde desejamos alterar algo que está dentro de algo podemos utilizar o seletor contextual que é usado como mostra abaixo: Neste exemplo nós temos uma regra para alterar a cor de qualquer parágrafo e outra para quando um p estiver dentro de uma div ele será formatado com outra cor. Pode-se utilizar essa propriedade para quantos “elementos filhos” for necessário. Por exemplo: Upgrade Informática - 20 O valor inherit O valor inherit é utilizada em propriedades destinadas aos elementos filhos. Suponha que você tem um elemento div. Este elemento div tem uma borda e você quer que seus filhos tenham a mesma borda. Veja o código: No CSS, o normal seria fazer isso: Se você quisesse modificar a borda do pai e mesmo assim manter a borda do filho, teria que fazer alterações no código. O valor inherit serve para que o filho sempre herde um determinado valor de uma determinada propriedade do pai. Quando o valor do pai muda, o valor do filho também. Veja o código e o exemplo. Pseudo-Classes do Elemento A Usando a Tag <a> e suas pseudo-classes podemos criar alguns efeitos interessantes, como por exemplo do link mudar o estilo quando se passa o mouse em sobre ele. As pseudo-classes são: Pseudo-Classe Descrição :link É aplicada para links que ainda não foram visitados :visited É aplicada para links que já foram visitados pelo usuário :hover É aplicada quando o cursor do mouse está sobre o link. :active É aplicada quando um elemento está sendo ativado pelo usuário. Por exemplo, entre o tempo em que o usuário pressiona o botão do mouse e depois solta-o. Upgrade Informática - 21 Exercício 05: 1) Abra uma nova página em html e escreva as linhas abaixo: 2) Agora digite as seguintes linhas em CSS: Upgrade Informática - 22 Upgrade Informática - 23 Exercício 06: 3) Neste exercício vamos aprender como fazer um menu Dropdown 4) A princípio iremos fazer o exercício e em seguida será explicado cada aspecto. 5) Na Página de HTML digite o seguinte texto: Obs: repare que utilizamos a tag <nav>, ela marca define um conjunto de links de navegação. Observe que nem todas as ligações de um documento devem estar dentro de um elemento <nav>. O elemento <nav> destina-se apenas para os grandes blocos de links de navegação. Upgrade Informática - 24 6) Agora crie a folha de css e digite o seguinte código: Obs: A propriedade z-index especifica a ordem de pilha de um elemento. Um elemento com maior ordem da pilha está sempre na frente de um elemento com uma ordem de pilha inferior. Upgrade Informática - 25 O 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. Block: div é o exemplo de bloco mais comum. O elemento de bloco sempre começa em uma nova linha e se expande para a esquerda e direita o tanto quanto for possível. Outros elementos de bloco comuns são p e form. Inline: span é o elemento de linha padrão. Um elemento de linha pode preencher algum texto dentro de um parágrafo sem quebrar o fluxo daquele parágrafo. O elemento a é o elemento de linha mais comum, já que ele é utilizado para links. 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. Upgrade Informática - 26 7) Salve seu arquivo e visualize no navegador. Anotações Upgrade Informática - 27 Exercício 07: 10) Neste exercício iremos ver alguns efeitos que podemos utilizar usando apenas o hover. Obs: peça para o seu instrutor te passar as imagens que vão ser utilizadas. 11) Abra um arquivo em html e digite o seguinte código dentro da tag Body 12) Agora faça o link com uma nova página em css e digite o seguinte código: Upgrade Informática - 28 13) Até aqui fizemos apenas o corpo da imagem que iremos utilizar. Agora vamos fazer a animação. Upgrade Informática - 29 14) Aqui nós colocamos o estilo e utilizando a propriedade Transform mudamos a posição inicial dos itens para fora do quadro. Uma vez que o quadro tem a propriedade overflow em hidden, os objetos não irão aparecer, mas com a propriedade transition pedimos que ele faça uma animação quando mudar a posição ou efeito de qualquer item fazendo com que os objetos apareçam. 15) Agora para fazer a animação acontecer coloque o seguinte código: 16) Com a propriedade transition-delay fazemos com que cada item entre separadamente em um intervalo de 0,1 segundo e novamente com a propriedade transform colocamos as tags no lugar correto. 17) Agora na Páginade HTML digite o seguinte código: 18) Agora vá para a página de CSS, como nossas tags possuem o mesmo nome nós precisamos apenas criar a animação deste exemplo. Desta maneira digite o seguinte código: Upgrade Informática - 30 19) Salve seu arquivo e visualize o resultado no navegador. Transform: A Propriedade CSS transform permite modificar o espaço coordenado do modelo de formatação CSS. Usando-a, elementos podem ser traduzidos, rotacionados, ter seu tamanho ajustado e inclinados de acordo com os valores definidos. O módulo Transform se baseia em diferentes propriedades para indicar quais serão aos efeitos a serem aplicados: - Rotate: Rotaciona o elemento levando em consideração o ângulo indicado; - Scale: Modifica as dimensões do objeto proporcionalmente, levando em consideração seu tamanho original; - Translation: Move os elementos no eixo X e Y, independente de características como float, position, margin, etc. - Skew: Modifica os ângulos do objeto, inclinando e destorcendo. 20) Agora vamos fazer mais um exemplo de efeito com o :hover. 21) Na página em HTML digite o código a seguir: Upgrade Informática - 31 22) Agora na página de CSS iremos fazer a formatação da animação: Upgrade Informática - 32 23) Agora só falta colocar a animação na máscara e no texto: 24) Salve seu arquivo e visualize no navegador 25) Faça algumas alterações no código que foi criado neste exercício. Anotações: Upgrade Informática - 33 KeyFrame: A propriedade trasition trabalha de forma muito simples e flexível. Você praticamente diz para o browser qual o valor inicial e o valor final para que ele aplique a transição automaticamente, controlamos praticamente apenas o tempo de execução. Para termos mais controle sobre a animação temos a propriedade animation que trabalha juntamente com a rule keyframe. Basicamente você consegue controlar as características do objeto e suas diversas transformações definindo fases da animação. Observe o código abaixo e veja seu funcionamento: O código acima define um valor inicial e um valor final. Agora vamos aplicar esse código a um elemento. Primeiro criamos o item no HTML Agora na página de CSS digite o seguinte código: Upgrade Informática - 34 A propriedade animation tem uma série de propriedades que podem ser resumidas em um shortcode bem simples. Veja a tabela logo a seguir para entender o que cada propriedade significa: Código Descrição Animation-name Especifica o nome da função de animação Animation-duration Define a duração da animação. O valor é declarado em segundos (ex:1s) Animation-timing-function Descreve qual será a progressão da animação a cada ciclo de duração. Existem uma série de valores possíveis e que pode ser que o seu navegador ainda não suporte, mas são eles: ease, linear, ease-in, ease- out, ease-in-out, cubic-bezier(, , , ) . O valor padrão é ease. Animation-interation-count Define o número de vezes que o ciclo deve acontecer. O padrão é um, ou seja, a animação acontece uma vez e pára. Pode ser também infinito definindo o valor infinite no valor. Animation-direction Define se a animação irá acontecer ou não no sentido inverso em ciclos alternados. Ou seja, se a animação está acontecendo no sentido horário, ao acabar a animação, o browser faz a mesma animação no elemento, mas no sentido antihorário. Os valores são alternate ou normal. animation-play-state Define se a animação está acontecendo ou se está pausada. Você poderá por exemplo, via script, pausar a animação se ela estiver acontecendo. Os valores são running ou paused. animation-delay Define quando a animação irá começar. Ou seja, você define um tempo para que a animação inicie. O valor 0, significa que a animação começará imediatamente. Upgrade Informática - 35 Veja que em nossa programação utilizamos a propriedade animation-name e chamamos o mesmo nome que demos na nossa função de keyframe logo no começo da explicação. Depois definimos uma duração de ciclo de meio segundo e que ele girará infinitamente. E por último definimos pelo animation-direction que a animação deverá ser normal, ou seja, o DIV girará sempre para a mesma direção. Podemos melhorar esse código utilizando a versão shortcode, que é mais recomendado. Veja a ordem que devemos escrever as propriedades animation em forma de shortcode: animation: animation-name, animation-duration, animation-timing-function, animation-delay, animation-iteration-count, animation-direction] , animation- name, animation-duration, animation-timing-function, animation-delay, animation-iteration-count, animation-direction Desta maneira nosso código CSS ficará com a seguinte formatação: Upgrade Informática - 36 Definindo ciclos Nós definimos no keyframe do nosso último exemplo apenas um início e um fim. Mas e se quiséssemos que ao chegar na metade da animação o nosso elemento ficasse com o background vermelho? Ou que ele mudasse de tamanho, posição e etc? É aí onde podemos flexibilizar melhor nosso keyframe definindo as fases da animação. Por exemplo, podemos dizer para o elemento ter uma cor de background diferente quando a animação chegar aos 10% do ciclo, e assim por diante. Faça o exemplo: Exercício 09: Estilo de animação: Neste exercício iremos ver vários tipos de animação utilizando as keyframes. 1) Coloque o seguinte código dentro do body do HTML: Agora dentro da página de CSS digite: Upgrade Informática - 37 2) Execute no navegador e veja o resultado. 3) Agora acrescente o seguinte código dentro do body: 4) Na página de CSS digite o seguinte código: 5) Agora acrescente o seguinte código dentro do body: Upgrade Informática - 38 6) Na página de CSS digite o seguinte código: 7) Agora acrescente o seguinte código dentro do body: 8) Na página de CSS digite o seguinte código: Upgrade Informática - 39 9) Agora acrescente o seguinte código dentro do body: 10) Na página de CSS digite o seguinte código: 11) Agora acrescente o seguinte código dentro do body: 12) Na página de CSS digite o seguinte código: 13) Agora acrescente o seguinte código dentro do body: Upgrade Informática - 40 14) Na página de CSS digite o seguinte código: 15) Agora acrescente o seguinte código dentro do body: 16) Na página de CSS digite o seguinte código: 17) Agora acrescente o seguinte código dentro do body: Upgrade Informática - 41 18) Na página de CSS digite o seguinte código: Anotações: Upgrade Informática - 42 Sites Responsivos: Site ou layout responsivo, ou também conhecido como site flexível é quando o site automaticamente se encaixa no dispositivo do usuário (PC, celular, tablet, etc). Um site responsivo muda a sua aparência e disposição com base no tamanho da tela em que o site é exibido. Então, se o usuário tem uma tela pequena, os elementos se reorganizam para lhe mostrar as coisas principais em primeiro lugar. Em smartphones a navegação e experiência do usuário fica difícil e limitada tendo que usar recursos de zoom in e out para ler a página na integra. Outros detalhes como botões e menus ficam desconfigurados pois não foram feitos para esse dispositivo ou resolução. Existem dezenas de resoluções diferentes e, embora este seja o objetivo final, é bem difícil (difícil, não impossível) ter um layout que vai ficar perfeito a cada ponto de quebra. O ideal, portanto, é ter em mente quais são os formatos mais comuns e trabalhar para que aomenos nestes estágios o design esteja funcionando perfeitamente. Considere, portanto, estas resoluções básicas: 1200 pixels – Desktops com monitores widescreen. 960 pixels – Tablets em formato paisagem e monitores antigos. 768 pixels – Tablets em formato retrato. 480 pixels – Smartphones em formato paisagem. 320 pixels – Smartphones em formato retrato. Para o navegador saber qual formatação deve ser feita a cada tamanho de tela são utilizadas as Media queries. As media queries são uma forma de enviar condições ao navegador para informá-lo como renderizar a página, dependendo do tamanho do viewport. O conjunto de regras abaixo, irá funcionar quando a largura do viewport for 980px ou inferior. Basicamente vamos passar a largura da <div> “conteudo” de pixels para porcentagem, transformando a largura do elemento em fluída. Quando se está fazendo um site responsivo é importante criar a meta viewport dentro do <head> para definir a escala inicial do site. Upgrade Informática - 43 Exercício 10: 1) Neste exercício iremos criar um site simples para entender como funciona a lógica utilizada nas media queries. 2) Primeiramente vamos criar o corpo do site no html: 3) Não se esqueça de utilizar a tag <meta name= “viewport”...> 4) Agora vamos criar o corpo padrão do site na página de CSS. Upgrade Informática - 44 Clear: A propriedade clear especifica que os lados de um elemento flutuante não estão autorizados a flutuar. Upgrade Informática - 45 5) Agora iremos criar a formatação utilizando a @media queries para cada tamanho de tela padrão: 6) Salve o arquivo e visualize no navegador aumente e diminua o tamanho da tela para ver a diferença entre as resoluções. 7) Agora digite o seguinte código: 8) Visualize no navegador e faça os mesmos testes para perceber a diferença entre as resoluções. Upgrade Informática - 46 9) Agora digite o código abaixo: 10) Então com isso foi criado uma determinada formatação para cada tamanho de tela. Com essa mesma lógica você consegue fazer qualquer tipo de site responsivo. Como visto agora esse tipo de programação não é difícil, porém necessita de bastante trabalho para criar uma formatação adequada para cada resolução. Upgrade Informática - 47 Exercício 11: 11) Neste exercício iremos criar um site responsivo um pouco mais elaborado para conseguir revisar a maioria dos comandos vistos até agora. 12) Inicialmente insira na tag head as seguintes Metas: Obs: repare que estamos usando uma nova tag de link, essa tag de link irá colocar o ícone na visualização da guia no navegador. 13) Agora continue digitando o seguinte código: Upgrade Informática - 48 Obs: note que foi utilizado a tag <figure> que é utilizada para imagens ou grupo de imagens, a utilização é parecida com a tag <nav> 14) Agora abra a folha em css e vamos primeiramente criar a formatação padrão para o site e em seguida faremos os ajustes para as outras telas: 15) A cada nova propriedade utilizada execute a página no navegador para ver as mudanças: Upgrade Informática - 49 Upgrade Informática - 50 Upgrade Informática - 51 Upgrade Informática - 52 16) Até agora foi feita a formatação para PCs com tela widescreen de 1200px ou mais, se você diminuir o tamanho da tela do navegador logo vai reparar que vários elementos do site ficam sobrepostos ou com uma formatação estranha. Upgrade Informática - 53 17) Agora iremos criar a formatação de 5 media queries: a. De até 1200px – Telas Widescreen de computadores. b. De até 960px – Telas de Tablets em modo paisagem ou monitores antigos. c. De até 768px – Telas de Tablets em modo Retrato. d. De até 480px – Telas de smartphone em modo paisagem. e. De até 320px – Telas de smartphone em modo retrato. 18) Para deixar seu site mais compatível com mais resoluções você deve criar mais media queries para adaptar seu site a qualquer resolução sem que aconteça algum problema. Criando as Media queries: 19) Normalmente fazemos a programação das media queries da maior resolução para a menor: Upgrade Informática - 54 20) Lembre-se de atualizar o navegador para ver as alterações que estão sendo feitas. 21) Para conseguir ver como fica na exata resolução de tela, no dreamweaver, na página de HTML clique em várias telas. 22) Selecione a opção visualização em várias telas. Upgrade Informática - 55 23) Para alterar o tamanho das telas que estão sendo mostradas clique em tamanhos da janela de visão. 24) Agora voltando para o restante da formatação das outras resoluções Upgrade Informática - 56 25) No CSS quando queremos que todas as propriedades tenham as mesmas configurações nós utilizamos o * como nome do seletor com vai ser utilizado em seguida. Upgrade Informática - 57 Upgrade Informática - 58 Upgrade Informática - 59 26) Agora só falta mais uma resolução que seria para resolução de até 320x que seria para celulares em retrato. Upgrade Informática - 60 27) Com isso nós temos um site responsivo adaptável as principais resoluções de tela. A programação necessária para a criação de um site responsivo não é difícil, porém é muito trabalhosa como podemos ver neste site que acabamos de criar. Upgrade Informática - 61 Exercício 12: 28) Crie um novo site responsivo para as 3 resoluções padrões (1200px, 768px e 480px), também utilize animações com transition ou media queries. Procure alguns sites para se inspirar e caso tenha qualquer dúvida pergunte ao seu instrutor. Anotações Extras: Criando ancoras: Imagine a situação: Tenho vários links no topo da página (uma espécie de Índice), e na mesma página todo o conteúdo. Utilizo âncoras para irem a estes conteúdos mais rapidamente, sem a necessidade de ler toda a página e localizar o assunto que desejo. As âncoras são mais usadas para subir a página, ou seja, caso esteja lendo uma notícia, e deseja ir ao topo da página rapidamente, sem necessitar rolar toda a página, e clicando em apenas um link. O código é simples: - Para a localização (destino da âncora) utilizamos a mesma TAG de link, sendo com uma subtag diferente: - E para o link utilizamos: Upgrade Informática - 62 Exercício 13 1) Abra um novo arquivo em Html e digite o seguinte código dentro do body: 2) Agora crie o vínculo com a página de CSS e escreva o seguinte código na página de CSS: Upgrade Informática - 63 3) Salve seu arquivo e execute ele no navegador e veja o resultado. Anotações: Upgrade Informática - 64 Dicas: Dica 01 - div1 é diferente de menu: Evite dar nomes como div1, div2, div3 aos seus elementos. Eles não explicam nada e na hora da manutenção vão tornar seu trabalho mais lento. Da mesma maneira, barra_azul não faz muito sentido: e se você mudar a cor do site? Prefira nomes explicativos, como menu ou barra_links. Dica 02 - Maiúsculas e minúsculas Nomes de elementos fazem diferença entre letras maiúsculas e minúsculas: BarraLinks é diferente de barralinks. Preste atenção na hora de usar seu elemento no HTML. Dica 03 - id x class Para elementos que aparecem apenas uma vez no layout (menu, rodapé, cabeçalho, etc) prefira a declaração id, precedida por um sinal de # (como #menu). Para elementos que vão aparecer várias vezes, utilize a declaração class, precedida por um ponto (como .noticia). Dica 04 - Compartilhe declarações entrevários elementos comuns Se vários elementos terão características em comum, declare-os todos de uma vez, separados por vírgula: Dica 05 - Lembre-se da hierarquia e organize-se Por ser uma folha de estilo em cascata, a última declaração é a que prevalece. Preste atenção para não declarar um elemento duas vezes: na hora da manutenção, você pode fazer a alteração na primeira e se perguntar porque ela não funciona, quando na verdade uma segunda declaração está perdida no meio do seu código (por isso organização é fundamental!). Dica 06 - Comente os códigos avançados: Quando você utilizar o CSS para efeitos mais avançados, como um menu em abas, comente seu código para não esquecer o que cada parte dele faz: Upgrade Informática - 65 Dica 07 - Anote suas cores #09F ou #F09, qual é o rosa e qual é o azul? Mesmo se você conseguir fazer cálculos RGB de cabeça para saber a tonalidade da cor sem uma tabela de cores hexadecimal, economize tempo anotando a cor correspondente de cada código no seu arquivo: Dica 08 - Declare as unidades Quando trabalhar com valores diferentes de zero, declare as unidades (px, pt, etc). Cada navegador assume uma unidade padrão quando ela não é especificada, gerando resultados diferentes em cada navegador. Dica 09 - Não confie na sua memória Com o tempo, é natural que decoremos os principais elementos e seus atributos. Mesmo assim, tenha sempre um guia de consulta rápida ao seu alcance, para tirar dúvidas sobre o funcionamento deles. Um ótimo livro que eu uso e recomendo é o CSS - Cascading Style Sheets - Guia de Consulta Rápida, de Luis Gustavo Amaral. Dica 10 - Inspire-se Sites como o css Zen Garden e o Maujor são ótimos para ter uma ideia das novas tendências. Visitar esses e outros endereços regularmente é recomendável. Upgrade Informática - 66 Unidades UNIDADES DE TAMANHO RELATIVAS Unidade Descrição px Tamanho em pixels (relativo ao dispositivo) em Tamanho relativo à fonte utilizada no elemento ao qual está inserido ex Correspondente à altura da fonte 'x’ UNIDADES DE TAMANHO ABSOLUTAS Unidade Descrição in Polegadas (1polegada = 2.54 cm) cm Centímetros m/ Milímetros pt Pontos (1pt = 1/72 polegadas) pc Picas (1pica = 12 pontos) PORCENTAGEM Unidade Descrição % Porcentagem 0 Valor '0' não requer atribuição de unidade REPRESENTAÇÃO DE CORES Unidade Descrição #RRGGBB Cor RGB (6 valores hexadecimais) #RGB Notação simplificada (#RGB = #RRGGBB) rgb(R,G,B) Cor RGB (3 valores de 0 a 255) rgb(R%,G%,B%) Cor RGB (3 valores percentuais) Upgrade Informática - 67 Modelo de caixa Bordas Propriedade Descrição Valores Descrição border-top- width Largura das bordas em cada um dos quatro lados: superior, direito, inferior e esquerdo [ thin | medium | thick | <tamanho> ] thin: espessura fina border-right- width medium: espessura média border-bottom- width thick: espessura grossa border-left- width Exemplo: e {border-bottom-width: medium; } border-width Atalho para definir de uma só vez larguras de bordas para todos os lados [ thin | medium | thick | <tamanho> ] {1,4} Exemplos: Todas as bordas com espessura 'thin': e {border-width: thin;} Bordas superior e inferior com espessura 'thin', bordas direita e esquerda com espessura 'thick': e {border-width: thin thick;} Borda superior com espessura 'thin', bordas direita e esquerda com espessura 'thick', borda inferior com espessura 'medium': Upgrade Informática - 68 e {border-width: thin thick medium;} Borda superior com espessura 'thin', borda direita com espessura 'thick', borda inferior com espessura 'medium', borda esquerda com espessura 'thin': e {border-width: thin thick medium thin;} border-top- color Cor das bordas em cada um dos quatro lados: superior, direito, inferior e esquerdo [ <color> | transparent ] Exemplo: border-right- color e {border-top-color: black; } border-bottom- color border-left- color border-color Atalho para definir de uma só vez cores de bordas para todos os lados [ <color> | transparent ] {1,4} Exemplos: Todas as bordas com a cor 'black': e {border-color: black;} Bordas superior e inferior com a cor 'black', bordas direita e esquerda com a cor 'silver': e {border-color: black silver;} Borda superior com a cor 'black', bordas direita e esquerda com a cor 'silver', borda inferior com a cor 'gray': e {border-color: black silver gray; } Borda superior com a cor 'black', borda direita com a cor 'silver', borda inferior com a cor 'gray', borda esquerda com a cor 'white': e {border-color: black silver gray white; } border-top- style Estilo de bordas em cada um dos quatro lados: [ none | hidden | dotted | dashed | solid | double none: nenhuma borda (largura computada como zero) Upgrade Informática - 69 border-right- style superior, direito, inferior e esquerdo | groove | ridge | inset | outset ] hidden: idêntico à 'none', exceto na resolução de conflito de bordas nos elementos de uma tabela border-bottom- style dotted: série de pontos border-left- style dashed: série de segmentos de pequenas linhas solid: segmento de linha simples e contínua double: Duas linhas 'solid'. A soma das duas linhas e o espaço entre elas é igual ao valor definido em 'border-width' groove: Efeito 3D, entalhada ridge: Efeito 3D, oposto de 'groove': ressaltada inset: Efeito 3D, baixo relevo outset: Efeito 3D, alto relevo Exemplo: e {border-left-style: dotted; } border-style Atalho para definir de uma só vez estilos de bordas para todos os lados [ none | hidden | dotted | dashed | solid | double | groove | ridge | inset | outset ] {1,4} Exemplos: Todas as bordas com estilo 'solid': e {border-style: solid;} Bordas superior e inferior com estilo 'solid', bordas direita e esquerda com estilo 'dotted': e {border-style: solid dotted;} Borda superior com estilo 'solid', bordas direita e esquerda com estilo 'dotted', borda inferior com o estilo 'dashed': e {border-color: solid dotted dashed; } Borda superior com estilo 'solid', borda direita com estilo 'dotted', borda inferior com estilo 'dashed', borda esquerda com o estilo 'double': Upgrade Informática - 70 e {border-color: solid dotted dashed double; } border-top Atalho para definir largura, estilo e cor das bordas superior, direita, inferior ou esquerda [ <border-top-width> || <border-top-style> || <border-top-color> ] Exemplo: border-right e {border-bottom: thick solid red;} border-bottom border-left border Atalho para largura, estilo e cor das quatro bordas [ <border-top-width> || <border-top-style> || <border-top-color> ] Exemplo: e {border: thick solid red;} Obs.: Valores em negrito são os adotados como padrão Margens Propriedade Descrição Valores Descrição margin-top Tamaho da margem para cada um dos lados: superior, direito, inferior e esquerdo [ <tamanho> | <porcentagem> | auto ] Exemplo: margin-right body {margin-top: 2em } margin-bottom margin-left margin Atalho para definir de uma só vez o tamanho da margem para todos os lados [ <tamanho> | <porcentagem> | auto ]{1,4} Exemplos: Todas as margens com 2em: body {margin: 2em } Margem superior e inferior com 1em, esquerda e direita com 2em: body {margin: 1em 2em } Margem superior com 1em; direita com 2em; inferior com 3em; e esquerda com 2em: body {margin: 1em 2em 3em } Margem superior com 1em; direita com 2em; inferior com 3em; e esquerda com 4em: body {margin: 1em 2em 3em 4em } Upgrade Informática- 71 Espaçamento Propriedade Descrição Valores Descrição padding-top Distância utilizada para espaçamento em cada um dos quatro lados: superior, direito, inferior e esquerdo [ <tamanho> | <porcentagem> ] Exemplo: padding-right body {padding-top: 2em } padding-bottom padding-left padding Atalho para definir de uma só vez a distância de espaçamento para todos os lados [ <tamanho> | <porcentagem> ]{1,4} Exemplos: Todas as margens com 2em: body {padding: 2em } Margem superior e inferior com 1em, esquerda e direita com 2em: body {padding: 1em 2em } Margem superior com 1em; direita com 2em; inferior com 3em; e esquerda com 2em: body {padding: 1em 2em 3em } Margem superior com 1em; direita com 2em; inferior com 3em; e esquerda com 4em: body {padding: 1em 2em 3em 4em } Modelo de formatação visual Propriedade Descrição Valores Descrição / Exemplos display Modos de exibição do conteúdo [ inline | block | list-item | run-in | inline-block | table | inline-table | table-row-group | table- header-group | table- footer-group | table-row | table-column-group | table-column | table-cell | table-caption | none ] inline: O elemento renderizado em uma ou mais linhas block: renderizado como um bloco list-item: renderizado como um item de lista e em linha(s) run-in: renderizado como bloco ou linha(s), dependendo do contexto inline-block: renderizado em uma linha simples, mas comporta-se como um bloco Upgrade Informática - 72 table, inline-table, table-row-group, table- column, table-column-group, table- header-group, table-footer-group, table- row, table-cell, table-caption: esses valores farão com que o elemento se comporte como uma tabela (sujeito a restrições descritas no capítulo sobre tabelas) none: o elemento não será mostrado no modo visual Exemplo: e {display: none;} position Esquema de posicionamento [ static | relative | absolute | fixed ] static: Posicionamento normal de acordo com o fluxo normal dos elementos na página. As proprieades 'top', 'right', 'bottom', e 'left' não se aplicam relative: posicionamento é calculado de acordo com o fluxo normal. O efeito de 'position:relative' é indefinido nos elementos 'table-row-group', 'table-header-group', 'table-footer-group', 'table-row', 'table- column-group', 'table-column', 'table-cell', e 'table-caption' absolute: Posicionamento (e possivelmente o tamanho) é especificado com as propriedades 'top', 'right', 'bottom', e 'left'. Essas propriedade são especificadas em relação ao conteúdo do bloco fixed: Posicionamento é calculado tal como o modelo 'absolute', mas adicionalmente se manterá fixo, mesmo que se utilize a barra de rolagem Exemplo: @media screen { Upgrade Informática - 73 e#exemplo {position: fixed; }} @media print { e#exemplo {position: static;}} top Distância do elemento com relação à extremidade de seu elemento-pai [ <tamanho> | <porcentagem> | auto ] top: Distância vertical em relação à margem superior right right: Distância horizontal em relação à margem direita bottom bottom: Distância vertical em relação à margem inferior left left: Distância horizontal em relação à margem esquerda Exemplo: e { top: 20px; left: 40px;} float Posicionamento adjacente à esquerda ou à direita do elemento { left | right | none ] left: o elemento será posicionado flutuando à esquerda. O fluxo do conteúdo não integrante do elemento será posicionado à direita a partir do 'top' do elemento que recebe a propriedade 'float' right: similar à 'left', mas com o elemento flutuando à direita none: o elemento não flutua Exemplo: e {float: right;} clear Controle para os posicionamentos float [ none | left | right | both ] none: nenhum controle de limpeza de flutuação será executado left: limpeza de flutuação à esquerda: o elemento será posicionado abaixo da borda inferior do elemento flutuante à esquerda right: limpeza de flutuação à direita: o elemento será posicionado abaixo da borda inferior do elemento flutuante à direita both: o elemento será posicionado abaixo da borda inferior de qualquer elemento flutuante, seja à direita ou à esquerda Upgrade Informática - 74 Exemplo: e { clear: both;} z-index Níveis de profundidade de sobreposição de elementos [ auto | <número inteiro> ] Os números serão considerados para ordenar os elementos que ficarão sobrepostos, do mais baixo para o mais alto: 'z-index: 1'; 'z-index:2'; 'z-index: 3'; … Exemplo: e {z-index: 1;} direction Define a direção de um texto: esquerda para direita; direita para esquerda [ ltr | rtl ] Utilizado em clientes que têm suporte a idiomas e escrita bidirecional. ltr - direção da esquerda para a direita rtl - direção da direita para a esquerda Exemplo: e {direction: rtl;} Para que a direção tenha o efeito atribuído, a propriedade 'unicode-bidi' deve conter os valores 'embed' ou 'bidi-override' unicode-bidi Interação entre textos bidirecionais [ normal | embed | bidi- override ] Utilizado em clientes que têm suporta a idiomas e escrita bidirecional normal – o elemento não embutirá o algoritmo com suporte bidirecional embed – embutirá algoritmo bidirecional bidi-override – permite a sobreposição Obs.: Valores em negrito são os adotados como padrão Upgrade Informática - 75 Detalhes do modelo de formatação visual Propriedade Descrição Valores Descrição / Exemplos width Largura [ <tamanho> | <porcentagem> | auto ] Exemplo: e {width: 25%;} min-width Largura mínima [ <tamanho> | <porcentagem>] Exemplo: e {min-width: 200px;} max-width Largura máxima [ <tamanho> | <porcentagem> | none] Exemplo: e {max-width: 600px;} height Altura [ <tamanho> | <porcentagem> | auto ] Exemplo: e {height: 250px;} min-height Altura mínima [ <tamanho> | <porcentagem>] Exemplo: e {min-height: 30%;} max-height Altura máxima [ <tamanho> | <porcentagem> | none] Exemplo: e {max-height: 70%;} line-height Distância entre as linhas de um texto [ normal | <número> | <tamanho> | <porcentagem> ] Exemplo: e {line-height: 1.2em;} vertical-align Alinhamento vertical do texto [ baseline | sub | super | top | text-top | middle | bottom | text-bottom | <porcentagem> | <tamanho> ] baseline - A linha de base do elemento e do elemento superior (elemento-pai) serão consideradas para alinhamento. Se não houver linha de base no elemento, será considerado sua margem inferior sub - A linha de base do elemento será alinhada com a linha de base de conteúdo subscrito do elemento superior super - A linha de base do elemento será alinhada com a linha de base de conteúdo superescrito do elemento superior top - Alinha o topo do elemento com a linha de topo do elemento superior text-top - A base superior do elemento será alinhada com a linha superior do conteúdo de textos do elemento-pai Upgrade Informática - 76 middle - A linha central do elemento e de seu elemento superior serão consideradas para alinhamento. (linha central do elemento superior = ponto central da altura da letra 'x') bottom - Alinha o rodapé do elemento com o rodapé do elemento superior text-bottom - A base inferior do elemento será alinhada com a linha inferior do conteúdo de textos do elemento-pai Exemplo: e {vertical-align: sub;} Efeitos visuais Propriedade Descrição Valores Descrição / Exemplos overflow Comportamento do browser quando o conteúdo do elemento for maior que sua área [ visible | hidden | scroll | auto ] visible - Todo o conteúdo do elemento estará visível (não cortado) e talvez conforme a área seja renderizadopara fora do elemento hidden - O conteúdo será cortado (se maior que a área disponível) e não haverá barra de rolagens no elemento scroll - O conteúdo será cortado (se maior que a área disponível) mas haverá barra de rolagens no elemento. Quando a mídia for especificada como 'print', o conteúdo do elemento poderá ser impresso. auto - O método será atribuído pelo browser cliente Exemplo: e {overflow: scroll;} Upgrade Informática - 77 clip Especifica região de um elemento a ser exibida [ rect (<tamanho topo>, <tamanho direito>, <tamanho rodapé>, <tamanho esquerdo>) | auto ] rect – Delimita área retangular do elemento (topo, direita, rodapé, esquerda) na qual o conteúdo ficará visível auto - O elemento não terá clip e sua própria área será idêntica à de visualização Exemplo: e {clip: rect(5px, 40px, 45px, 5px); } visibility Define se um elemento estará ou não visível [ visible | hidden | collapse ] visible - O elemento será exibido hidden - O elemento não será exibido, ficando totalmente transparente. Mas o leiaute da página continuará sendo afetado collapse - Mesmo efeito que hidden, mas aplicável a elementos de tabela Cores e Fundo Propriedade Descrição Valores Descrição / Exemplos color Cor do texto presente no elemento <color> Exemplo: e {color: red; } e {color: rgb(255,0,0); } background- color Cor de fundo do elemento [ <color> | transparent ] Para 'transparent' será adotada a cor de fundo do elemento superior e na ausência deste, a cor de fundo padrão do browser Exemplo: e {background-color: #f00; } e {background-color: transparent; } background- image Imagem de fundo do elemento [ url(...) | none ] Exemplo: e {background-image: url(http://caminho/imagem.jpg); } background- repeat Define se e como a imagem de fundo utilizada se repetirá [ repeat | repeat-x | repeat-y | no-repeat ] repeat: a imagem é repetida em ambas as direções: horizontal e vertical Upgrade Informática - 78 repeat-x: a imagem é repetida somente horizontalmente repeat-y: a imagem é repetida somente verticalmente. no-repeat: a imagem não será repetida e somente uma cópia da mesma será renderizada Exemplo: e {background-repeat: no-repeat;} background- attachment Define se a imagem de fundo utilizada será fixa ou com rolagem [ scroll | fixed ] scroll: a imagem acompanha a rolagem da página na janela do browser, mantendo-se como imagem de fundo fixed: a imagem é fixada na página e não acompanhará a rolagem da página background- position Posição da imagem de fundo utilizada. [ [ <porcentagem> | <tamanho> | left | center | right ] [ <porcentagem> | <tamanho> | top | center | bottom]? ] | [ [ left | center | right ] || [ top | center | bottom ] ] top: Equivalente a '0%' do posicionamento vertical right: Equivalente a '100%' do posicionamento horizontal bottom: Equivalente a '100%' do posicionamento vertical left: Equivalente a '0%' do posicionamento horizontal. center: Equivalente a '50%' do posicionamento horizontal ou '50%' do posicionamento vertical Exemplo: body {background-position: right top; } body {background-position: 100% 0; } background Atalho para definir de uma só vez todas as propriedades de imagem de fundo [ <background-color> || <background-image> || <background-repeat> || <background- attachment> || <background-position> ] Exemplo: e {background: red url("chess.png") repeat-x fixed 50% right; } Upgrade Informática - 79 Paginação para impressão Propriedade Descrição Valores Descrição / Exemplos page-break- before Define quebra de página antes do elemento [ auto | always | avoid | left | right ] auto: insere quebra de página somente se necessário always: sempre insere quebra de página antes do elemento avoid: evita inserir quebra de página antes do elemento left: insere uma ou duas quebras de páginas antes do elemento, de modo que a página gerada seja uma página par right: insere uma ou duas quebras de páginas antes do elemento, de modo que a página gerada seja uma página ímpar Exemplo: e {page-break-before: always; } page-break- after Define quebra de página após o elemento [ auto | always | avoid | left | right ] auto: insere quebra de página somente se necessário always: sempre insere quebra de página após o elemento avoid: evita inserir quebra de página após o elemento left: insere uma ou duas quebras de páginas após o elemento, de modo que a página gerada seja uma página par right: insere uma ou duas quebras de páginas após o elemento, de modo que a página gerada seja uma página ímpar Exemplo: e {page-break-after: always; } page-break- inside Define ou evita quebra de páginas dentro de um elemento [ avoid | auto ] auto: insere quebra de página somente se necessário avoid: evita inserir quebra de página dentro do elemento Exemplo: Upgrade Informática - 80 e {page-break-inside: avoid; } orphans Número mínimo de linhas antes da quebra de um parágrafo que pode aparecer no final de uma página <número inteiro> Somente valores positivos são permitidos Exemplo: e {orphans: 2; } widows Número mínimo de linhas após a quebra de um parágrafo que pode aparecer no início de uma página <número inteiro> Somente valores positivos são permitidos Exemplo: e {widows: 2; } Fontes tipográficas Propriedade Descrição Valores Descrição / Exemplos font-family Família(s) de fontes [ [ <nome-fonte> | <família-genérica> ] [, <nome-fonte> | <família-genérica> ]* ] As seguintes famílias-genéricas de fontes são definidas em CSS2.1: 'serif' 'sans-serif' 'cursive' 'fantasy' 'monospace' Exemplo: e {font-family: "New Century Schoolbook", serif; } font-style Estilo utilizado na fonte [ normal | italic | oblique ] normal: fonte do elemento sem efeito itálico ou oblíquo italic: fonte do elemento com efeito itálico oblique: fonte do elemento com efeito oblíquo Exemplo: e {font-style: italic; } font-variant Exibe o texto em pequena caixa-alta (versalete) ou fonte normal [ normal | small-caps ] normal: fonte do elemento sem efeito de capitalização small-caps:fonte do elemento com efeito de pequena caixa alta (versalete) Exemplo: e {font-variant: small-caps; } Upgrade Informática - 81 font-weight Peso da fonte [ normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 ] normal: fonte do elemento com efeito padrão de peso (corresponde ao valor 400) bold: fonte do elemento com efeito de negrito (corresponde ao valor 700) bolder: fonte do elemento com o valor de peso imediatamente superior ao do valor herdado (p.ex: de 400 para 500) lighter: fonte do elemento com o valor de peso imediatamente inferior ao do valor herdado (p.ex: de 400 para 300) Exemplo: e {font-weight: bold; } font-size Tamanho da fonte [ [ xx-small | x-small | small | medium | large | x-large | xx-large] | [larger | smaller] | <tamanho> | <porcentagem> ] medium: fonte do elemento com valor padrão de tamanho e equivalente ao padrão do browser. Os demais valores ( xx-small | x-small | small | large | x-large | xx-large) são calculados pelo browser considerando esse valor 'medium'. larger | smaller: aumenta ou diminui o tamanho em relação ao valor herdado. tamanho: valor absoluto. Não são permitidos valores negativos. porcentagem: porcentagem do tamanho do valor herdado. Exemplo: e {font-size: 90%; } font Atalho para definir de uma só vez todas as propriedades de fonte [ [ [ <font-style> || <font- variant> || <font- weight> ]? <font-size> [ / <line-height> ]? <font-family> ] | caption | icon | menu | message-box | small-caption | status- bar ] Além dos valores para as propriedades de estilo, variação, peso, tamanho, altura da linha e família, pode-se utilizar os seguintes, de acordo com o ambiente do usuário: Upgrade Informática - 82 caption: fonte utilizada por controles com legenda (ex.: botões, drop-downs, etc.) icon: fonte utilizada em ícones menu: fonte utilizada em menus do sistema (ex.: dropdown menus e menus suspensos) message-box: fonte utilizada em caixas de diálogo. small-caption: fonte utilizada em controles com legenda reduzida status-bar: fonte utiliza em barra de status das janelas Exemplo: e {font: 300 italic 1.3em/1.7em "Helvetica", sans-serif; } Texto Propriedade Descrição Valores Descrição / Exemplos text-indent Recuo à esquerda da primeira linha em um bloco de texto [ <tamanho> | <porcentagem> ] Exemplo: e {text-indent: 3em; } text-align Alinhamento do texto [ left | right | center | justify ] left: alinhamento do texto à esquerda right: alinhamento do texto à direita center: alinhamento do texto centralizado justify: alinhamento do texto justificado Exemplo: e {text-align: center; } text-decoration Efeitos decorativos no texto como sublinhado, tachado, linha acima e piscante [ none | [ underline || overline || line-through || blink ] ] none: não produz decoração no texto do elemento underline: cada linha de texto do elemento terá uma linha abaixo (sublinhado) overline: cada linha de texto do elemento terá uma linha acima Upgrade Informática - 83 line-through: cada linha de texto do elemento terá uma linha cortando-o ao meio (tachado) blink: textos piscantes alternadamente entre visíveis e não visíveis Exemplo: e {text-decoration: underline; } letter-spacing Espaçamento entre caracteres [ normal | <tamanho> ] Exemplo: e {letter-spacing: 0.1em; } word-spacing Espaçamento entre palavras [ normal | <tamanho> ] Exemplo: e {word-spacing: 1em; } text-transform Transforma o texto em maiúsculas/minúsculas [ capitalize | uppercase | lowercase |none ] capitalize: coloca o primeiro caracter de cada palavra do elemento em maiúsculas (caixa alta) uppercase: coloca todos os caracteres de cada palavra do elemento em maiúsculas (caixa alta) lowercase: coloca todos os caracteres de cada palavra do elemento em minúsculas (caixa baixa) none: não aplica efeitos de capitalização Exemplo: e {text-transform: capitalize; } white-space Definições sobre espaços em branco num determinado elemento [ normal | pre | nowrap | pre-wrap | pre-line ] normal: utiliza a configuração padrão do browser para espaçamentos em branco pre: todos os espaços em branco presentes no código fonte serão exibidos no elemento nowrap: os espaços em branco serão tratados como 'normal', mas as quebras de linha serão suprimidas Upgrade Informática - 84 pre-wrap: todos os espaços em branco contantes no código-fonte serão exibidos no elemento pre-line: os espaços em branco serão tratados como normal. Exemplo: e {white-space: pre; } Tabelas Propriedade Descrição Valores Descrição / Exemplos caption-side Posicionamento do título em relação à tabela [ top | bottom ] top: Posicionamento do título antes da área da tabela bottom: Posicionamento do título abaixo da área da tabela Exemplo: e {caption-side: bottom; } table-layout Define o algoritmo usado para a renderização da tabela [ auto | fixed ] auto: utiliza algum algoritmo de leiaute automático. fixed: utiliza algoritmo de leiaute fixo. Exemplo: table {table-layout: fixed; } border-collapse Seleciona o modelo de bordas a ser utilizado [ collapse |separate ] separate: as bordas serão renderizadas para cada célula, dado a impressão de linha duplacollapse: as bordas das células serão mescladas, dando a impressão de uma única linha Exemplo: table {border-collapse: collapse; } border-spacing Distância entre as bordas de células adjacentes (quando 'border- collapse=separated') <tamanho> <tamanho>? Exemplo: table {border-spacing: 15pt; } table {border-spacing: 10pt 5pt; } Upgrade Informática - 85 empty-cells Visibilidade das bordas de células sem conteúdo [ show | hide ] show: exibe as células vazias da tabela hide: não exibe as células vazias da tabela Exemplo: table {empty-cells: hide; } Obs.: Valores em negrito são os adotados como padrão Interface de usuário Propriedade Descrição Valores Descrição / Exemplos cursor Especifica o cursor [ [http://.../cursor.ico,]* [ auto | crosshair | default | pointer | move | e- resize | ne-resize | nw- resize | n-resize | se- resize | sw-resize | s- resize | w-resize | text | wait | help | progress ] Exemplo: e {cursor:help; } outline-width Largura da linha de contorno <border-width> Aceita os mesmos valores de 'border-width' Exemplo: e {outline-width: thin; } outline-style Estilo da linha de contorno <border-style> Aceita os mesmos valores de 'border-style' Exemplo: e {outline-style: dotted; } outline-color Cor da linha de contorno [ <color> | invert ] color: valor correspondente a uma cor invert: cor inversa à área do elemento (prática comum para tornar o 'focus' visível) Exemplo: e {outline-color: #f00; } outline Atalho para definir de uma só vez todas as propriedades de outline [ <outline-color> || <outline-style> || <outline-width> ] Exemplo: active {outline: black dotted thick; } Upgrade Informática - 86 speak-header (Aural) Freqüência em que os 'headers' da tabela serão pronunciados. Utilizado quando 'media=speech' [ once | always ] once: Os títulos de tabelas serão 'falados' uma vez, antes da série de células always: Os títulos de tabelas serão 'falados' sempre que ocorrer uma célula pertinente Exemplo: e {speak-header: always; } Obs.: Valores em negrito são os adotados como padrão
Compartilhar