Trabalhando com pseudo-classes no CSS

No design de páginas web, o CSS é uma ferramenta essencial para criar uma apresentação visual atraente e funcional. As pseudo-classes, por sua vez, oferecem recursos avançados para aplicar estilos de forma inteligente, com base em ações do usuário ou características específicas dos elementos na página. Elas permitem que o desenvolvedor altere a aparência de um site em tempo real, sem a necessidade de interações externas, como JavaScript, garantindo uma navegação mais fluida e interativa. Neste artigo vamos entender o que são as pseudo-classes, como elas funcionam e explorar diversas formas de usá-las para melhorar a experiência do usuário e otimizar o design de suas páginas. O que são pseudo-classes? Antes de aprendermos a usar as pseudo-classes, é importante entender o que elas são. Elas são palavras-chave no CSS que aplicam estilos a elementos com base em condições específicas, como quando um campo recebe foco, um usuário interage com um botão ou um elemento ocupa determinada posição na página. Diferente dos seletores comuns, que trabalham com elementos fixos no HTML, as pseudo-classes permitem criar estilos dinâmicos que respondem ao comportamento do usuário ou à estrutura do DOM. Abaixo conseguimos ver a sintaxe básica de uma pseudo-classes. Após o seletor vamos adicionar “:” e informar qual seletor queremos utilizar: Aqui conseguimos ver um exemplo básico utilizando o “hover”: :hover Vamos iniciar falando sobre a pseudo-classe “:hover”, que é uma das mais populares no CSS, especialmente para adicionar interatividade aos elementos. Quando o cursor do mouse passa sobre um elemento, ela é ativada. Imagine que você deseja criar um menu no qual os links mudem de cor ao serem destacados, oferecendo um feedback visual claro. Passe o mouse sobre o link Quando o usuário passa o mouse sobre o link, ele muda de azul para vermelho e aparece sublinhado, indicando que é clicável. Esse comportamento melhora a usabilidade e cria uma experiência mais interativa. :focus Digamos que você esteja criando um formulário e queira destacar os campos que estão em foco. A pseudo-classe “:focus” ajuda a identificar visualmente qual campo está ativo, tornando o formulário mais acessível e intuitivo. Nome: Quando o usuário clica no campo de texto, a borda muda para verde, destacando o campo ativo. :nth-child Dentro da pseudo-classe “:nth-child”, você pode usar os valores odd (ímpar) e even (par) para selecionar respectivamente os elementos de posição ímpar ou par dentro de um container. Essas opções são úteis para aplicar estilos alternados a elementos de listas, tabelas ou qualquer outro grupo de elementos, sem a necessidade de selecionar manualmente cada um. odd: seleciona os elementos que estão em posições ímpares (1, 3, 5, 7, etc.). even: seleciona os elementos que estão em posições pares (2, 4, 6, 8, etc.). Esses valores são frequentemente usados para alternar as cores de fundo de itens de uma lista, criando um efeito visual de “zebra”, onde os itens alternam entre cores claras e escuras. Item 1 Item 2 Item 3 Item 4 No código acima conseguimos ver que o “li:nth-child(odd):” aplica o estilo ao primeiro, terceiro, quinto, e outros itens em posições ímpares. Já o “li:nth-child(even):” aplica o estilo ao segundo, quarto, sexto, e outros itens em posições pares. :not A pseudo-classe “:not” é bastante útil quando você precisa estilizar quase todos os elementos de um determinado tipo, mas deseja excluir um subconjunto específico. Imagine que você está desenvolvendo um sistema em que botões secundários devem ter um estilo padronizado, enquanto o botão principal precisa de um destaque visual diferente. Você pode usar “:not” para aplicar um estilo aos botões secundários sem interferir no botão principal. Botão Principal Botão Secundário 1 Botão Secundário 2 O “‘button:not(.primary)” aplica estilos a todos os botões que não possuem a classe “.primary”. :checked A pseudo-classe “‘:checked” é indicada quando você quer destacar visualmente elementos de formulário que foram selecionados. Isso é muito útil em cenários de listas de tarefas, filtros, ou qualquer interface que dependa da interação do usuário com caixas de seleção ou botões de rádio. Imagine que você está criando uma lista de tarefas onde itens concluídos devem ser riscados para indicar que estão finalizados. Tarefa 1 Tarefa 2 Tarefa 3 Quando o checkbox é marcado, o rótulo associado ao elemento recebe um estilo de texto riscado e cor cinza. Conclusão Agora que você compreendeu como as pseudo-classes funcionam e viu exemplos práticos, experimente aplicá-las em seus projetos. Teste diferentes combinações e explore sua criatividade para criar interfaces mais dinâmicas e interativas. O uso inteligente dessas ferramentas pode transformar a experiência do usuário e elevar a qualidade do seu design. O próximo passo é colocar esse conhecimento em prática e descobrir como ele pode fazer a diferença nos seus trabalhos.
Filtrando elementos HTML com JavaScript

