From 7c40347e9c060f926456c1fc77b66c3c96d263ab Mon Sep 17 00:00:00 2001 From: Roberta Azambuja Date: Mon, 13 Oct 2025 14:16:06 -0300 Subject: [PATCH 01/13] =?UTF-8?q?Removendo=20conte=C3=BAdo=20repetido=20da?= =?UTF-8?q?=20introdu=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dia-01/01-introducao-css/01-conteudo.md | 92 +++---------------------- 1 file changed, 8 insertions(+), 84 deletions(-) diff --git a/dia-01/01-introducao-css/01-conteudo.md b/dia-01/01-introducao-css/01-conteudo.md index e6e195c..cc8bee2 100644 --- a/dia-01/01-introducao-css/01-conteudo.md +++ b/dia-01/01-introducao-css/01-conteudo.md @@ -1,17 +1,19 @@ -### Introdução ao CSS +# Introdução ao CSS -#### O que é CSS? +Agora que você já aprendeu a estruturar uma página utilizando HTML, chegou o momento de aprender como **estilizar** seus conteúdos e deixá-los visualmente atraentes. Enquanto o HTML cuida da **estrutura** e do **conteúdo**, o CSS cuida do **design** e da **experiência visual** do usuário. Eles trabalham juntos para criar páginas completas e bem apresentadas. + +## O que é CSS? CSS, ou Cascading Style Sheets (Folhas de Estilo em Cascata), é uma linguagem de estilização utilizada para descrever a apresentação de documentos escritos em HTML ou XML. Ele foi criado para possibilitar a separação entre o conteúdo (HTML) e a apresentação (CSS), promovendo uma maior flexibilidade e eficiência no desenvolvimento de páginas web. Através do CSS, é possível controlar vários aspectos visuais dos elementos HTML, como cores, espaçamentos, fontes, tamanhos e layout geral da página. Com CSS, desenvolvedores conseguem criar páginas visualmente atraentes e responsivas, o que melhora a experiência do usuário e facilita o processo de manutenção do site. -#### Vantagens do CSS +## Vantagens do CSS - **Separação de Conteúdo e Estilo**: Com CSS, o conteúdo HTML fica mais organizado e sem estilos embutidos, permitindo que a apresentação da página seja gerida em arquivos externos. - **Reutilização de Código**: As regras CSS podem ser aplicadas a múltiplos elementos e páginas, economizando tempo e esforço. - **Manutenção Facilitada**: Alterar o estilo em um único arquivo CSS reflete automaticamente em todas as páginas que o utilizam. - **Compatibilidade com Diferentes Dispositivos**: Com CSS, é possível criar páginas responsivas, adaptáveis a diferentes resoluções e tamanhos de tela. -#### Sintaxe Básica do CSS +## Sintaxe Básica do CSS A estrutura de uma regra CSS é composta por um **seletor**, uma **propriedade** e um **valor**. ```css @@ -33,7 +35,7 @@ p { ``` No exemplo acima, todas as tags `

` no HTML terão texto na cor azul e tamanho de fonte 16 pixels. -#### Formas de Incluir CSS +## Formas de Incluir CSS O CSS pode ser inserido de três maneiras em um documento HTML: **inline**, **interno** e **externo**. 1. **CSS Inline**: @@ -71,82 +73,4 @@ O CSS pode ser inserido de três maneiras em um documento HTML: **inline**, **in color: blue; font-size: 16px; } - ``` - -#### Cascata e Especificidade -CSS significa **Cascading Style Sheets** (Folhas de Estilo em Cascata), e o termo "cascata" refere-se a como o navegador decide qual regra aplicar em situações onde múltiplas regras podem se sobrepor. As regras seguem uma hierarquia baseada na **especificidade** dos seletores: - -1. **Estilo Inline**: Tem a maior prioridade. -2. **ID**: Seletores de ID (`#id`) têm mais prioridade do que classes e tags. -3. **Classes e Pseudo-Classes**: Seletores de classe (`.classe`) e pseudo-classes (`:hover`, por exemplo) possuem prioridade inferior ao ID. -4. **Elementos**: Seletores de elemento (`p`, `h1`, etc.) têm a prioridade mais baixa. - -**Exemplo de Cascata e Especificidade**: -```html - - -

Texto de exemplo

