Baixe o app para aproveitar ainda mais
Prévia do material em texto
DESENVOLVIMENTO DE SISTEMAS PHP Maurício de Oliveira Saraiva Criação de páginas com CSS3 Objetivos de aprendizagem Ao final deste texto, você deve apresentar os seguintes aprendizados: � Aplicar formatação em elementos de uma página web com CSS3. � Desenvolver classes e seletores de Id com CSS3. � Usar media query para diferentes dispositivos. Introdução Páginas Hyper Text Markup Language (HTML), ou linguagem de marcação de hipertexto, são criadas para realizar a apresentação de dados na web. Para formatar essas páginas, dispomos de folhas de estilo em cascata, do inglês cascading style sheets (CSS), que servem para organizar e estilizar o conteúdo por meio de instruções e comandos que permitem apresentar elementos HTML de forma padronizada, proporcionando redução de esforço e aumento de produtividade. Neste capítulo, você irá estudar a formatação em elementos de uma página web com CSS3, classes e seletores de Id com CSS3 e media query para diferentes dispositivos. Formatação de elementos de uma página web com CSS3 Com a disseminação do HTML5, a formatação de alguns elementos em uma página HTML deixou de ser uma boa prática. Instruções como <font color=“red”>, que eram usadas para definir a fonte e a cor de um texto, deixaram de fazer parte da especificação para dar lugar à estilização com CSS (SILVA, 2015). Atualmente, existe uma divisão de responsabilidades para a exibição de conteúdo em uma página web. Com o HTML ficou a parte estrutural, como <header>, <nav>, <aside>, <section>, <article>, entre outros que definem áreas específicas, criadas para permitir a pesquisa semântica em documentos HTML. A cargo do CSS, ficou com a responsabilidade de pro- ver a estilização, isto é, a definição da aparência das páginas, que envolve o preenchimento de cores, a formatação de fontes, as cores e tamanhos, os espaçamentos e outros. Essa separação proporcionou criar códigos-fonte de páginas web mais organizados, uma vez que a formatação visual não fica misturada com o conteúdo HTML, facilitando o entendimento, flexibilizando a aparência e reduzindo o esforço do programador. É possível aplicar estilos com CSS em uma página web de diversas ma- neiras. As mais conhecidas são: a configuração da tag <style>, dentro do próprio documento HTML; e a indicação de um arquivo externo de estilos, incorporado pela instrução <link>. Por ser mais adequado, a utilização de um arquivo externo é o modo que vamos considerar neste capítulo, visto que pode ser aproveitado para outros documentos, sem a necessidade de replicar código-fonte (EIS; FERREIRA, 2012). Para utilizar um arquivo CSS, você deve realizar a chamada dele na seção <head> do seu documento HTML. Essa chamada deve ser realizada pelo comando <style rel=“stylesheet” href=“estilo.css”>, em que estilo.css indica o nome do arquivo que será incorporado (FREEMAN; ROBSON, 2014). Veja um exemplo na Figura 1. Figura 1. Incorporação de um arquivo CSS. Assim que um arquivo de estilos é incorporado à sua página HTML, todos os elementos recebem a formatação definida no arquivo CSS automatica- mente. Isso significa que, se você mudar a formatação de algum elemento no Criação de páginas com CSS32 arquivo de estilos, todas as páginas que incorporam esse arquivo terão sua apresentação modificada. Para criar um arquivo de estilos, basta definir as propriedades dos seletores e salvar em um arquivo com a extensão CSS. É possível incorporar mais de um arquivo de estilo, no entanto, você precisa ter cuidado para que as defini- ções de um arquivo não repitam as de outro, pois o navegador irá utilizar as definições do arquivo incorporado por último. As definições de estilo podem ser aplicadas a qualquer elemento de um documento HTML, desde o próprio corpo da página, definido pela tag <body>, até itens específicos, como os títulos de <h1> à <h6>. Para definir os estilos, edite o arquivo CSS e indique o seletor e suas propriedades, conforme você verá a seguir. Textos Textos podem ser estilizados em vários elementos dentro de uma página web, ou seja, qualquer elemento que contenha texto pode ter uma formatação específica, como o corpo da página, um parágrafo, um título ou as linhas de uma tabela. Essa formatação envolve a fonte, a cor, o tamanho, a indentação, o alinhamento e várias outras propriedades. Para formatar um elemento, você deve especificar o seletor (h1, p, etc.) e as suas propriedades (font-family, font-size, color, etc.) (FREEMAN; ROBSON, 2014), conforme demonstrado na Figura 2. Figura 2. Texto com CSS3. 3Criação de páginas com CSS3 � Font-family: define a fonte do seletor. Se o navegador não suportar a primeira fonte, ele tentará usar a próxima e, assim por diante, até encontrar uma fonte que seja compatível. É importante destacar que o navegador utiliza as fontes instaladas no computador do usuário para exibir o conteúdo, por isso é necessário a indicação de mais de uma fonte. � Font-size: especifica o tamanho da fonte, que pode ser representado em pixels (px), pixels/16 (em), porcentagem (%) ou constantes pré- -definidas (small, medium, large, etc.). � Text-align: define o alinhamento do texto por meio de constantes, como margem à esquerda (left), à direita (right), centralizado (center), justificado (justify), etc. � Color: define a cor do texto. Você pode configurar a cor por meio de constantes que indicam o nome da cor em inglês (black), pelo sistema RGB (0, 0, 0) ou com valores em hexadecimal (#000000). Nesse caso, todos os três exemplos se referem à cor preta. � Text-indent: configura a indentação da margem da primeira linha do parágrafo. Você pode definir o valor da propriedade da mesma forma que define font-size. Veja um exemplo de apresentação de texto com CSS3 na Figura 3. Figura 3. Apresentação de texto com CSS3. Criação de páginas com CSS34 Saiba mais sobre formatação de textos com CSS3 no link (SILVA, 2016a). https://goo.gl/AC9K13 Caixas Em um documento HTML, cada elemento é representado por um box, isto é, por uma caixa retangular que abriga o seu conteúdo. Em geral, essas caixas são definidas para <div>, que são elementos que abrigam outros elementos. No entanto, as caixas podem ser criadas para qualquer outro elemento, como parágrafos, botões, títulos, etc. (SILVA, 2012). Sendo uma caixa, é possível atribuir as seguintes propriedades: conteúdo (content), espaçamento (padding), borda (border) e margem (margin). Cada uma dessas propriedades define um item das dimensões da caixa, como você pode ver na Figura 4. Figura 4. Propriedades de uma caixa. � Conteúdo (content): define o que será exibido pela caixa. � Espaçamento (padding): especifica um espaço entre o conteúdo e a borda da caixa. 5Criação de páginas com CSS3 � Borda (border): representa a espessura da borda. � Margem (margin): configura o espaço entre a caixa e a margem página. Para definir o tamanho de uma caixa, você deve fazer um cálculo que acrescente tanto largura como altura nas dimensões de espaçamento e borda. Isso significa que uma caixa cujo conteúdo possua 200px de largura, 10px de espaçamento e 2px de borda vai ocupar 212px de largura total. No entanto, para evitar inúmeros cálculos, no CSS3 foi criada uma propriedade chamada box-sizing, que modifica o comporta- mento da caixa garantindo que ela obedecerá a largura definida pela propriedade width, independentemente das dimensões de espaçamento e borda, dessa forma ela reduz o tamanho do conteúdo para se encaixar na largura definida, respeitando as propriedades padding e border. Além das propriedades citadas, as caixas possuem diversas outras que permitem apresentar os elementos com estilos avançados, como efeito gra- diente, sombra, rotação, entre outros. Na Figura 5, você pode ver um exemplo de estilização com caixa no CSS3. Figura 5. Estilizando box com CSS3. � Width/height: especificam a largura e a altura do box. � Left/top: essas propriedades definem a posição do box na página. � Border: especificao tipo e a espessura da borda. � Position: define a representação do layout da caixa. Criação de páginas com CSS36 � Padding: representa o espaçamento entre o conteúdo e a borda. � Box-sizing: define que a largura e a altura compreenderão o tamanho máximo do box. � Box-shadow: estabelece as propriedades da sombra da caixa. � Background: define o preenchimento da caixa, incluindo efeitos gradiente. � Transform: aplica rotação à caixa. Veja, na Figura 6, a apresentação do box no CSS3. Figura 6. Apresentação de box com CSS3. Saiba mais sobre gradientes com CSS3 no link (SILVA, 2016b). https://goo.gl/5izT6c 7Criação de páginas com CSS3 Classes e seletores de Id com CSS3 Na seção anterior você viu que pode definir diversas propriedades para os seletores com CSS. No entanto, as propriedades eram definidas de uma única maneira para cada seletor e, consequentemente, todos os elementos que usassem aquele seletor teriam o mesmo estilo. Imagine que, em uma página web, o seletor do parágrafo esteja definido com a cor azul, que combina com o layout da página. Nesse mesmo site, existe a opção de gerar um relatório HTML para ser impresso e que, por ser mais formal, necessita que os parágrafos estejam na cor preta. Isso traria sérios problemas, pois essa questão teria de ser resolvida por meio de propriedades de estilo que ficariam misturadas com os elementos HTML, prejudicando a legibilidade, a flexibilidade e a organização do con- teúdo das páginas web. Para resolver esse problema, vamos usar seletores de Classe e seletores de Id. Esses seletores permitem que você atribua diferentes estilos para elementos do mesmo tipo, como parágrafos. Com isso, é possível ter dois estilos distintos para o texto das páginas, sendo um para a exibição na tela e outro para o relatório em HTML que será impresso (SILVA, 2012). Seletor de classe Os seletores de classe são úteis para definir estilos diferentes para elementos HTML do mesmo tipo. Isso significa que você pode declarar diversos estilos, com propriedades distintas, e selecionar aqueles que desejar para aplicar aos seus elementos. Apesar de ser mais comum o uso de apenas um seletor de classe em cada elemento HTML, é possível aplicar estilos de mais de um seletor de classe. Nos casos em que as propriedades se sobrepõem, o navegador utilizará o estilo da propriedade da classe que for chamada primeiro. Você pode criar um seletor de classe específico para determinado tipo de elemento HTML, como colunas de tabelas, por exemplo, ou criar seletores de classe para uso genérico, isto é, que podem ser utilizados em elementos de qualquer tipo. Para criar um seletor de classe, inicialmente você deve especificar um nome para ele. Esse nome deve significar algo que referencie o estilo que será aplicado. Você pode escolher quaisquer caracteres para nomear os seletores de classe, exceto caracteres especiais e o caractere espaço em branco (EIS; FERREIRA, 2012). Criação de páginas com CSS38 Não defina o nome do estilo conforme alguma propriedade, como uma cor, pois, futuramente, pode haver a necessidade de trocar a cor das páginas e o nome do estilo pode gerar confusão. Como boa prática, utilize sempre nomes que representam algo sobre o layout de uma forma geral, evitando caracteres especiais e números sequenciais, como estilo1, estilo2, etc. Veja, na Figura 7, a declaração de um seletor de classe para um tipo defi- nido. Nessa declaração, as classes paragrafo_moderno e paragrafo_classico estão referenciadas para o seletor p, que significa parágrafo, indicados nas linhas 1 e 8. Dessa forma, essas classes somente irão atribuir as propriedades definidas em elementos do tipo parágrafo, mesmo que sejam chamadas em elementos de outros tipos. Figura 7. Seletores de classe para parágrafo. Para usar os seletores de classe criados, você precisa realizar as chamadas na página HTML pela indicação de cada classe, junto aos elementos desejados, conforme modelo a seguir: 1 <p class=”paragrafo _ moderno”>Tudo pode ser tirado de 2 uma pessoa, exceto uma coisa: a liberdade de escolher sua atitude 3 em qualquer circunstância da vida.<br /> 4 Viktor Frankl 5 </p> 9Criação de páginas com CSS3 1 <p class=”paragrafo _ classico”>Tudo pode ser tirado de 2 uma pessoa, exceto uma coisa: a liberdade de escolher sua atitude 3 em qualquer circunstância da vida.<br /> 4 Viktor Frankl 5 </p> Note, na Figura 8, que o primeiro parágrafo está usando a classe para- grafo_moderno e o segundo a classe paragrafo_classico, isso faz o primeiro parágrafo ser apresentado em preto, com alinhamento justificado, ao passo que o segundo, está apresentado em cinza com alinhamento à esquerda. Figura 8. Apresentação de seletores de classe. Para criar seletores de classe genéricos, ou seja, que podem servir para qualquer tipo de elemento HTML, você não deve inserir o seletor na declaração de classe, mantendo apenas o nome criado, precedido de um ponto, conforme apresentado na Figura 9. Figura 9. Apresentação de seletores de classe. Criação de páginas com CSS310 Nesse caso, as classes criadas podem ser usadas em qualquer tipo de elemento HTML, desde que as propriedades sejam compatíveis. Assim, as seguintes aplicações da classe texto_moderno são válidas nesse contexto: 1 <p class=”texto _ moderno”>Tudo pode ser tirado de uma 2 pessoa, exceto uma coisa: a liberdade de escolher sua atitude em 3 qualquer circunstância da vida.<br /> 4 Viktor Frankl 5 </p> 6 <body class=”texto _ moderno”> 7 Tudo pode ser tirado de uma pessoa, exceto uma coisa: a liberdade 8 de escolher sua atitude em qualquer circunstância da vida.<br /> 9 Viktor Frankl 10 </body> Seletor de Id Diferentemente de um seletor de classe, que pode ser usado por diversos elementos HTML de uma página web, um seletor de Id só pode ser usado uma única vez dentro do documento. A nomenclatura é muito parecida com a do seletor de classe genérico, tendo como única diferença a troca do ponto “.” pelo sustenido “#”, como você pode observar na Figura 10. Figura 10. Apresentação de seletores de Id. A declaração titulo_principal, além de formatar o elemento com esse estilo, associa a ele um identificador único dentro da página web (SILVA, 2015), conforme representado na Figura 11. 1 <h1 id=”titulo _ principal”>Seletores de id com 2 CSS3</h1> 11Criação de páginas com CSS3 Figura 11. Apresentação de seletor de Id. Se você comparar o seletor de Id com o seletor de classe, aparentemente não verá muita utilidade, já que ele pode ser utilizado somente em um elemento da página. No entanto, o seletor de Id tem outras finalidades, além de aplicar formatação ao elemento. Ele é utilizado por rotinas escritas na linguagem de programação Javascript, que permite tratar os elementos HTML de uma página web por meio de seus identificadores únicos. Apesar de um seletor de Id ser utilizado apenas por um único elemento HTML, os elementos de uma página web podem chamar, também, um ou mais seletores de classe para completar ou padronizar determinado layout. A sintaxe de um elemento HTML com chamada de seletor de classe e seletor de Id simultâneos pode seguir o seguinte exemplo: 1 <h1 id=“titulo _ principal” class=“titulo _ 2 classico”>Seletores com CSS3</h1> Saiba mais sobre seletores com CSS3 no link (WORLD WIDE WEB CONSORTIUM, c2004-2008). https://goo.gl/fHnyR Criação de páginas com CSS312 Media query para diferentes dispositivos Media query é um recurso disponível em CSS para aplicar estilos em páginas web de acordo com as características do dispositivo utilizado para acessá-la. Isso significa que determinadas propriedades de CSS serão aplicadas apenas se as características desse dispositivo atenderem a determinados requisitos (SILVA, 2012). A linguagem HTML foi criada para ser portável, isto é, para apresentar seu conteúdo em diferentes tipos de dispositivos de acesso. No entanto, é impossível construir uma página web que se adapte automaticamente aos diferentes tipos e tamanhosde tela existentes, uma vez que a visualização de um documento HTML em uma tela de computador é diferente da visualização em um smartphone. Além disso, imagine uma página web que apresenta conteúdo de notícias composto por menus de navegação para outras notícias, publicidade, cabe- çalho e rodapé. Se quisermos imprimir essa notícia em papel, desejamos que esses itens adicionais não sejam impressos, ou seja, queremos apenas a notícia. Todas essas questões são resolvidas com media types. Esse recurso per- mite aplicar estilos conforme o tipo de dispositivo, como handheld, braile, embossed, print, projection, screen, speech e outros. No exemplo a seguir, media=“screen” indica que os estilos do arquivo CSS serão aplicados se o dispositivo for colorido e de alta resolução, como um desktop. 1 <link rel=“stylesheet” href=“estilo _ screen.css” 2 media=“screen”> 3 <link rel=“stylesheet” href=“estilo _ hand.css” 4 media=“handheld”> Apesar de media type definir o tipo do dispositivo de acesso à página para aplicar determinados estilos, como um handheld, encontramos outro problema. Atualmente, os dispositivos móveis dispõem de hardware parecido com os de desktops, isto é, possuem telas coloridas e com alta definição, fazendo com que esse critério fique ultrapassado. Para isso, o CSS3 apresenta o recurso media query, que pode avaliar di- versas características para decidir qual estilo aplicar à página web. Assim, em vez de avaliar apenas o tipo do dispositivo, o navegador irá avaliar se as características do dispositivo atendem aos requisitos esperados, independen- temente do seu tipo. 13Criação de páginas com CSS3 O media query pode ser aplicado na chamada do CSS pela tag <link> e, também, pode fazer parte do conteúdo do arquivo CSS. Nesse caso, sua chamada ocorre da mesma forma como a de um arquivo CSS qualquer, e o tratamento é realizado dentro desse arquivo de estilos. Nos exemplos a seguir, o estilo será aplicado apenas nos dispositivos com resolução máxima de 800 pixels. Media query na chamada do CSS: 1 <link rel=“stylesheet” href=“estil.css” media=“(max 2 -width: 800px)”> Media query dentro de um arquivo CSS: 1 @media (max-width: 800px) { … } Você pode combinar media query com operadores lógicos para montar expressões complexas. Essa combinação é chamada de media feature, sendo os seguintes operadores suportados: only, not, or e and (SILVA, 2012). � Only: aplica os estilos apenas em navegadores que suportam media query. 1 <link rel=“stylesheet” href=“est.css” media=“Only 2 screen and (color)”> � Not: indica uma situação de negação à expressão media query aplicada, isto é, not (monochrome) representa que o dispositivo deve ser colorido. 1 @media not (monochrome) { … } � Or: une diversas expressões e aplica o estilo se pelo menos uma delas for verdadeira. O operador or pode ser substituído por uma vírgula: 1 @media screen or (min-width: 900px) { … } � And: une diversas expressões e aplica o estilo apenas se todas elas forem verdadeiras: 1 @media (min-width: 800px) and (orientation: lan- 2 dscape) { … } Existem diversas características de media feature que podem ser usadas em conjunto com media query. Algumas dessas características são: � aspect-ratio � color � color-index � device-aspect-ratio Criação de páginas com CSS314 � device-height � device-width � grid � height � monochrome � orientation � resolution � scan � width Acesse o link ou código a seguir para saber mais sobre media query (MOZILLA, c2005-2017). https://goo.gl/o1td6E Um exemplo prático do uso de media queries é o código a seguir. Aplica-se o plano de fundo azul para páginas com até 640 px de largura e vermelho para páginas com até 480 px de largura. Acima de 640 px, o comportamento-padrão será assumido, ou seja, será mantida a página branca. 15Criação de páginas com CSS3 Entre as propriedades que podem ser usadas, as mais comuns são: min- -width, min-height, max-width, max-height, width e height. A partir delas, podemos, por exemplo, adaptar as páginas para apresentar o comportamento responsivo, ajustando-as adequadamente conforme os diferentes tamanhos de tela. EIS, D.; FERREIRA, E. HTML5 e CSS3: com farinha e pimenta. São Paulo: Lulu.com, 2012. FREEMAN, E.; ROBSON, E. Use a cabeça! Programação em HTML 5. Rio de Janeiro: Alta Books, 2014. MOZILLA. Usando media queries. [S.l.], c2005-2017. Disponível em: <https://developer. mozilla.org/pt-BR/docs/Web/Guide/CSS/CSS_Media_queries>. Acesso em: 06 dez. 2017. SILVA, M. S. A propriedade CSS font. [S.l.]: Maujor, 2016a. Disponível em: <http://www. maujor.com/tutorial/propriedades-css-para-estilizacao-de-fontes.php>. Acesso em: 06 dez. 2017. SILVA, M. S. CSS3: desenvolva aplicações web profissionais com uso dos poderosos recursos de estilização das CSS3. São Paulo: Novatec, 2012. SILVA, M. S. Fundamentos de HTML5 e CSS3. São Paulo: Novatec, 2015. SILVA, M. S. Gradiente linear das CSS3. [S.l.]: Maujor, 2016b. Disponível em: <http:// www.maujor.com/tutorial/css3-gradientes-lineares.php>. Acesso em: 06 dez. 2017. WORLD WIDE WEB CONSORTIUM. Seletores. São Paulo: W3C, c2004-2008. Disponível em: <http://www.w3c.br/divulgacao/guiasreferencia/css2/#mod-seletores>. Acesso em: 06 dez. 2017. Criação de páginas com CSS316
Compartilhar