Manipular elementos HTML com JavaScript é uma das tarefas mais comuns no desenvolvimento web moderno, especialmente em aplicações que exigem interatividade em tempo real. Para isso, é fundamental saber como buscar, filtrar e modificar elementos do DOM de forma eficiente. Neste artigo vamos explorar diversas técnicas para selecionar e filtrar elementos HTML com base em atributos, classes e outros critérios, utilizando métodos como “getElementById” e “querySelector”. Por que utilizar filtros? Filtros de elementos HTML são indispensáveis para aplicações interativas, permitindo manipular apenas os elementos necessários de uma página. Isso melhora a eficiência do código, otimiza o desempenho e enriquece a experiência do usuário. A seguir, veremos como aplicar esses filtros de maneira prática e eficiente com JavaScript. getElementById O método “getElementById” é usado para selecionar um único elemento com base no atributo id. É uma das maneiras mais rápidas e eficientes para buscar um elemento e ideal para casos em que o identificador do elemento é único dentro da página. No exemplo abaixo vemos como capturar o valor de um campo de entrada (input) e exibi-lo dinamicamente enquanto o usuário digita. Exemplo de Uso do getElementById O texto aparecerá aqui. No código acima, o “getElementById” seleciona o campo de entrada (input) e o parágrafo (p) pelo atributo id. O “addEventListener” escuta o evento input, disparado sempre que o usuário digita algo. Por fim, o “textContent” atualiza o conteúdo do parágrafo com o valor atual do campo de entrada. getElementsByClassName Já o método “getElementsByClassName” permite selecionar todos os elementos de uma página que compartilham uma mesma classe. Ele retorna uma HTMLCollection, que é uma lista de elementos que pode ser acessada por índice ou iterada para manipulações em massa. Esse método é útil para aplicar alterações em grupos de elementos que possuem o mesmo estilo ou funcionalidade, como mudar a cor de várias caixas com a mesma classe. Exemplo de Uso do getElementsByClassName Caixa 1 Caixa 2 Caixa 3 Mudar Cor Aqui, o “getElementsByClassName” é utilizado para selecionar todas as caixas com a classe “box”. Quando o botão é clicado, o JavaScript percorre a coleção e altera o fundo de todas as caixas para “lightblue”. querySelector Se você precisa de maior flexibilidade para selecionar elementos, o “querySelector” é uma boa opção. Esse método utiliza um seletor CSS e retorna o primeiro elemento que corresponde ao seletor. Ele é bastante versátil, permitindo a combinação de classes, ids, e pseudo-classes CSS em uma única busca. Por exemplo, é possível selecionar apenas o primeiro botão dentro de uma seção específica e aplicar um estilo. Exemplo de Uso do querySelector Botão 1 Botão 2 No exemplo acima, “querySelector” é utilizado para selecionar o primeiro botão dentro da seção que tem a classe “btn”. Quando o botão é clicado, seu texto é alterado para “Clicado!”. Esse método é ideal para buscas mais específicas em situações onde queremos encontrar um único elemento com base em um seletor CSS. querySelectorAll Se o objetivo for selecionar todos os elementos que correspondem a um seletor, você pode utilizar o “querySelectorAll”. Esse método é indicado quando precisamos realizar ações em vários elementos ao mesmo tempo, como alterar o estilo de todos os links de uma lista ou adicionar um evento de clique em todos os botões de uma página. Exemplo de Uso do querySelectorAll Link 1 Link 2 Link 3 No exemplo acima, o “querySelectorAll” é utilizado para selecionar todos os links dentro de uma lista não ordenada. Em seguida, um evento de clique é adicionado a cada link, e um alerta é mostrado com o texto do link clicado. Conclusão Filtrar e manipular elementos HTML com JavaScript é uma habilidade essencial para criar páginas interativas e dinâmicas. Através dos métodos discutidos neste artigo, você pode selecionar elementos de maneira eficiente e aplicar ações ou mudanças em um ou mais deles. Conhecer a fundo as diferenças entre esses métodos e entender quando usá-los vai otimizar seu trabalho e garantir um código mais limpo e eficiente.
Tratamento de eventos com JavaScript