-``` - -Nesse exemplo: -- A regra do ID (`#special`) tem prioridade sobre a classe `.highlight` e o seletor de elemento `p`. -- O texto será exibido em verde, pois o ID tem maior especificidade. - -#### Unidades CSS -CSS oferece várias unidades para definir tamanhos, incluindo: -- **px**: Pixels (medida fixa). -- **em** e **rem**: Medidas relativas ao tamanho da fonte do elemento pai (`em`) ou da raiz (`rem`). -- **%**: Percentual, útil para layouts responsivos. - -Exemplo: -```css -h1 { - font-size: 2em; /* duas vezes o tamanho da fonte do elemento pai */ -} -``` - -#### Seletores Comuns -1. **Seletor de Elemento**: Aplica estilos a todas as instâncias de um elemento HTML específico. - ```css - h1 { - color: blue; - } - ``` - -2. **Seletor de Classe**: Aplica estilos a elementos com uma classe específica. - ```css - .titulo { - font-size: 24px; - color: red; - } - ``` - -3. **Seletor de ID**: Aplica estilos a um elemento com um ID específico. - ```css - #principal { - background-color: yellow; - } - ``` - -#### CSS Responsivo -O CSS também oferece recursos para a criação de layouts responsivos, que se ajustam automaticamente a diferentes tamanhos de tela. Um dos principais métodos para isso são as **Media Queries**. - -Exemplo de Media Query: -```css -@media (max-width: 600px) { - body { - font-size: 14px; - } -} -``` -Neste exemplo, quando a largura da tela for menor que 600px, o tamanho da fonte será ajustado para 14px. \ No newline at end of file + ``` \ No newline at end of file From e42dca804497f47f5e30ec23d9d9389bd83c99e2 Mon Sep 17 00:00:00 2001 From: Roberta Azambuja Date: Tue, 14 Oct 2025 15:09:10 -0300 Subject: [PATCH 02/13] =?UTF-8?q?Conte=C3=BAdos=20sobre=20seletores?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dia-01/02-seletores-basicos/01-conteudo.md | 106 +++++++++++++++ dia-01/03-seletores-combinados/01-conteudo.md | 126 ++++++++++++++++++ 2 files changed, 232 insertions(+) create mode 100644 dia-01/02-seletores-basicos/01-conteudo.md create mode 100644 dia-01/03-seletores-combinados/01-conteudo.md diff --git a/dia-01/02-seletores-basicos/01-conteudo.md b/dia-01/02-seletores-basicos/01-conteudo.md new file mode 100644 index 0000000..899f20c --- /dev/null +++ b/dia-01/02-seletores-basicos/01-conteudo.md @@ -0,0 +1,106 @@ +# Seletores Básicos no CSS + +No CSS, utilizamos **seletores** para escolher quais elementos serão estilizados. Eles permitem aplicar estilos de forma precisa a partes específicas do conteúdo, e cada tipo de seletor permite um nível diferente de customização. + +--- + +## 1. **Seletores de Elemento** + Os seletores de elemento aplicam estilos a todas as instâncias de um elemento HTML específico. + + - **Sintaxe**: + ```css + elemento { + propriedade: valor; + } + ``` + + - **Exemplo**: + ```css + p { + color: black; + font-size: 16px; + } + ``` + Esse código aplica um estilo a todos os parágrafos `

` da página, definindo a cor do texto como preto e o tamanho da fonte como 16px. + + +## 2. **Seletores de Classe** + Os seletores de classe são utilizados para aplicar estilos a um ou mais elementos que possuam a mesma classe. Para selecionar uma classe no CSS, usa-se o ponto (`.`) seguido do nome da classe. + + - **Sintaxe**: + ```css + .nome-da-classe { + propriedade: valor; + } + ``` + + - **Exemplo**: + ```css + .destaque { + color: blue; + font-weight: bold; + } + ``` + + ```html +

Este texto será azul e em negrito.