Criar páginas web interativas com JavaScript exige a compreensão e o controle dos eventos que ocorrem durante a navegação do usuário. Os eventos permitem que desenvolvedores capturem e respondam a ações como cliques, digitação, movimentação do mouse ou envio de formulários. Neste artigo vamos apresentar exemplos práticos para adicionar, manipular e controlar eventos, transformando elementos estáticos em componentes dinâmicos. O que são eventos na web? Eventos na web são interações que ocorrem em uma página ou aplicação, representando ações realizadas pelos usuários ou pelo sistema. Eles englobam desde simples cliques em botões até a digitação de caracteres e a movimentação do mouse. Quando um evento é acionado, ele pode desencadear respostas específicas do navegador, permitindo interações dinâmicas com elementos da página. Alguns exemplos de eventos comuns: Clique (click): quando o usuário clica em um elemento; Movimentação do mouse (mousemove): quando o mouse se move sobre um elemento; Teclado (keydown, keyup): quando uma tecla é pressionada ou liberada; Carregamento de página (load): quando um recurso ou a página inteira é carregado; Formulários (submit): quando um formulário é enviado. Estes eventos são a base para criar comportamentos dinâmicos, e a manipulação adequada deles possibilita melhorar a interatividade da página e proporcionar uma experiência do usuário mais rica. Manipulação de eventos com JavaScript A manipulação de eventos em JavaScript é feita por meio de “ouvintes de eventos” (event listeners), que “ouvem” quando um evento específico acontece e, em seguida, executam uma função chamada manipulador de eventos (event handler). Adicionando um event listener O método “addEventListener” é uma maneira moderna e flexível de adicionar manipuladores de eventos a elementos HTML. Clique aqui! No exemplo acima, temos um botão com o atributo “id” definido como “MeuBotao”. Utilizamos o método “getElementById” para capturar esse botão e armazenar sua referência em uma constante chamada “button”. A partir disso, usamos o método “addEventListener” para associar um ouvinte ao evento de clique (click). Sempre que o botão for clicado, o navegador executará a função fornecida, que no caso, exibe um alerta na tela. Parâmetros nos Eventos Alguns eventos fornecem informações adicionais através de um objeto de evento, acessível como parâmetro da função associada. Este objeto contém detalhes como o elemento acionador e a posição do cursor. Exibição no navegador: Aqui, a função associada recebe um parâmetro chamado “event”, que contém informações sobre o evento. Utilizamos “event.target.tagName” para exibir no console o nome do elemento clicado (neste caso, será “INPUT”). Isso pode ser útil para validar entradas de formulário em tempo real, fornecendo feedback instantâneo ao usuário, rastrear cliques, analisar o comportamento do usuário ou criar elementos interativos baseados na posição do clique. Removendo um Event Listener Quando precisamos evitar que um comportamento previamente associado a um evento continue ocorrendo, podemos utilizar o método “removeEventListener”. Essa abordagem é útil em situações onde a funcionalidade precisa ser desativada temporária ou permanentemente, como pausar interações em um botão após um clique ou desativar um evento de movimento do mouse para melhorar o desempenho. Para usar esse método, é necessário que a função associada ao evento tenha um nome definido. Ativar Desativar A função “mostrarMensagem” é adicionada ao evento click do botão “Ativar” usando “addEventListener”. No botão “Desativar”, usamos “removeEventListener” para remover o evento associado ao botão “Ativar”. Um alerta é exibido para informar que o evento foi desativado. Eventos comuns Existem diversos eventos disponíveis em JavaScript. Vamos explorar os mais utilizados, organizados por categoria. Eventos do Mouse Evento Descrição click Disparado ao clicar em um elemento. dblclick Disparado ao dar um duplo clique. mouseenter Disparado ao mover o cursor para um elemento. mouseout Disparado ao mover o cursor para fora de um elemento. mousemove Disparado ao mover o cursor dentro de um elemento. Agora vamos exemplificar utilizando o evento “’mousemove”: Passe o mouse aqui No console do navegador fica da seguinte forma: No exemplo acima, o evento “mousemove” é usado para detectar o movimento do cursor dentro da área. O objeto “event” fornece as coordenadas do cursor, acessadas através de “event.clientX” e “event.clientY”, que são exibidas no console. Eventos de input Esses eventos monitoram interações em campos de entrada de dados. Eles podem ser utilizados para destacar visualmente os campos ativos em um formulário, ajudando o usuário a identificar claramente onde está digitando. Evento Descrição input Disparado sempre que o valor de um campo muda. focus Disparado quando um campo recebe o foco. blur Disparado quando um campo perde o foco. Exemplo com evento “focus” e “blur”: No navegador será apresentado da seguinte forma: O evento focus altera a cor de fundo do campo para amarelo quando ele recebe o foco, ou seja, quando clicamos no input. Já o evento blur restaura a cor original quando o campo perde o foco. Eventos do teclado Esses eventos lidam com interações relacionadas ao teclado. Eles são úteis para implementar funcionalidades como atalhos de teclado, captura de comandos personalizados, preenchimento dinâmico de campos ou interações baseadas em teclas específicas Evento Descrição keydown Disparado ao pressionar uma tecla. keyup Disparado ao soltar uma tecla. Abaixo temos um exemplo de tratamento do evento keydown Neste exemplo, o evento “keydown” é usado para capturar a tecla pressionada pelo usuário. O texto exibido no elemento com id definido como “Resultado” é atualizado com a tecla correspondente, acessada através de “event.key”. Conclusão Existem muitos outros eventos além dos mostrados, e para cada necessidade específica, você deve buscar o evento que melhor se adequa ao seu caso. A escolha do evento certo depende do comportamento que você deseja capturar, como interações do usuário, mudanças no conteúdo ou animações. Com a prática, você aprenderá a combinar eventos e a criar comportamentos dinâmicos para melhorar a experiência do usuário. Consulte a documentação para explorar mais opções e aprimorar suas habilidades em JavaScript.
Formulários em HTML: Conheça os tipos de input

Formulários em HTML são uma das principais ferramentas para coletar informações dos usuários em websites. Através deles, podemos enviar dados para o servidor, registrar informações de login, realizar pesquisas, fazer cadastros, entre outros. A tag “<form>” é a estrutura básica para criar um formulário, e dentro dela podemos usar diversos tipos de inputs para coletar diferentes tipos de dados. Neste artigo, vamos explorar os diferentes tipos de input que podem ser usados dentro de um formulário, como utilizá-los corretamente, e discutir boas práticas para garantir que os formulários sejam acessíveis e funcionais. Estrutura básica de um formulário A estrutura básica de um formulário em HTML envolve a tag “<form>”, que envolve todos os elementos do formulário, incluindo os inputs. O formulário também deve conter o atributo “action”, que define para onde os dados serão enviados, e o atributo “method”, que define o método HTTP utilizado para o envio (geralmente GET ou POST). Além disso, um “<input type=”submit”>” é responsável por enviar as informações preenchidas no formulário para o destino especificado no “action”. Este botão desencadeia o envio dos dados e a execução do método definido. Agora, vamos examinar os diferentes tipos de inputs que podem ser usados dentro de um formulário. Campo de texto O campo de texto é um dos tipos de input mais comuns, usado para capturar informações simples, como nomes e endereços. Nome: Como fica no navegador: No exemplo acima, utilizamos um campo de texto para capturar o nome do usuário. Uma “” foi adicionada acima para orientar sobre a informação a ser inserida. Abaixo, há um “input” do tipo “submit” que envia o formulário preenchido ao servidor, criando uma interface clara. Podemos adicionar configurações como o atributo “id”, que identifica de forma única o elemento na página e permite que ele seja vinculado à “” por meio do atributo “for”. Isso melhora a acessibilidade e facilita a interação com scripts e CSS. O atributo “name” define a chave para enviar os dados ao submeter o formulário. No exemplo, “name=”nome”” faz com que o valor inserido seja enviado como parte dos dados com a chave “nome”, para que o servidor o processe. O atributo “required” indica que o campo é obrigatório. Se o formulário for enviado sem preencher esse campo, o navegador mostra uma mensagem de validação, garantindo que o usuário insira as informações necessárias antes de prosseguir. Campo de senha O campo de senha é usado quando queremos esconder a entrada do usuário, como em formulários de login ou cadastros onde o usuário precisa informar uma senha e não queremos que ela fique visível. Senha: Como fica no navegador: Campo de email Este campo é utilizado para coletar um endereço de e-mail e já realiza validação automática para verificar se o formato do e-mail está correto (por exemplo, nwe@dominio.com). E-mail: Como fica no navegador: Campo de número O campo de número permite que o usuário insira apenas números, e você pode definir atributos como “min” e “max” para restringir os valores permitidos. Idade: Como fica no navegador: Se o usuário inserir um valor fora do intervalo especificado, o navegador exibirá uma mensagem de erro. Por exemplo, ao informar um número menor que 18 ou maior que 100, será mostrada uma mensagem de validação para que o usuário corrija o valor. Campo de data Esse tipo de input permite que o usuário selecione uma data no formato adequado, com o calendário sendo exibido automaticamente na maioria dos navegadores. Data do Evento: Como fica no navegador: Você também pode utilizar os atributos “min” e “max” para restringir as datas selecionáveis no campo de data. No exemplo abaixo, as datas anteriores a 9 de novembro de 2024 e as datas posteriores a 31 de dezembro de 2024 não são permitidas: Assim, o usuário será obrigado a escolher uma data dentro do intervalo especificado, garantindo maior controle sobre as entradas: Caixa de Seleção As caixas de seleção permitem que o usuário selecione uma ou mais opções. Pode ser útil em formulários de consentimento ou preferências. Receber Newsletter: Como fica no navegador: Botões de Opção Os botões de opção (radio buttons) são usados quando o usuário deve escolher apenas uma opção entre várias. Todos os botões de opção dentro de um grupo devem ter o mesmo valor para o atributo name. Sexo: Masculino Feminino Como fica no navegador: Campo de Arquivo Este campo permite que o usuário selecione arquivos de seu dispositivo para enviar junto com o formulário. É comumente usado, por exemplo, quando um usuário precisa adicionar uma foto de perfil ou enviar documentos. Escolha um Arquivo: Como fica no navegador: Após selecionar o arquivo, o nome e a extensão aparecem para que o usuário tenha certeza do arquivo escolhido antes de enviá-lo. Este tipo de input também permite a adição de atributos como accept para definir quais tipos de arquivos são permitidos (ex: imagens, PDFs), proporcionando maior controle sobre as entradas aceitas. Neste exemplo, o campo de upload aceitará apenas arquivos com as extensões .jpg, .jpeg ou .png. Isso restringe o tipo de arquivo que o usuário pode selecionar, proporcionando maior controle sobre os uploads e melhorando a experiência do usuário ao evitar arquivos não desejados. Campo Textarea Enquanto o input do tipo “text” representa um campo de texto de apenas uma linha, às vezes é necessário incluir um texto maior, com múltiplas linhas. Para esses casos usamos a tag “<textarea>”. Diferente dos anteriores, ela não é uma variação da tag “<input>”, mas sim um elemento diferente. Descrição: Os atributos “rows” e “cols” definem, respectivamente, a quantidade de linhas e colunas padrão do campo. Consequentemente, definem seu tamanho inicial. O resultado no browser é o seguinte: Campo Dropdown Também é possível criar campos de seleção do tipo “dropdown” no HTML. Para isso usamos a tag “<select>” e cada opção é representada pela tag “<option>”: Horário: Manhã Tarde Noite Observe que assim como nas tags “<input>” e “<textarea>”, também usamos os atributos “id” e “name” para identificar o campo. Já na tag “<option>”,
Adicionando JavaScript à sua página HTML