+ Este texto também será azul e em negrito. + ``` + No exemplo acima, qualquer elemento com a classe `destaque` terá o texto azul e em negrito. + + +## 3. **Seletores de ID** + O seletor de ID é usado para aplicar estilos a um elemento específico. IDs são únicos, ou seja, cada ID deve ser usado apenas uma vez por página. Para declarar um ID, usa-se o símbolo `#` seguido do nome do ID no CSS. + + - **Sintaxe**: + ```css + #nome-do-id { + propriedade: valor; + } + ``` + + - **Exemplo**: + ```css + #principal { + background-color: lightgrey; + padding: 20px; + } + ``` + + ```html +
Este é o conteúdo principal da página.
+ ``` + Esse estilo será aplicado apenas ao elemento com o ID `principal`. + +--- + + +### Quando Usar IDs vs. Classes + +| Critério | ID | Classe | +|---------------------------------|--------------------------------------------|-----------------------------------------| +| **Aplicação** | Elemento único | Múltiplos elementos | +| **Especificidade** | Alta | Moderada | +| **Reutilização** | Não deve ser reutilizado | Pode ser reutilizado | +| **Exemplo de Uso** | Estilos exclusivos de um elemento específico, como um cabeçalho único | Estilos aplicáveis a vários itens, como botões de formulário | + +--- + +## 4. **Seletores de Atributo** +Os **seletores de atributo** são um tipo poderoso de seletor no CSS que permitem aplicar estilos a elementos HTML com base em atributos específicos, como `type`, `href`, `title`, entre outros. Esses seletores são especialmente úteis quando se deseja estilizar campos de formulários, links, ou qualquer elemento que possua atributos específicos, sem precisar adicionar classes ou IDs adicionais. + + - **Sintaxe**: + ```css + elemento[atributo="valor"] { + propriedade: valor; + } + ``` + + - **Exemplo**: + ```css + input[type="text"] { + border: 1px solid black; + padding: 5px; + } + ``` + Esse estilo será aplicado a todos os campos de entrada (``) do tipo `text`. \ No newline at end of file diff --git a/dia-01/03-seletores-combinados/01-conteudo.md b/dia-01/03-seletores-combinados/01-conteudo.md new file mode 100644 index 0000000..27b6c7f --- /dev/null +++ b/dia-01/03-seletores-combinados/01-conteudo.md @@ -0,0 +1,126 @@ +# Seletores Combinados e Agrupados + +Agora que você já conhece os **seletores básicos** do CSS (elemento, classe e ID), chegou o momento de aprender como combiná-los para criar estilos mais precisos e eficientes. +Essas combinações permitem selecionar elementos com base em **relações hierárquicas**, **múltiplas condições** ou **agrupamentos**, tornando o código mais limpo e poderoso. + +--- + +## 1. **Seletores de Grupo** +Os **seletores de grupo** permitem aplicar o mesmo conjunto de estilos a múltiplos elementos HTML ao mesmo tempo. Isso não apenas reduz a repetição de código, mas também facilita a manutenção do CSS. Os seletores de grupo são separados por vírgulas e funcionam de forma similar a selecionar um único elemento, mas abrangem vários elementos simultaneamente. +- **Sintaxe** + ```css + seletor1, seletor2, seletor3 { + propriedade: valor; + } + ``` + +- **Exemplo** + ```css + h1, h2, h3 { + color: purple; + font-family: Arial, sans-serif; + } + ``` +Neste exemplo, todos os elementos `

`, `

`, e `

` terão a cor do texto roxa e a fonte Arial. Se um desses elementos for alterado no futuro, a alteração será refletida em todos os elementos agrupados, facilitando a manutenção. + +## 2. **Seletores Combinados** +Combinadores são usados para aplicar estilos baseados na relação entre elementos. Os principais combinadores incluem **descendentes**, **filhos**, **irmãos adjacentes**, e **irmãos gerais**. + +### 2.1 **Seletor Descendente (` `)**: +Estiliza elementos que são descendentes (não necessariamente filhos diretos) de um elemento pai específico. Ele aplica estilos a qualquer elemento que esteja dentro de um contêiner maior, independentemente da profundidade. + +- **Sintaxe**: + + ```css + pai elemento { + propriedade: valor; + } + ``` + +- **Exemplo**: + ```css + div p { + color: blue; + } + ``` + Neste exemplo, todos os parágrafos (`

`) dentro de qualquer `div` terão o texto na cor azul, não importa quantos níveis de aninhamento existam entre eles. + + + +### 2.2 **Seletor de Filho Direto (`>`)**: +Seleciona apenas filhos diretos de um elemento. + +- **Sintaxe**: + ```css + pai > filho { + propriedade: valor; + } + ``` + +- **Exemplo**: + ```css + div > p { + color: red; + } + ``` + Neste exemplo, apenas os `

` que são filhos diretos de uma `

` terão o texto em vermelho. + + +### 2.3 **Seletor de Irmão Adjacente (`+`)**: +O seletor adjacente aplica estilos ao primeiro elemento que aparece imediatamente após outro elemento. Esse seletor é útil quando você quer estilizar elementos que seguem imediatamente outro. + +- **Sintaxe**: + ```css + elemento1 + elemento2 { + propriedade: valor; + } + ``` + +- **Exemplo**: + ```css + h1 + p { + color: green; + } + ``` + Neste caso, o parágrafo (`

`) que aparece imediatamente após um `

` terá o texto na cor verde. + +### 2.4 **Seletor de Irmãos Gerais (`~`)**: +O seletor de irmãos gerais estiliza todos os elementos que aparecem após um elemento específico, desde que sejam "irmãos" no mesmo nível hierárquico do DOM. + +- **Sintaxe**: + ```css + elemento1 ~ elemento2 { + propriedade: valor; + } + ``` + +- **Exemplo**: + ```css + h1 ~ p { + color: purple; + } + ``` + Neste exemplo, todos os parágrafos (`

`) que aparecem após um `