Incorporar JavaScript em uma página HTML é uma prática essencial para desenvolvedores web que desejam adicionar interatividade e dinamismo ao conteúdo. Nos artigos anteriores, discutimos os fundamentos do HTML e como adicionar CSS a uma Página HTML, que formam a base da estrutura e do estilo de uma página web. Agora, ao integrar o JavaScript, completamos o trio de tecnologias que possibilitam a construção de experiências interativas e dinâmicas para os nossos usuários. Para que serve JavaScript? O JavaScript é uma linguagem de programação, inicialmente voltada para o desenvolvimento de funcionalidades dinâmicas e interativas em páginas web. Enquanto o HTML define a estrutura e o CSS estiliza o conteúdo, o JavaScript adiciona comportamento ao site, permitindo a criação de animações, validação de formulários, interações complexas com o usuário e até mesmo o controle de elementos na página sem a necessidade de recarregamento. Isso torna a experiência do usuário mais rica e responsiva, uma vez que é possível responder rapidamente às ações do visitante, como cliques, teclas pressionadas e outras interações. Como incorporar JavaScript no HTML Conforme veremos a seguir, existem algumas abordagens possíveis para adicionar código JavaScript em uma página HTML. Cada uma possui características específicas que a torna mais ou menos adequada para cada cenário. JavaScript inline em atributos HTML A forma mais direta de adicionar JavaScript é incorporá-lo diretamente nos atributos de elementos HTML, como o “onclick”, e outros eventos. Esse método é útil para pequenas funções ou eventos específicos, mas tem limitações quando se trata de manutenção e organização do código. Por exemplo: Clique-me Neste exemplo, o código JavaScript alert(‘Botão clicado!’) está diretamente associado ao evento “onclick” do botão. Sempre que o botão for clicado, uma mensagem de alerta aparecerá na tela. Vantagens e desvantagens do JavaScript inline Vantagens: simples de implementar para ações específicas e pequenas; Desvantagens: torna o HTML desorganizado e difícil de manter em projetos maiores. Mistura lógica de programação com marcação, o que pode dificultar a manutenção. JavaScript em uma tag script local no HTML Usar a tag “<script>” dentro do próprio arquivo HTML permite escrever código JavaScript mais estruturado e organizado, sem misturá-lo diretamente com a marcação HTML. Esse método é útil para scripts curtos e funciona bem para páginas em que o JavaScript não será reutilizado. JavaScript em Tag Script Clique-me Aqui, a função “exibirMensagem()” está definida dentro de uma tag “<script>” que está dentro do <head>. Quando o botão é clicado, o evento “onclick” chama essa função, exibindo o alerta. Neste exemplo, temos uma abordagem mista, uma vez que utilizamos o evento “onclick” diretamente na tag <button>. Porém, também é possível fazer todo o trabalho dentro da tag <script>, sem “misturar” HTML com JavaScript: JavaScript em Tag Script Clique-me No exemplo acima, atribuímos um id ao botão, para facilitar a referência a ele dentro do JavaScript. E lá na tag <script>, utilizamos o método “document.getElementById” para obter essa referência. Em seguida, com o botão referenciado, chamamos o método “addEventListener”, que atribui uma função ao evento “click” do elemento. Dessa forma, o código HTML ficou mais limpo e toda lógica de programação ficou restrita ao bloco de JavaScript. Onde colocar a tag <script>: <head> ou <body> No <head>: colocar o JavaScript no <head> significa que ele será carregado antes de o conteúdo da página ser exibido. Isso pode aumentar o tempo de carregamento para o usuário, especialmente em scripts maiores, já que o navegador precisa processar o JavaScript antes de renderizar o conteúdo; No <body>: colocar a tag <script> no final do <body> permite que o conteúdo da página seja carregado primeiro, melhorando a experiência do usuário ao reduzir o tempo de carregamento inicial. Essa abordagem é recomendada para scripts que não precisam ser executados imediatamente. JavaScript em arquivo Externo Por fim, em projetos maiores ou em que o JavaScript é reutilizado, o uso de um arquivo JavaScript externo é a prática mais recomendada. Isso mantém o código organizado, facilita a manutenção e permite que o arquivo seja armazenado em cache pelo navegador, acelerando o carregamento das próximas visitas. Para exemplificar, vamos criar um arquivo chamado “script.js” na pasta do nosso projeto e adicionar uma função. Organização dos arquivos: Código JavaScript que deve ser armazenado no arquivo “script.js”: function exibirMensagem() { alert(‘Mensagem a partir de uma tag script!’); } document.getElementById(‘btnAlerta’).addEventListener(‘click’, exibirMensagem); Agora vamos incluir o arquivo externo na página HTML usando a tag <script src=”script.js”></script>: JavaScript com Arquivo Externo Clique-me O atributo “defer”, ou em português “adiar”, é adicionado à tag <script> para indicar que o navegador deve carregar o script de forma assíncrona e executá-lo apenas após o carregamento completo do HTML, melhorando o desempenho. Vantagens e desvantagens do JavaScript externo Vantagens: Código mais organizado, fácil de manter e reutilizável em múltiplas páginas. Pode ser armazenado em cache, aumentando a velocidade de carregamento nas visitas subsequentes; Desvantagens: Requer o gerenciamento dos arquivos externos e a definição correta dos caminhos no HTML. Conclusão Escolher como e onde adicionar JavaScript ao HTML depende das necessidades do projeto e do impacto na performance. Para scripts simples e específicos, o uso inline pode ser suficiente, mas para projetos maiores, o ideal é manter o JavaScript em arquivos externos e carregar esses arquivos de forma que não atrasem o carregamento da página. Compreender essas diferenças permite que desenvolvedores escolham as melhores práticas para garantir uma experiência de usuário eficiente e fluida.
Adicionando CSS a uma página HTML