`, no mesmo nível hierárquico, terão o texto em roxo. + +## 3. Seletor Universal + +O seletor universal (`*`) aplica estilos **a todos os elementos** de um documento. +Ele é útil para **resetar ou padronizar estilos** globais, porém é importante usá-lo com cautela, pois ele pode afetar a performance do seu site. + +- **Exemplo:** + ```css + * { + margin: 0; + padding: 0; + box-sizing: border-box; + } + ``` + +- Esse exemplo zera as margens e espaçamentos de todos os elementos, garantindo um comportamento mais previsível ao construir o layout. + +É comum usar o seletor universal em conjunto com outros seletores para limitar seu escopo. Por exemplo, você pode aplicar estilos a todos os elementos dentro de um contêiner específico: + +```css +.container * { + font-family: Arial, sans-serif; /* Aplica a fonte apenas aos elementos dentro da classe .container */ +} From db6654810424dd77ad9eaedec9f3e2aa3f9271e5 Mon Sep 17 00:00:00 2001 From: Roberta Azambuja Date: Wed, 15 Oct 2025 14:23:35 -0300 Subject: [PATCH 03/13] Removendo aulas antigas --- dia-01/02-seletores/01-conteudo.md | 223 ------------- dia-01/03-seletores-id/01-conteudo.md | 134 -------- dia-01/04-seletores-atributos/01-conteudo.md | 187 ----------- dia-01/05-seletores-combinados/01-conteudo.md | 205 ------------ dia-01/06-pseudo-classes/01-conteudo.md | 277 ---------------- dia-01/07-pseudo-elementos/01-conteudo.md | 251 -------------- dia-01/08-seletores-universais/01-conteudo.md | 117 ------- dia-01/09-seletores-grupo/01-conteudo.md | 53 --- dia-01/10-especificidade/01-conteudo.md | 116 ------- dia-01/10-especificidade/02-exercicios.md | 53 --- .../03-exercicio1-corrigido.md | 308 ------------------ 11 files changed, 1924 deletions(-) delete mode 100644 dia-01/02-seletores/01-conteudo.md delete mode 100644 dia-01/03-seletores-id/01-conteudo.md delete mode 100644 dia-01/04-seletores-atributos/01-conteudo.md delete mode 100644 dia-01/05-seletores-combinados/01-conteudo.md delete mode 100644 dia-01/06-pseudo-classes/01-conteudo.md delete mode 100644 dia-01/07-pseudo-elementos/01-conteudo.md delete mode 100644 dia-01/08-seletores-universais/01-conteudo.md delete mode 100644 dia-01/09-seletores-grupo/01-conteudo.md delete mode 100644 dia-01/10-especificidade/01-conteudo.md delete mode 100644 dia-01/10-especificidade/02-exercicios.md delete mode 100644 dia-01/10-especificidade/03-exercicio1-corrigido.md diff --git a/dia-01/02-seletores/01-conteudo.md b/dia-01/02-seletores/01-conteudo.md deleted file mode 100644 index 7663bf7..0000000 --- a/dia-01/02-seletores/01-conteudo.md +++ /dev/null @@ -1,223 +0,0 @@ -### Seletores CSS - -No CSS, **seletores** são utilizados para identificar os elementos HTML aos quais queremos aplicar estilos específicos. Esses seletores são essenciais para controlar o design e a aparência de uma página de maneira precisa, e cada tipo de seletor permite um nível de customização diferente. Vamos explorar os principais seletores CSS, com definições, exemplos, e práticas recomendadas. - ---- - -#### 1. **Seletores de Elemento** - Os seletores de elemento aplicam estilos a todas as instâncias de um elemento HTML específico. - - - **Sintaxe**: - ```css - elemento { - propriedade: valor; - } - ``` - - - **Exemplo**: - ```css - p { - color: black; - font-size: 16px; - } - ``` - Esse código aplica um estilo a todos os parágrafos `

` da página, definindo a cor do texto como preto e o tamanho da fonte como 16px. - ---- - -#### 2. **Seletores de Classe** - Os seletores de classe são utilizados para aplicar estilos a um ou mais elementos que possuam a mesma classe. Para declarar uma classe, usa-se o ponto (`.`) seguido do nome da classe no CSS. - - - **Sintaxe**: - ```css - .nome-da-classe { - propriedade: valor; - } - ``` - - - **Exemplo**: - ```css - .destaque { - color: blue; - font-weight: bold; - } - ``` - - ```html -

Este texto será azul e em negrito.

- Este texto também será azul e em negrito. - ``` - No exemplo acima, qualquer elemento com a classe `destaque` terá o texto azul e em negrito. - ---- - -#### 3. **Seletores de ID** - O seletor de ID é usado para aplicar estilos a um elemento específico. IDs são únicos, ou seja, cada ID deve ser usado apenas uma vez por página. Para declarar um ID, usa-se o símbolo `#` seguido do nome do ID no CSS. - - - **Sintaxe**: - ```css - #nome-do-id { - propriedade: valor; - } - ``` - - - **Exemplo**: - ```css - #principal { - background-color: lightgrey; - padding: 20px; - } - ``` - - ```html -
Este é o conteúdo principal da página.
- ``` - Esse estilo será aplicado apenas ao elemento com o ID `principal`. - ---- - -#### 4. **Seletores de Atributo** - Os seletores de atributo permitem aplicar estilos a elementos que possuem um atributo específico. Eles são especialmente úteis para estilizar elementos como links e campos de formulário. - - - **Sintaxe**: - ```css - elemento[atributo="valor"] { - propriedade: valor; - } - ``` - - - **Exemplo**: - ```css - input[type="text"] { - border: 1px solid black; - padding: 5px; - } - ``` - Esse estilo será aplicado a todos os campos de entrada (``) do tipo `text`. - ---- - -#### 5. **Seletores Combinados** - Combinadores são usados para aplicar estilos baseados na relação entre elementos. Os principais combinadores incluem **descendentes**, **filhos**, **irmãos adjacentes**, e **irmãos gerais**. - - - **Seletor Descendente**: Seleciona elementos descendentes de outro elemento. - - ```css - div p { - color: grey; - } - ``` - - - **Seletor de Filho Direto**: Seleciona apenas filhos diretos de um elemento. - - ```css - div > p { - color: blue; - } - ``` - - - **Seletor de Irmão Adjacente**: Seleciona o elemento imediatamente após um outro elemento. - - ```css - h1 + p { - font-size: 18px; - } - ``` - - - **Seletor de Irmãos Gerais**: Seleciona todos os elementos que são irmãos de um elemento. - - ```css - h1 ~ p { - color: red; - } - ``` - ---- - -#### 6. **Pseudo-classes** - As pseudo-classes permitem aplicar estilos baseados no estado de um elemento, como o hover de um botão ou o foco de um campo de formulário. - - - **Exemplo**: - ```css - a:hover { - color: red; - } - input:focus { - border-color: blue; - } - ``` - - No exemplo, o link muda para vermelho ao passar o mouse, e a borda do campo de entrada muda para azul quando ele está em foco. - ---- - -#### 7. **Pseudo-elementos** - Pseudo-elementos permitem estilizar uma parte específica de um elemento. Os principais pseudo-elementos incluem `::before`, `::after`, `::first-line`, e `::first-letter`. - - - **Exemplo**: - ```css - p::first-line { - font-weight: bold; - } - p::before { - content: "Nota: "; - font-weight: bold; - } - ``` - Aqui, a primeira linha de cada parágrafo estará em negrito, e o texto "Nota:" será inserido antes do conteúdo de cada `

`. - ---- - -#### 8. **Seletores Universais** - O seletor universal (`*`) aplica estilos a todos os elementos da página. É útil para resetar margens e paddings. - - - **Exemplo**: - ```css - * { - margin: 0; - padding: 0; - box-sizing: border-box; - } - ``` - Isso define margens e paddings como zero para todos os elementos, útil ao aplicar um reset de CSS. - ---- - -#### 9. **Seletores de Grupo** - Os seletores de grupo aplicam o mesmo estilo a vários elementos, separados por vírgulas. - - - **Exemplo**: - ```css - h1, h2, h3 { - color: purple; - font-family: Arial, sans-serif; - } - ``` - ---- - -#### 10. **Especificidade e Importância** - No CSS, **especificidade** e a **importância** determinam a prioridade dos estilos aplicados. - - - **Ordem de Especificidade**: - 1. Estilos inline têm a maior prioridade. - 2. IDs têm mais prioridade que classes. - 3. Classes, pseudo-classes, e atributos têm prioridade inferior aos IDs. - 4. Seletores de elementos têm a menor prioridade. - - - **Exemplo de Especificidade**: - ```css - /* Prioridade baixa */ - p { color: black; } - - /* Prioridade maior que o seletor de elemento */ - .texto { color: blue; } - - /* Prioridade maior que o seletor de classe */ - #principal { color: green; } - - /* Texto ficará verde pois o ID tem maior especificidade */ -

Texto