O CSS (Cascading Style Sheets) é uma linguagem de estilo utilizada para definir a apresentação de documentos HTML. Ao separar a estrutura (HTML) da apresentação (CSS), é possível criar páginas web mais organizadas, manuteníveis e esteticamente agradáveis. Neste artigo vamos explorar as diferentes maneiras de incluir CSS em uma página HTML, apresentar exemplos práticos e discutir boas práticas para a organização do CSS. Antes de começarmos, se você está dando os primeiros passos no desenvolvimento web, recomendamos a leitura do artigo Como criar sua primeira página HTML. Ele fornece uma base sobre HTML, a linguagem de marcação que dá estrutura às páginas web. Com esse conhecimento, você estará pronto para avançar na personalização visual com CSS, que abordaremos a seguir. Para que serve CSS? Assim como o HTML define a estrutura do conteúdo, o CSS define como os elementos HTML devem ser exibidos visualmente. Isso pode incluir a definição de cores, fontes, espaçamentos, alinhamentos e até animações. Estrutura do CSS O CSS utiliza uma estrutura simples composta por propriedades e valores. Propriedade: É o que será alterado no elemento HTML, como color (cor), font-size (tamanho da fonte), margin (margem), entre outros. Valor: Define o comportamento da propriedade, como red (vermelho) para color ou 24px para font-size. Cada conjunto de propriedade+valor é chamado de declaração (declaration) e quando inseridos no atributo style de um elemento, ou seja, de forma inline como veremos a seguir, devem ser separados por ponto e vírgula, da seguinte forma: color: red;font-size: 24px; Porém, quando o CSS é declarado dentro da tag <style> ou em um arquivo externo, sua estrutura é composta por regras (rules), cuja estrutura é a seguinte: Cada regra é composta por um seletor e um bloco de declarações. O seletor é a especificação de quais elementos HTML serão afetados pelas declarações. Por exemplo, podemos aplicar uma regra a todas as tags <p> de uma página. Tipos de inclusão de CSS Estilos inline Estilos inline são aplicados diretamente aos elementos HTML usando o atributo “style”. Isso pode ser útil em situações pontuais, nas quais você precisa aplicar um estilo específico e rápido, sem mexer no restante do código. Título com Estilo Inline No código acima, são definidos os estilos a serem aplicados ao elemento <h1>. Cada propriedade é seguida de um valor. Prós: Simplicidade: é fácil e rápido adicionar estilos inline diretamente em um elemento. Específico: os estilos aplicam-se imediatamente ao elemento específico, sem afetar outros. Contras: Difícil de manter: em projetos maiores, fica confuso controlar e ajustar múltiplos estilos inline. Não reutilizável: cada estilo precisa ser redefinido para cada elemento, o que resulta em repetição de código. “Poluição do código”: misturar conteúdo (HTML) com estilo (CSS) pode tornar o código HTML bagunçado e difícil de ler. Estilos internos Os estilos internos são definidos dentro da tag “<style>” no “<head>” da página HTML. Esta abordagem é útil para quando você precisa aplicar estilos a uma única página, sem a necessidade de criar um arquivo CSS separado. No exemplo acima foi especificado o seletor, que define quais elementos serão afetados pelo estilo (neste caso, as tags <body> e <h1>), seguidos das regras CSS que definem as modificações a serem aplicadas a esses elementos, como a cor de fundo da página e a cor do texto dos cabeçalhos. Prós: Centralizado por página: todos os estilos são agrupados em um só lugar, dentro da própria página HTML. Sem arquivos externos: você não precisa de arquivos CSS adicionais, o que pode ser conveniente para páginas simples ou temporárias. Contras: Não reutilizável: os estilos internos só afetam aquela página específica, tornando difícil aplicar os mesmos estilos em outras páginas. Pouco eficiente: se várias páginas precisarem dos mesmos estilos, você terá que duplicar o código, o que prejudica a manutenção. Diminui a separação de responsabilidades: embora melhor que o estilo inline, ainda mistura HTML com CSS, dificultando a organização em projetos maiores. Estilos externos A forma mais organizada e recomendada de adicionar CSS a uma página web é utilizando um arquivo externo. Com essa abordagem, você pode separar os estilos em um arquivo .css independente, permitindo reutilização e fácil manutenção em várias páginas. No seu editor de código, crie um arquivo com o nome de sua preferência (ex: “estilo.css”) dentro de uma pasta chamada estilos. Neste arquivo, adicione suas regras de estilo CSS. Por exemplo: body { background-color: #f0f0f0; } p { color: red; } Agora, abra seu arquivo HTML (ex: index.html) e adicione o link para o arquivo CSS no cabeçalho do documento, entre as tags <head> e </head>. Veja o exemplo: Salve ambos os arquivos (index.html e estilos/estilo.css) e abra o HTML no navegador. Se tudo foi feito corretamente, o texto do parágrafo deverá aparecer na cor vermelha. Vantagens do CSS externo O uso de arquivos CSS externos traz várias vantagens: Manutenção simplificada: Alterar um arquivo CSS pode atualizar o estilo de várias páginas simultaneamente, sem a necessidade de modificar cada documento HTML individualmente. Reutilização: Você pode reutilizar o mesmo arquivo CSS em diferentes páginas ou até em diferentes projetos. Separação de responsabilidades: O conteúdo (HTML) e a apresentação (CSS) ficam separados, o que promove um código mais limpo e organizado. Conclusão Existem diversas maneiras de incluir CSS em uma página HTML, cada uma com seus prós e contras. Para projetos simples, estilos inline ou internos podem funcionar, mas para projetos maiores, é essencial seguir as boas práticas e utilizar estilos externos, mantendo uma clara separação entre conteúdo e apresentação. Agora que você sabe como incluir CSS em suas páginas HTML, pode explorar as diversas possibilidades que essa linguagem de estilização oferece, alterando a aparência de suas páginas.
Como criar sua primeira página HTML

HTML (HyperText Markup Language) é a base de toda página web. Se você está começando a aprender desenvolvimento web, entender HTML é o primeiro passo essencial. Neste artigo, vamos explorar o que é HTML, como ele funciona e guiá-lo passo a passo na criação da sua primeira página HTML. Introdução ao HTML HTML é uma linguagem de marcação usada para criar e estruturar o conteúdo de páginas na web. Ele funciona organizando textos, imagens, links e outros elementos em uma página, permitindo que os navegadores entendam e exibam corretamente essas informações. Cada página na web é construída com HTML, o que torna esse conhecimento crucial para qualquer desenvolvedor web. Saber o básico de HTML permite que você crie páginas simples e compreenda o funcionamento de sites mais complexos. Conforme você avança, poderá integrar outras tecnologias, como CSS e JavaScript, mas tudo começa com o HTML. Passo a passo para criar a primeira página Agora que entendemos o que é o HTML, vamos criar a sua primeira página. Abrir um editor de texto Para começar, você pode usar qualquer editor de texto simples, como o Bloco de Notas no Windows ou um editor mais sofisticado como o Visual Studio Code (VS Code), que facilita a escrita de código com sugestões automáticas e realce de sintaxe. Para o nosso exemplo utilizaremos o Visual Studio Code. Criar o arquivo .html Selecione ou crie uma pasta no seu computador onde deseja armazenar sua página HTML. Essa pasta será o local onde seus arquivos HTML e outros recursos (como imagens e folhas de estilo) serão mantidos organizados. Após selecionar, crie um novo arquivo. Ao salvar o arquivo, dê um nome que faça sentido para o conteúdo da página. Por exemplo, se for sua primeira página, um nome como “minhaPagina.html” funciona bem. Certifique-se de salvar o arquivo com a extensão .html, pois isso indica ao sistema e ao navegador que este é um arquivo HTML. Agora é só clicar no arquivo criado e você está pronto para começar a escrever o código HTML! Inserir a estrutura básica No seu arquivo HTML, insira a seguinte estrutura básica de um documento HTML: Minha Primeira Página HTML Para entendermos a estrutura básica que envolve um documento HTML, podemos fazer uma analogia com o corpo humano, em que temos a cabeça (<head>) e o corpo (<body>), cada uma com sua função específica. Declaração <!DOCTYPE html> No topo do documento HTML, temos a declaração <!DOCTYPE html>. Ela informa ao navegador que o arquivo deve ser interpretado como HTML5, que é a versão mais recente da linguagem de marcação até o momento. Isso é fundamental para que o navegador entenda corretamente o conteúdo da página e aplique as regras adequadas ao exibir o seu site. A tag <html> Logo após a declaração <!DOCTYPE html>, encontramos a tag <html>, que envolve todo o conteúdo da página web. Tudo dentro desta tag faz parte do documento HTML. A tag <html> também pode incluir o atributo “lang” para definir o idioma da página. Por exemplo, lang=”pt-br” define que a página está em português do Brasil. Cabeça (<head>) – O cérebro do documento Dentro da tag <html>, temos a tag <head>, que funciona como o cérebro de uma página web. Assim como a cabeça de uma pessoa armazena informações importantes (como o cérebro, que processa tudo), a tag <head> armazena dados essenciais para o funcionamento da página, mas que não são diretamente visíveis para o usuário. Dentro dela podemos colocar informações como: Meta informações: a tag <meta charset=”UTF-8″> define a codificação de caracteres, garantindo que letras acentuadas e símbolos sejam exibidos corretamente. Caso esta tag não seja utilizada, o navegador não sabe qual codificação de caracteres deve usar. Como resultado, ele pode interpretar os acentos de maneira errada, substituindo-os por símbolos estranhos. Por exemplo, em um parágrafo como: <p>Essa é uma página com caracteres acentuados: á, é, í, ó, ú, ç.</p> A exibição no navegador pode ficar assim: “Essa é uma página com caracteres acentuados: á, é, Ã, ó, ú, ç.” Título da página: a tag <title> define o nome da página que aparece na aba do navegador, semelhante ao exemplo abaixo. Links externos: como arquivos de CSS (para definir o estilo da página) ou scripts de JavaScript (para adicionar interatividade). Mesmo que o conteúdo do <head> não seja visível no navegador, ele é crucial para a interpretação correta do documento, assim como o cérebro é vital para o funcionamento do corpo. Corpo (<body>) – O que é visível A tag <body>, por outro lado, é o que define o corpo da página web, ou seja, tudo o que o usuário realmente vê e interage. Assim como no corpo humano, onde os braços, pernas e rosto são visíveis, tudo dentro do <body> aparece na tela do navegador. No <body>, podemos incluir: Títulos: o <h1> é usado para o título principal da página, que geralmente tem maior destaque. Ex: <h1>Bem-vindo à minha página!</h1> Parágrafos: o <p> é utilizado para blocos de texto descritivos ou explicativos. Ex: <p>Essa é a minha primeira página HTML.</p> Imagens: o <img> exibe uma imagem no navegador. Ele tem um atributo chamado “src” que define a localização da imagem, e um outro atributo chamado “alt” que descreve a imagem caso ela não seja carregada. Caso a você tenha o link de uma imagem, você pode adicionar da seguinte forma: Ex:<img src=”C:/arquivos/imagem.png” alt=”Imagem de exemplo” /> Links: o <a> cria um hiperlink que vai direcionar o usuário para uma outra página ou para um link interno. Ele tem o atributo “href” que define o endereço do link, e o “target=”_blank”” que vai informar ao navegador que o link deve ser aberto em uma nova aba. Ex: <p>Se quiser aprender mais sobre programação, visite o site da <a href=”https://nextwave.education/” target=”_blank”>Next Wave Education</a> para mais informações.</p> Essa separação clara entre a cabeça (<head>) e o corpo (<body>) permite que a página seja organizada de forma lógica. A cabeça contém as instruções e configurações para o navegador, enquanto o corpo exibe os elementos visíveis e interativos para