- ``` - ---- \ No newline at end of file diff --git a/dia-01/03-seletores-id/01-conteudo.md b/dia-01/03-seletores-id/01-conteudo.md deleted file mode 100644 index c722ab5..0000000 --- a/dia-01/03-seletores-id/01-conteudo.md +++ /dev/null @@ -1,134 +0,0 @@ -### Seletores de ID no CSS - -O **seletor de ID** é uma forma poderosa e específica de aplicar estilos a um elemento HTML único em uma página. Como os IDs devem ser únicos, ou seja, um mesmo ID não deve ser atribuído a mais de um elemento por página, ele é ideal para estilizar elementos únicos e conferir a eles uma alta prioridade de estilização. - ---- - -#### Como Funciona o Seletor de ID -No CSS, para definir o estilo de um elemento com ID, usamos o símbolo `#` seguido do nome do ID. Este seletor permite uma estilização precisa e, por conta de sua alta especificidade, tem prioridade sobre seletores de elementos e de classes. - -**Sintaxe**: -```css -#nomeDoID { - propriedade: valor; -} -``` - -**Exemplo**: -```css -#header { - background-color: #333; - color: white; - padding: 20px; - text-align: center; -} -``` - -Aqui, qualquer elemento HTML que tenha o ID `header` receberá um fundo escuro, texto em branco, padding de 20px e centralização de texto. - -No HTML, o ID é atribuído diretamente ao elemento com o atributo `id`: -```html - -``` - ---- - -#### Exemplos Práticos - -1. **Estilizando um Cabeçalho Único**: - ```css - #cabecalho { - background-color: blue; - padding: 10px; - font-size: 24px; - color: white; - } - ``` - ```html -
-

Meu Website

-
- ``` - -2. **Aplicando Estilo em Botão Específico**: - ```css - #botaoEnviar { - background-color: green; - color: white; - border: none; - padding: 10px 20px; - cursor: pointer; - } - ``` - ```html - - ``` - ---- - -#### Especificidade do Seletor de ID - -O CSS atribui uma **alta especificidade** ao seletor de ID, fazendo com que ele tenha mais prioridade que seletores de classes ou de elementos. Quando há conflitos de estilos entre diferentes seletores, o seletor de ID tem preferência. Esse comportamento torna-o uma boa escolha para elementos que necessitam de um estilo específico e fixo. - -**Exemplo de Conflito de Estilos**: -```css -/* Estilo genérico de elemento */ -p { - color: blue; -} - -/* Classe aplicável a vários elementos */ -.important { - color: red; -} - -/* ID com prioridade mais alta */ -#destaque { - color: green; -} -``` - -```html -

Texto em destaque

-``` - -Nesse caso, o texto do parágrafo será verde, pois o seletor de ID `#destaque` tem mais especificidade que o seletor de classe `.important` e o seletor de elemento `p`. - ---- - -#### Boas Práticas com o Seletor de ID - -- **Evite o Uso Excessivo de IDs**: Utilize IDs apenas para elementos únicos. Quando você precisa aplicar estilos a múltiplos elementos, é preferível usar classes. -- **Mantenha IDs Únicos**: IDs devem ser únicos em uma página. Reutilizar o mesmo ID em vários elementos pode gerar comportamentos inconsistentes, dificultando a depuração. -- **Combine IDs com Outros Seletores para Precisão**: Quando precisar de ainda mais precisão, combine o seletor de ID com outros seletores (como pseudo-classes) para criar seletores complexos, se necessário. - ---- - -#### Exemplo Avançado: Seletores de ID Combinados - -Você pode combinar seletores de ID com outros para aplicar estilos ainda mais específicos. Isso pode ser útil para aplicar estilos a um elemento específico em um estado específico (por exemplo, hover). - -```css -#menu:hover { - background-color: darkblue; -} - -#menu li.active { - font-weight: bold; -} -``` - -Neste exemplo, o ID `#menu` muda de cor ao passar o mouse, e o item da lista `
  • ` com a classe `active` dentro do `#menu` será exibido em negrito. - ---- - -#### Quando Usar IDs vs. Classes - -| Critério | ID | Classe | -|---------------------------------|--------------------------------------------|-----------------------------------------| -| **Aplicação** | Elemento único | Múltiplos elementos | -| **Especificidade** | Alta | Moderada | -| **Reutilização** | Não deve ser reutilizado | Pode ser reutilizado | -| **Exemplo de Uso** | Estilos exclusivos de um elemento específico, como um cabeçalho único | Estilos aplicáveis a vários itens, como botões de formulário | - ---- \ No newline at end of file diff --git a/dia-01/04-seletores-atributos/01-conteudo.md b/dia-01/04-seletores-atributos/01-conteudo.md deleted file mode 100644 index e58a5a8..0000000 --- a/dia-01/04-seletores-atributos/01-conteudo.md +++ /dev/null @@ -1,187 +0,0 @@ -### Seletores de Atributo no CSS - -Os **seletores de atributo** são um tipo poderoso de seletor no CSS que permitem aplicar estilos a elementos HTML com base em atributos específicos, como `type`, `href`, `title`, entre outros. Esses seletores são especialmente úteis quando se deseja estilizar campos de formulários, links, ou qualquer elemento que possua atributos específicos, sem precisar adicionar classes ou IDs adicionais. - ---- - -#### Como Funcionam os Seletores de Atributo - -No CSS, os seletores de atributo são definidos entre colchetes (`[]`). Eles podem selecionar elementos que possuem um atributo específico ou valores de atributo específicos. Os seletores de atributo têm várias variações para permitir um controle mais detalhado sobre os elementos a serem estilizados. - -**Sintaxe Básica**: -```css -elemento[atributo] { - propriedade: valor; -} -``` - -**Exemplo**: -```css -a[target] { - color: blue; -} -``` -Esse seletor aplica um estilo a todos os links `` que possuem o atributo `target`. - ---- - -#### Tipos de Seletores de Atributo - -1. **Seletor de Atributo Simples** - - Seleciona elementos que possuem um atributo específico, independentemente do valor. - - **Exemplo**: - ```css - input[required] { - border: 2px solid red; - } - ``` - Esse código aplica uma borda vermelha a todos os campos de entrada (``) que possuem o atributo `required`. - ---- - -2. **Seletor de Atributo com Valor Específico** - - Seleciona elementos onde o atributo possui exatamente o valor especificado. - - **Exemplo**: - ```css - input[type="text"] { - background-color: lightyellow; - } - ``` - Aqui, apenas os campos de entrada do tipo `text` terão um fundo amarelo claro. - ---- - -3. **Seletor de Atributo que Contém uma Palavra** - - Seleciona elementos onde o atributo contém uma palavra específica. Usa o operador `~=`. - - **Exemplo**: - ```css - [title~="importante"] { - color: red; - } - ``` - Esse seletor aplica a cor vermelha ao texto de elementos que contêm a palavra "importante" no atributo `title`, mesmo que o atributo `title` tenha outras palavras, como `title="muito importante"`. - ---- - -4. **Seletor de Atributo que Começa com um Valor Específico** - - Seleciona elementos onde o valor do atributo começa com um valor específico. Usa o operador `^=`. - - **Exemplo**: - ```css - a[href^="https"] { - font-weight: bold; - } - ``` - Esse estilo aplica negrito aos links que começam com `https`, indicando links seguros. - ---- - -5. **Seletor de Atributo que Termina com um Valor Específico** - - Seleciona elementos onde o valor do atributo termina com um valor específico. Usa o operador `$=`. - - **Exemplo**: - ```css - img[src$=".jpg"] { - border: 1px solid black; - } - ``` - Esse seletor aplica uma borda a todas as imagens com o atributo `src` terminando em `.jpg`. - ---- - -6. **Seletor de Atributo que Contém um Valor Específico** - - Seleciona elementos onde o valor do atributo contém uma sequência específica de caracteres. Usa o operador `*=`. - - **Exemplo**: - ```css - a[href*="example"] { - color: green; - } - ``` - Esse estilo aplica a cor verde a todos os links (``) que contêm a palavra `example` no `href`, como `https://example.com`. - ---- - -#### Exemplo Completo: Estilizando um Formulário com Seletores de Atributo - -Com os seletores de atributo, podemos aplicar estilos diferenciados a um formulário de maneira específica e organizada. - -```css -input[type="text"] { - border: 1px solid blue; - padding: 5px; - margin-bottom: 10px; -} - -input[type="email"] { - border: 1px solid green; - padding: 5px; - margin-bottom: 10px; -} - -input[type="password"] { - border: 1px solid red; - padding: 5px; - margin-bottom: 10px; -} - -input[required] { - background-color: #f9f9f9; -} - -button[type="submit"] { - background-color: darkblue; - color: white; - padding: 10px 20px; - border: none; - cursor: pointer; -} -``` - -**HTML**: -```html -
    - - - - -
    -``` - -Neste exemplo, cada campo recebe um estilo específico com base em seu `type` e, adicionalmente, o estilo para campos `required` destaca os campos obrigatórios com um fundo cinza claro. - ---- - -#### Especificidade dos Seletores de Atributo - -Os seletores de atributo têm a mesma especificidade que seletores de classes. Isso significa que eles têm prioridade sobre seletores de elementos, mas são superados por seletores de ID. Esse comportamento pode ser útil ao combinar seletores de atributo com outros tipos de seletores para obter um controle mais preciso. - -**Exemplo de Especificidade**: -```css -/* Estilo genérico */ -button { - background-color: gray; -} - -/* Mais específico que o seletor de elemento */ -button[type="submit"] { - background-color: blue; -} -``` - -Aqui, o botão de envio (`button[type="submit"]`) terá o fundo azul, enquanto outros botões terão o fundo cinza. - ---- - -#### Boas Práticas com Seletores de Atributo - -- **Evite Usar Seletores Muito Complexos**: A complexidade dos seletores de atributo pode afetar o desempenho, especialmente em documentos grandes. -- **Use Seletores de Atributo Quando Necessário**: Utilize seletores de atributo quando classes e IDs não forem suficientes ou para estilizar elementos específicos, como campos de formulário. -- **Combinações com Outros Seletores**: É possível combinar seletores de atributo com classes, IDs e outros seletores para maior precisão. - -**Exemplo de Combinação**: -```css -input[type="text"].form-control { - font-size: 16px; - color: darkblue; -} -``` - ---- \ No newline at end of file diff --git a/dia-01/05-seletores-combinados/01-conteudo.md b/dia-01/05-seletores-combinados/01-conteudo.md deleted file mode 100644 index a60468b..0000000 --- a/dia-01/05-seletores-combinados/01-conteudo.md +++ /dev/null @@ -1,205 +0,0 @@ -### Seletores Combinados no CSS - -Os **seletores combinados** no CSS permitem aplicar estilos com base em combinações de seletores, o que possibilita uma maior precisão na estilização. Esses seletores são utilizados para definir regras que se aplicam a elementos que atendem a mais de um critério ao mesmo tempo, como um elemento com uma classe específica dentro de uma estrutura particular, ou um elemento adjacente a outro. Os seletores combinados oferecem um nível de controle avançado que é muito útil para criar layouts e estilos complexos. - ---- - -#### Tipos de Seletores Combinados - -Existem alguns tipos principais de seletores combinados no CSS: o **seletor descendente**, o **seletor filho**, o **seletor adjacente** e o **seletor de irmãos gerais**. - ---- - -### 1. Seletor Descendente (` `) - -O seletor descendente é utilizado para estilizar elementos que são descendentes (não necessariamente filhos diretos) de um elemento pai específico. Ele aplica estilos a qualquer elemento que esteja dentro de um contêiner maior, independentemente da profundidade. - -**Sintaxe**: -```css -pai elemento { - propriedade: valor; -} -``` - -**Exemplo**: -```css -div p { - color: blue; -} -``` -Neste exemplo, todos os parágrafos (`

    `) dentro de qualquer `div` terão o texto na cor azul, não importa quantos níveis de aninhamento existam entre eles. - -**HTML**: -```html -

    -

    Parágrafo dentro de div - ficará azul.

    -
    -

    Outro parágrafo dentro de uma seção - também ficará azul.

    -
    -
    -``` - ---- - -### 2. Seletor Filho (`>`) - -O seletor filho aplica estilos apenas aos elementos que são filhos diretos de um contêiner, excluindo os descendentes em níveis mais profundos. Esse seletor é mais específico do que o seletor descendente. - -**Sintaxe**: -```css -pai > filho { - propriedade: valor; -} -``` - -**Exemplo**: -```css -div > p { - color: red; -} -``` -Neste exemplo, apenas os `

    ` que são filhos diretos de uma `

    ` terão o texto em vermelho. - -**HTML**: -```html -
    -

    Filho direto - ficará vermelho.

    -
    -

    Descendente, mas não filho direto - não será afetado.

    -
    -
    -``` - ---- - -### 3. Seletor Adjacente (`+`) - -O seletor adjacente aplica estilos ao primeiro elemento que aparece imediatamente após outro elemento. Esse seletor é útil quando você quer estilizar elementos que seguem imediatamente outro. - -**Sintaxe**: -```css -elemento1 + elemento2 { - propriedade: valor; -} -``` - -**Exemplo**: -```css -h1 + p { - color: green; -} -``` -Neste caso, o parágrafo (`

    `) que aparece imediatamente após um `

    ` terá o texto na cor verde. - -**HTML**: -```html -

    Título

    -

    Este parágrafo ficará verde.

    -

    Este parágrafo não será afetado.

    -``` - ---- - -### 4. Seletor de Irmãos Gerais (`~`) - -O seletor de irmãos gerais estiliza todos os elementos que aparecem após um elemento específico, desde que sejam "irmãos" no mesmo nível hierárquico do DOM. - -**Sintaxe**: -```css -elemento1 ~ elemento2 { - propriedade: valor; -} -``` - -**Exemplo**: -```css -h1 ~ p { - color: purple; -} -``` -Neste exemplo, todos os parágrafos (`

    `) que aparecem após um `

    `, no mesmo nível hierárquico, terão o texto em roxo. - -**HTML**: -```html -

    Título

    -

    Primeiro parágrafo - ficará roxo.

    -

    Segundo parágrafo - também ficará roxo.

    -
    -

    Parágrafo dentro de div - não será afetado.

    -
    -``` - ---- - -#### Exemplos Práticos de Seletores Combinados - -1. **Estilizando Itens de Lista Aninhados** - ```css - ul.lista-principal li ul li { - color: orange; - } - ``` - Neste exemplo, qualquer item de lista (`
  • `) dentro de uma lista secundária (`