Escolar Documentos
Profissional Documentos
Cultura Documentos
9
Definindo Seletores
declarações definem exatamente qual formatação Selecionando Elementos por Nome 216
será aplicada. Neste capítulo, você aprenderá como
Selecionando Elementos por Classe ou ID 218
definir seletores CSS.
Selecionando Elementos por Contexto 221
Enquanto os seletores mais simples permitem formatar Selecionando Parte de um Elemento 227
todos os elementos de um determinado tipo Selecionando Links Baseados em Seu Estado 230
(digamos, todos os títulos h1 ), os seletores mais
Selecionando Elementos Baseados em Atributos 232
complexos permitem aplicar regras de formatação a
elementos com base em sua classe ou id, contexto, Especificando grupos de elementos 236
estado e muito mais.
Combinando Seletores 238
h1 em {
Um seletor pode definir até cinco critérios
cor vermelha;
diferentes para escolha dos elementos que
devem ser formatados: }
#gaudi {
cor vermelha;
}
214 Capítulo 9
Machine Translated by Google
Nome
Pseudo-classe
a: link {
cor vermelha;
}
Nome
Atributo
um nome] {
cor vermelha;
}
Selecionando
Elementos por Nome
Talvez o critério mais comum para
escolher quais elementos formatar seja o
nome ou tipo do elemento. Por exemplo,
você pode querer deixar todos os elementos
h1 grandes e em negrito e formatar todos
os elementos p com uma fonte sem serifa.
A Este código HTML possui dois elementos h2 . (Caso você esteja se perguntando, o atributo lang indica que o
conteúdo está em um idioma diferente do idioma padrão da página, que é especificado no elemento html que segue
o DOCTYPE no início de cada página. Nesse caso, lang= "es" em cada h2 indica que seu conteúdo está em
espanhol.)
<!DOCTYPEhtml>
<html lang="pt">
<cabeça>
...
</head>
<corpo>
...
<artigo class="sobre">
<h1>Antoni Gaudí</h1>
<p>Muitos turistas são atraídos a Barcelona para ver a incrível arquitetura de Antoni Gaudí.</p>
<p>Barcelona <a href="http://www.gaudi2002.bcn.es/english/" rel="external">comemorou o 150º aniversário </a>
do nascimento de Gaudí em 2002.</p>
<seção class="projeto">
<h2 lang="es">La Casa Milà</h2>
<p>O trabalho de Gaudí foi essencialmente útil. <span lang="es">La Casa Milà é um prédio de apartamentos
onde vivem <em>pessoas reais</em>.</p>
</seção>
<seção class="projeto">
<h2 lang="es">A Sagrada Família</h2>
<p>O Templo Expiatório da Sagrada Família, de nome complicado e curiosamente inacabado, é ÿ o edifício
<em>mais visitado</em> de Barcelona.</p>
</seção>
</artigo>
...
216 Capítulo 9
Machine Translated by Google
Selecionando Elementos
por Classe ou ID
Se você rotulou elementos com classe A
ou um id (veja o Capítulo 3), você pode
usar esse critério em um seletor para aplicar
formatação apenas aos elementos
rotulados como B.
A Existem dois elementos de artigo com uma classe about . Um pequeno parágrafo sem a classe está em
entre eles.
...
<artigo id="gaudi" class="sobre">
<h1>Antoni Gaudí</h1>
<p>Muitos turistas são atraídos a Barcelona para ver a incrível arquitetura de Antoni Gaudí.</p>
<p>Barcelona <a href="http://www.gaudi2002.bcn.es/english/" rel="external">comemorou o 150º aniversário
</a> do nascimento de Gaudí em 2002.</p>
<seção class="projeto">
<h2 lang="es">La Casa Milà</h2>
<p>O trabalho de Gaudí foi essencialmente útil. <span lang="es">La Casa Milà é um prédio de
apartamentos onde vivem <em>pessoas reais</em>.</p>
</seção>
...
</artigo>
<p>Este parágrafo não tem <code>class="about"</code>, portanto não fica vermelho quando o CSS é ÿ aplicado.</p>
<artigo class="sobre">
<h1>Lluís Domènech i Montaner</h1>
218 Capítulo 9
Machine Translated by Google
B Este seletor escolherá os elementos com classe Para selecionar elementos para
igual a about. Nesse caso, ambos são elementos formatar com base em sua classe:
de artigo , mas você pode aplicar as classes a qualquer
elemento. Se você quisesse aplicar o estilo somente 1. Digite . (um periodo).
quando um elemento de artigo tivesse essa classe,
você escreveria o seletor como article.about. Mas 2. Sem espaço intermediário, digite imediatamente
isso é mais específico do que você normalmente precisa ser. classname, onde classname
identifica a classe à qual você gostaria de
.sobre {
cor vermelha; aplicar os estilos.
}
Para selecionar elementos para
formatar com base em seu ID:
. Seus estilos associados não podem ser reutilizados em outros elementos (lembre-se, um id pode aparecer em
apenas um elemento de uma página). Isso pode levar à repetição de estilos em outros elementos, em vez de
compartilhá-los por meio de uma classe.
. Eles são muito mais específicos que os seletores de classe . Isso significa que se você precisar substituir o estilo que
foi definido com um seletor de id , você precisará escrever uma regra CSS que seja ainda mais específica. Alguns
deles podem não ser difíceis de gerenciar, mas quando você estiver trabalhando em um site de tamanho decente,
seu CSS pode ficar mais longo e complicado do que o necessário.
Esses dois pontos provavelmente ficarão mais claros para você à medida que você trabalhar mais com CSS. (Por outro
lado, um dos motivos pelos quais algumas pessoas gostam de usar ids é para saberem rapidamente se um elemento é único.)
Então, eu recomendo procurar oportunidades para combinar estilos compartilhados em uma ou mais classes para que
você possa reutilizá-los, e para manter os seletores de id no mínimo se você usá-los (veja a página de exemplo no
Capítulo 11 para um exemplo de como você poderia fazem isto). Você pode achar suas folhas de estilo mais curtas e mais
fáceis de gerenciar.
220 Capítulo 9
Machine Translated by Google
<seção class="projeto">
<h2 lang="es">La Casa Milà</h2>
<p>O trabalho de Gaudí... </p>
</seção>
<seção class="projeto">
<h2 lang="es">A Sagrada Família</h2>
...
</seção>
</artigo>
...
C Geralmente há mais de uma maneira de criar seus
seletores para obter o efeito desejado. Tudo se resume
a quão específico você precisa ser. O seletor no primeiro
B O espaço entre article.about e p exemplo aqui (artigo p { }) é menos específico do que
significa que este seletor encontrará qualquer elemento aquele que o segue (.about p { }) e aquele em B. O
p que seja descendente de artigos com o about segundo exemplo aqui combina um seletor de classe com
classe, independentemente da sua geração. No um seletor descendente; você também pode combinar
entanto, prefixar a classe (ou especialmente um id) com seletores de ID . Você se verá usando isso o
com o nome do elemento geralmente é mais específico tempo todo, em vez do
do que você precisa na prática. Veja o próximo exemplo modelo mais específico e detalhado em B.
para seletores menos específicos C.
/* Outras maneiras de obter o mesmo efeito
artigo.sobre p { -------------------------------------- */
cor vermelha;
} /* Qualquer p que seja descendente de qualquer
artigo. ÿ A abordagem menos específica. */
artigo p {
cor vermelha;
}
2. Digite um espaço.
222 Capítulo 9
Machine Translated by Google
224 Capítulo 9
Machine Translated by Google
I Este seletor escolhe apenas o elemento h1 que é Continuando com o tema familiar, irmão
o primeiro filho dos elementos com class="about" elementos são elementos de qualquer
atribuído no HTML. Esta regra afeta a exibição
da nossa página J.
tipo que são filhos do mesmo pai. Irmãos
adjacentes são elementos que estão
/* h1 é o primeiro filho, então funciona. */ diretamente próximos um do outro, o
que significa que nenhum outro irmão fica
.about > h1:primeiro filho {
entre eles. No exemplo bruto a seguir, h1
cor vermelha;
} e p são irmãos adjacentes, e p e h2 são
irmãos adjacentes, mas h1 e h2 não são.
No entanto, são todos irmãos (e filhos
do elemento corpo ):
...
<corpo>
<h1>...</h1>
<p>...</p>
<h2>...</h2>
</body>
</html>
O combinador irmão adjacente CSS K Este combinador de irmãos adjacentes escolhe apenas
permite que você direcione um elemento irmão que é aqueles p elementos que seguem diretamente um irmão p
elemento.
precedido imediatamente por um irmão especificado
por você. (Veja a última dica sobre o combinador .sobre p + p {
geral de irmãos, novo no CSS3.) cor vermelha;
}
Para selecionar um elemento para
formatar com base em um irmão adjacente:
1. Digite sibling, onde sibling é o seletor do
elemento que precede diretamente o elemento
desejado dentro do mesmo elemento pai. (Eles
não precisam ser do mesmo tipo de elemento,
desde que estejam diretamente próximos um
do outro, conforme explicado anteriormente.)
226 Capítulo 9
Machine Translated by Google
<seção class="projeto">
passo 1.
<h2 lang="es">La Casa Milà</h2>
<p>O trabalho de Gaudí foi essencialmente
ÿ útil. <span lang="es">La Casa ÿ Milà é um
apartamento ÿ prédio e <em>pessoas
reais</em> ÿ moram lá.</p>
</seção>
<seção class="projeto">
<h2 lang="es">A Sagrada Família</h2>
<p>O Templo Expiatório da Sagrada
Família, de nome complicado e ÿ
curiosamente inacabado, é o edifício ÿ <em>mais
visitado</em> de ÿ Barcelona.</p>
</seção>
</artigo>
p:primeira linha {
cor vermelha; C Ajustar a largura da janela altera o conteúdo
}
das primeiras linhas (e, portanto, o que é
formatado).
228 Capítulo 9
Machine Translated by Google
Pseudoelementos, Pseudoclasses e
CSS3 ::primeira linha e ::primeira letra Sintaxe
Em CSS3, a sintaxe de :first-line é ::first-line e :first-letter é ::first-letter. Observe os dois pontos duplos em vez dos
dois pontos simples.
A sintaxe de dois pontos duplos de ::first-line e ::first-letter é preferida no futuro, e os navegadores modernos a
suportam. A sintaxe original de dois pontos está obsoleta, mas os navegadores continuam a suportá-la para
compatibilidade com versões anteriores. No entanto, nenhuma versão do Internet Explorer anterior ao IE9 oferece
suporte a dois pontos duplos, portanto, você pode decidir continuar usando a sintaxe de dois pontos únicos, a
menos que forneça CSS diferente do IE8 e anteriores.
base em seu estado permitem que você acesse o estado e altere a exibição como
desejar.
1. Digite a (já que a é o nome do elemento para B Os estilos para links devem sempre ser definidos nesta
ordem, para evitar a substituição de propriedades quando um
links). link estiver em mais de um estado (por exemplo, visitado e pairado).
2. Digite : (dois pontos).
a: link {
3. Digite link para alterar a aparência de links cor vermelha;
que ainda não foram ou não estão sendo }
ativados ou apontados.
a:visitou {
Ou digite visitado para alterar links que o cor laranja;
visitante já ativou. }
230 Capítulo 9
Machine Translated by Google
G Como visitante
ativa o link, ele fica
azul.
Selecionando Elementos
Baseado em atributos
Você também pode aplicar formatação aos
elementos que possuem um determinado atributo
ou valor de atributo.
R Para fins de demonstração, alterei o valor da classe no segundo elemento da seção do projeto para o
trabalho.
<artigo class="sobre">
<h1>Antoni Gaudí</h1>
<p>Muitos turistas são atraídos a Barcelona para ver a incrível arquitetura de Antoni Gaudí.</p>
<p>Barcelona <a href="http://www.gaudi2002.bcn.es/english/" rel="external">comemorou o 150º aniversário </a> do
nascimento de Gaudí em 2002.</p>
<seção class="projeto">
<h2 lang="es">La Casa Milà</h2>
<p>O trabalho de Gaudí foi essencialmente útil. <span lang="es">La Casa Milà é um prédio de apartamentos onde vivem
<em>pessoas reais</em>.</p>
</seção>
<seção class="trabalho">
<h2 lang="es">A Sagrada Família</h2>
<p>O Templo Expiatório da Sagrada Família, de nome complicado e curiosamente inacabado, é ÿ o edifício <em>mais
visitado</em> de Barcelona.</p>
</seção>
</artigo>
232 Capítulo 9
Machine Translated by Google
4. Digite ].
. Isso seleciona qualquer elemento com um atributo rel igual a external (deve ser uma correspondência exata).
a[rel="externo"]
{ cor: vermelho;
}
. Imagine que você tem um elemento de seção com duas classes, como <section class="project barcelona">,
e outro que possui uma, <section class="barcelona">. A sintaxe ~= testa uma correspondência parcial
de uma palavra completa dentro de uma lista de palavras separadas por espaços em branco, tornando ambos
os elementos vermelhos neste caso.
seção[class~="barcelona"] { cor:
vermelho;
}
h2[lang|="es"]
{ color: red;
}
234 Capítulo 9
Machine Translated by Google
*[lang|="es"]
{ cor: vermelho;
}
. Combinando alguns dos métodos, isso seleciona qualquer elemento com qualquer atributo href
e qualquer atributo de título contendo a palavra Olá.
a[href][title~="olá"] {
cor vermelha;
}
. Como uma variação menos precisa do anterior, isto seleciona qualquer elemento com qualquer atributo href e
qualquer atributo title contendo how como uma palavra completa ou uma substring (corresponde se o valor
do título for how, howdy, show, e assim por diante , independentemente de onde aparece no valor ).
a[href][title*="como"]
{ cor: vermelho;
}
. Isso corresponde a qualquer elemento com um valor de atributo href que começa com http://.
a[href^="http://"]
{ cor: laranja;
}
. Isso corresponde a qualquer elemento img com um valor de atributo src exatamente logo.png.
img[src="logo.png"]
{ borda: 1px verde sólido;
}
. Isso é menos específico que o anterior, combinando qualquer elemento img com um valor de atributo src que
termina com .png.
img[src$=".png"]
{ borda: 1px verde sólido;
}
Esse não é de forma alguma o limite do que você pode fazer, mas espero que inspire você a explorar mais.
<seção class="projeto">
Para aplicar estilos a
<h2 lang="es">A Sagrada Família
grupos de elementos: ÿ </h2>
<p>O nome complicado...</p>
1. Digite seletor1, onde seletor1
</seção>
é o nome do primeiro elemento que </artigo>
deve ser afetado pela regra de estilo. ...
236 Capítulo 9
Machine Translated by Google
B Você pode listar qualquer número de seletores individuais Estilizar elementos como um grupo
(incluam nomes de elementos, ids ou classes), desde nada mais é do que um atalho útil. A regra h1, h2
que separe cada um com uma vírgula. Cada seletor { cor vermelha; } é precisamente igual às
não precisa estar em sua própria linha, como mostrado, duas regras
mas muitos desenvolvedores usam essa convenção para
facilitar a leitura. O benefício é mais óbvio quando os seletores h1 {cor: vermelho; } e h2 { cor: vermelho; }.
são mais longos.
Você pode agrupar qualquer tipo
h1, de seletor, desde o mais simples (como
h2 { mostrado em B) até o mais complexo. Por
cor vermelha; exemplo, você poderia usar h1, .project
} p:first-letter para escolher os títulos do
nível um e a primeira letra dos elementos p
em elementos cuja classe é igual ao projeto.
Combinando Seletores R: Aqui está uma surpresa para você. Movendo da direita
para a esquerda, diz “escolha apenas os elementos em
encontrados nos elementos p que são irmãos
Os exemplos ao longo do capítulo foram
imediatamente adjacentes aos elementos h2 que possuem
simples para ajudá-lo a entender os vários tipos um atributo lang cujo valor começa com es dentro de
de seletores. No entanto, o verdadeiro poder qualquer elemento com classe igual a project”. Percebido?
Você raramente, ou nunca, terá oportunidade de escrever
reside no fato de que você pode combinar
algo tão complicado, mas pelo menos sabe que pode, se
qualquer uma das técnicas para identificar os necessário. Ou se você apenas quer assustar alguém
elementos que deseja formatar. que esteja lendo seu código.
.projeto h2[lang|="es"] + p em {
Um exemplo um pouco extremo é mostrado em A cor vermelha;
para demonstrar o que é possível. Aqui estão }
algumas maneiras de obter os mesmos
resultados, passando do menos específico para
o mais específico:
em {
cor vermelha;
}
.projeto em {
cor vermelha;
}
.sobre .projeto em {
cor vermelha;
}
238 Capítulo 9
Machine Translated by Google
240 Capítulo 9
Machine Translated by Google
10
Formatando Texto
com Estilos
Com CSS, você pode alterar a fonte, o tamanho, a
espessura, a inclinação, a altura da linha, a cor do Neste capítulo
primeiro plano e do plano de fundo, além do
espaçamento e alinhamento do texto. Você pode decidir se Escolhendo uma família de fontes 243
deve ser sublinhado ou riscado e você pode Especificando fontes alternativas 244
convertê-lo para letras maiúsculas, minúsculas ou
Criando Itálico 246
versalete. E você pode aplicar essas alterações
a um documento ou site inteiro com apenas Aplicando formatação em negrito 248
algumas linhas de código. Neste capítulo, você Configurando o tamanho da fonte 250
aprenderá como.
Definir a altura da linha 255
242 Capítulo 10
Machine Translated by Google
Fontes alternativas não tenha a primeira instalada. Nesse caso, você pode
dizer ao navegador para procurar Palatino em sistemas
que não possuem Palatino Linotype C instalado e,
Embora você possa especificar a fonte desejada, em seguida, voltar para uma fonte serif padrão
seus visitantes só verão essa fonte se a tiverem se nenhuma estiver instalada. Uma lista de fontes é
conhecida como pilha de fontes. Eu adicionei
instalada em seus computadores. Portanto, é
alternativas para os títulos também.
melhor usar fontes que você possa razoavelmente
esperar que elas tenham. Há uma pequena lista corpo {
de fontes que tanto o Windows família de fontes: "Linotipo Palatino",
ÿ Palatino, serif;
e o Mac OS tem por padrão (veja a próxima barra
}
lateral para obter detalhes).
Depois, há outros casos a serem considerados. h1,
Se a fonte tiver nomes diferentes em cada h2 {
família de fontes: "Arial Black", Arial, ÿ
sistema, você pode especificar ambos os nomes e sans-serif;
cada sistema operacional usará aquele que instalou. }
Da mesma forma, se a fonte desejada estiver
disponível apenas em um sistema operacional, você
poderá escolher uma fonte alternativa para o outro
sistema. Pode ou não corresponder exatamente, mas
o objetivo é especificar uma fonte que seja o mais
próxima possível. Finalmente, é melhor especificar
uma fonte padrão genérica caso os sistemas não
suportem as outras listadas A.
Você também tem opções além dessas. Tanto o Mac OS quanto o Windows incluem mais (mas diferentes) fontes de
sistema que você pode usar em suas pilhas de fontes. Pesquise on-line por “pilhas de fontes” para ver uma variedade
de declarações de famílias de fontes que você pode copiar e colar em suas folhas de estilo para fornecer a cada visitante uma
fonte semelhante.
Também é possível carregar uma fonte que os sistemas não possuem por padrão, uma abordagem que está se tornando
cada vez mais comum. Aprenda como no Capítulo 13.
244 Capítulo 10
Machine Translated by Google
Os sistemas B que possuem Palatino Linotype instalado Você pode especificar fontes para
continuarão a usar essa fonte.
diferentes alfabetos na mesma regra de família
de fontes (como japonês e inglês) para formatar
um pedaço de texto que contém diferentes
idiomas e sistemas de escrita.
246 Capítulo 10
Machine Translated by Google
248 Capítulo 10
Machine Translated by Google
Configurando o tamanho da fonte R Aqui eu uso valores de pixel para ter controle sobre
o tamanho inicial do texto (que diminuí de tamanho, em
comparação com os padrões da maioria dos
Existem duas maneiras básicas de definir o
navegadores). Os parágrafos herdam o tamanho da fonte
tamanho da fonte do texto em sua página da Web. definido no corpo. Você pode ver os resultados em B.
Você pode exigir que um tamanho específico seja
usado A ou pode fazer com que o tamanho seja corpo {
família de fontes: "Linotipo Palatino",
relativo ao tamanho da fonte pai C do elemento.
Palatino, serifa;
Definir o tamanho em relação ao pai demora um tamanho da fonte: 14px;
}
pouco para se acostumar; você precisa entender
como o navegador trata essas unidades
h1,
em relação aos seus pais, e explicarei isso mais em h2 {
um minuto. família de fontes: "Arial Black", Arial, ÿ
sans-serif;
Mas primeiro, quando você usa esse
peso da fonte: normal; /* remove o falso ÿ
método, é melhor estabelecer uma linha de
negrito do já pesado Arial ÿ Black */
base no elemento body , ou seja,
declarando body { font-size: 100%; } C. Na maioria }
das vezes, isso define o tamanho equivalente a
h1 {
16px, que é o tamanho de fonte padrão na maioria
tamanho da fonte: 22px;
dos sistemas. Como de costume, esse valor }
desce em cascata para os outros elementos
(lembre-se, font-size é uma propriedade herdada), h2 {
tamanho da fonte: 15px;
a menos que seja fornecido seu próprio tamanho de fonte.
}
em,
um: link,
a: passar o mouse {
/* Navegação no índice */
.tocar {
tamanho da fonte: 12px;
}
250 Capítulo 10
Machine Translated by Google
C O tamanho da fonte: declaração de 100% no corpo Então, como você descobre quais valores em
define uma linha de base a partir da qual os tamanhos especificar? Bem, 1em é igual ao tamanho padrão,
das fontes em são baseados. Esses 100% se traduzem
neste caso 16px. A partir daí você pode determinar
em um tamanho de texto padrão equivalente de 16 pixels
na maioria dos sistemas. Como tal, o resultado desta folha os valores em (ou porcentagem) com apenas uma
de estilo será equivalente ao mostrado em A. O comentário pequena divisão.
após cada valor de tamanho de fonte explica como foi
calculado, mostrando os equivalentes típicos de pixels. tamanho desejado / tamanho dos pais = valor
Por exemplo, você deseja que h1 se assemelhe a
corpo {
família de fontes: "Linotipo Palatino", 22px e já sabe que o tamanho do pai é 16px. Então:
ÿ Palatino, serif;
tamanho da fonte: 100%; /* 16 pixels */
22/16 = 1,375
}
Então, definindo h1 { font-size: 1.375em; }, está tudo
h1,
pronto para C. O que isso diz é: “Faça o texto h1
h2 {
1,375 vezes maior que o texto de seu pai”.
família de fontes: "Arial Black", Arial, ÿ
sans-serif; Outra forma de escrever a regra seria h1 { font-
peso da fonte: normal; size: 137,5%; }.
} No entanto, além de definir o tamanho da
fonte base no corpo com uma porcentagem, é mais
h1 {
tamanho da fonte: 1.375em; /* 22 px / 16 px */
comum dimensionar o tipo em ems do que em
} porcentagens.
em,
um: link,
a: passar o mouse {
/* Navegação no índice */
.tocar {
tamanho da fonte: .75em; /* 12 px / 16 px */
}
...
<p>O inconformismo de Gaudí, já visível na sua adolescência, aliado à sua ÿ devoção tranquila mas
firme à Igreja, constituiu uma base única para os seus pensamentos e ideias. Sua busca pela ÿ
simplicidade, baseada em suas observações cuidadosas da natureza, são bastante evidentes em seu
trabalho, desde o ÿ <a href="#park-guell">Parque Guell</a> e suas incríveis esculturas e mosaicos,
até a Igreja ÿ da <a href="#sagrada-familia">Família Sagrada</a> e suas torres orgânicas e bulbosas.</p>
...
252 Capítulo 10
Machine Translated by Google
254 Capítulo 10
Machine Translated by Google
1. Digite a fonte:.
corpo {
2. Opcionalmente, digite normal, itálico ou fonte: 100% "Linotipo Palatino", Palatino, ÿ serifa;
oblíquo para definir o estilo da fonte (veja “Criando
}
Itálico”).
/* Navegação no índice */
.tocar {
tamanho da fonte: .75em;
}
256 Capítulo 10
Machine Translated by Google
Um exemplo de combinação de
tamanho da fonte, altura da linha e família da fonte
declarações em fonte abreviada é fonte:
.875em/1.6 "Linótipo Palatino",
Palatino, serifa;. A altura da linha segue o tamanho e
a barra. Você também pode
inclua o estilo da fonte, a variante da fonte
e a espessura da fonte. A seguir está
um exemplo com todas as propriedades
possíveis em uma declaração de fonte: font: italic small-caps
negrito .875em/1.6 "Linotipo Palatino",
Palatino, serifa;. A ordem das propriedades é importante.
Você pode usar qualquer combinação de propriedades,
desde que o tamanho e a família sejam declarados.
corpo {
Para definir a cor:
cor: #909;
1. Digite cor:. fonte: 100% "Linotipo Palatino", Palatino, ÿ
serifa;
2. Digite colorname, onde colorname é }
uma das cores predefinidas (veja “Cores CSS”
no Capítulo 7). h1,
h2 {
Ou digite #rrggbb, onde rrggbb é a cor: marinho;
representação hexadecimal da cor. fonte: 1.375em "Arial Black", Arial, ÿ
Esta é a maneira mais comum de especificar sans-serif;
cores. }
a: passar o mouse {
cor: #c3f;
intensidade da fonte: Negrito;
}
/* Navegação no índice */
.tocar {
tamanho da fonte: .75em;
}
258 Capítulo 10
Machine Translated by Google
Para alterar o fundo do texto: ... [outro CSS está aqui] ...
1. Digite plano de fundo:.
260 Capítulo 10
Machine Translated by Google
corpo {
plano de fundo: #foc url (bg-page.png) repetir-x scroll 0 0;
}
Na verdade, isso é uma notação abreviada, assim como você usa a propriedade font para combinar família de
fontes, tamanho da fonte, altura da linha e outras propriedades em uma declaração.
Movendo da esquerda para a direita, essa notação abreviada de fundo poderia ser reescrita assim:
corpo {
cor de fundo: #foc;
imagem de fundo: url(bg-page.png);
repetição em segundo plano: repetição-x;
anexo de fundo: rolagem;
posição de fundo: 0 0;
}
Isso é muito código, então você pode ver por que a abreviação é a melhor opção, a menos que você tenha
motivos para dividi-la. Na verdade, você pode até tornar nosso exemplo um pouco mais curto removendo a rolagem e 0 0
valores padrão:
corpo {
plano de fundo: #foc url (bg-page.png) repetir-x;
}
Na prática, sua URL será algo como ../img/bg-page.png, porque você não vai querer manter suas imagens na
mesma pasta que suas folhas de estilo.
Então, o que isso faz? Imagine que a imagem de fundo, bg-page.png, é um padrão repetitivo com 15 pixels de
largura e 600 pixels de altura. O exemplo de regra abreviada acima diz: “Repita a imagem infinitamente na
horizontal e mostre a cor #foc infinitamente onde a imagem não estiver”. Então, você veria a imagem inteira nos
primeiros 600 pixels de altura. Sempre que o conteúdo tiver mais de 600 pixels, você verá #foc (rosa choque,
perfeito para o seu site de homenagem à Hello Kitty).
262 Capítulo 10
Machine Translated by Google
Aqui estão mais alguns exemplos para lhe dar uma ideia das possibilidades:
Cor de fundo preta combinada com imagem que se repete infinitamente na vertical.
corpo {
plano de fundo: #000 url(../../image/bg-page.png) repetir-y;
}
Imagem de fundo que se repete infinitamente em todas as direções. Amarelo mostra se a imagem não carrega ou até que a
imagem seja carregada.
corpo {
fundo: url amarelo (../img/bg-smiley-faces.png);
}
Cor de fundo verde escuro com imagem de fundo que não se repete e que está posicionada a 200 pixels da borda esquerda
da página e a 125 pixels do topo. Valores negativos também são permitidos. Use center para centralizá-lo na página.
corpo {
plano de fundo: #3f8916 url(../../img/bg-gumby.png) sem repetição 200px 125px;
}
Concentrei-me nos planos de fundo do corpo devido ao seu impacto no design da sua página, mas você pode aplicar
propriedades de plano de fundo a qualquer elemento. Então, se você realmente quiser, poderá definir uma foto de Telly
Savalas como plano de fundo de todos os seus parágrafos. Na verdade, eu incentivo isso.
ou 5px. h1,
h2 {
Para especificar o kerning: cor: marinho;
fonte: 1.375em "Arial Black", Arial, ÿ
Digite espaçamento entre letras: comprimento, onde sans-serif;
comprimento é um número com unidades, como em 0,4em espaçamento entre letras: .4em;
ou 5px. }
h2 {
Você pode usar valores negativos para tamanho da fonte: .9375em;
espaçamento entre palavras e letras. }
Os valores de espaçamento entre palavras e letras também podem ... [resto do CSS] ...
ser afetado pela sua escolha de alinhamento e família
de fontes.
264 Capítulo 10
Machine Translated by Google
h1,
h2 {
Para definir propriedades de espaço em branco: cor: marinho;
fonte: 1.375em "Arial Black", Arial, ÿ sans-
1. Digite espaço em branco:.
serif;
2. Digite pre para que os navegadores exibam todos os espaçamento entre letras: .4em;
h2 {
Ou digite nowrap para tratar todos os espaços como tamanho da fonte: .9375em;
inseparáveis. }
.introdução {
espaço em branco: nowrap;
}
... [resto do CSS] ...
266 Capítulo 10
Machine Translated by Google
B Apenas para fins de demonstração, adicionei uma Como exemplo, mostrei como aplicar o valor
aula de introdução para que você possa ver como o nowrap ao primeiro parágrafo (A
nowrap afeta a exibição do primeiro parágrafo.
e B). Como você pode ver, isso evita que
... a linha seja quebradaC. Entretanto, como
não queremos realmente esse efeito em
<h1 id="gaudi">Arquiteto de Barcelona</h1> nossa página, omitirei a classe e o CSS associado de
exemplos subsequentes.
<p class="intro">Os ÿ incríveis
edifícios de Antoni Gaudi trazem milhões de
ÿ turistas a Barcelona todos os anos.</p> O valor de pré para o espaço em branco
A propriedade recebe o nome do elemento pré ,
<p>O inconformismo de Gaudí, já ÿ que exibe o texto em uma fonte monoespaçada
visível na sua adolescência, aliado ÿ à sua enquanto mantém todos os seus espaços e
devoção silenciosa mas firme à ÿ igreja, retornos. O elemento pré , por sua vez, recebeu
constituiu uma base única ÿ para os seus o nome da palavra “pré-formatado”. Você pode
pensamentos e ideias...</p> encontrar mais informações sobre pré no Capítulo 4.
h2
{tamanho da fonte: .9375em;
}
p{
tamanho da fonte:
.875em; altura da
linha: 1,6; alinhamento de
texto: justificar; recuo do texto: 1,5em;
}
268 Capítulo 10
Machine Translated by Google
270 Capítulo 10
Machine Translated by Google
Decorando Texto
As folhas de estilo permitem adornar
seu texto com sublinhados e linhas
(talvez para indicar alterações) A.
A Aqui está toda a folha de estilo da página B, incluindo as alterações na decoração do texto dos links.
No entanto, você não precisa restringir o sublinhado ou outras decorações de texto aos elementos . Eles também podem ser
aplicados a outros elementos.
corpo em
{ background: {peso da fonte: negrito;
#eef; cor: }
#909; fonte: 100% "Linotipo Palatino",
Palatino, ÿ serifa; /* Links */
} a:link
{ color: #74269d;
h1, intensidade da fonte:
h2 Negrito; decoração de texto: nenhuma;
{ cor: marinho; }
fonte: 1.375em "Arial Black", Arial, ÿ sans-
serif; a:visitado
espaçamento entre letras: { cor: #909;
.4em; alinhamento de texto: centro; decoração de texto: nenhuma;
} }
h1 a:hover
{transformação de texto: maiúsculas; { cor: #c3f;
} intensidade da fonte:
Negrito; decoração de texto: sublinhado;
h2 }
{tamanho da fonte:
1,15em; variante de fonte: versalete; /* Navegação no índice */ .toc
}
{ background: #ebc6f9;
p{ }
tamanho da fonte:
.875em; altura da linha: .toc a
1,6; alinhamento de texto: {tamanho da fonte: .75em;
justificar; recuo do texto: 1,5em; }
}
272 Capítulo 10
Machine Translated by Google
11
Layout com estilos
e um rodapé na parte inferiorA (na próxima página). Estruturando suas páginas 279
No entanto, você pode aplicar as propriedades Estilizando elementos HTML5 em navegadores mais antigos 286
CSS que aprenderá para criar layouts muito
Redefinindo ou normalizando estilos padrão 290
diferentes.
O modelo de caixa 292
Não mostrarei todas as linhas de CSS neste
Mudando o plano de fundo 294
capítulo. Por exemplo, a maior parte da
formatação do texto foi feita com antecedência. Configurando a Altura ou Largura de um Elemento 298
Por favor, veja o código completo em Definir as margens em torno de um elemento 302
www.bruceontheloose.com/htmlcss/
Adicionando preenchimento ao redor de um elemento 304
exemplos/capítulo-11/página finalizada.html.
Fazendo os elementos flutuarem 306
Também criei uma versão de largura fixa (sem
interior fluido) chamadafinished-page-fixed- Controlando onde os elementos flutuam 308
width.html para que você possa ver como isso 311
Definindo a Fronteira
pode ser alcançado. Eu incluí muitos com-
Elementos de compensação no fluxo natural 314
em todos os arquivos (especialmente nas folhas
Posicionando Elementos Absolutamente 316
de estilo) para ajudar a explicar o código.
Posicionando Elementos em 3D 318
Considerações quando
Iniciando um Layout
Aqui estão algumas coisas para ajudá-lo ao criar seus
próprios sites e aprimorá-los antes de liberá-los na
natureza.
276 Capítulo 11
Machine Translated by Google
Abordagens de layout
Existem diversas maneiras de fazer um layout.
278 Capítulo 11
Machine Translated by Google
R Este é o documento que utilizo ao longo deste capítulo. Existem quatro seções principais (cabeçalho, principal, barra lateral e rodapé)
encerradas em dois contêineres externos (contêiner e página). Você pode encontrar o arquivo completo em meu site
(www.bruceontheloose.com/htmlcss/examples/chapter-11/finished-page.html). Por padrão, a página é simples, mas ainda funcional B.
...
280 Capítulo 11
Machine Translated by Google
Uma continuação
...
</aside>
<aside class="arquivo">
<nav role="navigation">
<h2>Arquivo</
h2> ... [lista de links] ...
...
</nav>
</aside>
</div>
<!-- end #sidebar -->
...
282 Capítulo 11
Machine Translated by Google
Estilizando elementos com funções de referência ARIA em seletores CSS em vez de ids
A página de exemplo A inclui funções de referência ARIA em elementos apropriados. No Capítulo 9,
sugeri evitar ou minimizar o uso de ids para fins de estilo (veja a barra lateral na seção “Selecionando
elementos por classe ou ID” desse capítulo).
É possível usar os papéis de referência em seus seletores CSS em alguns casos onde você poderia estar inclinado a
referenciar ids.
#rodapé {
borda superior: 2px pontilhado #b74e07;
limpar ambos;
}
#rodapé h1 {
margem inferior: 0,25em;
}
Agora, vamos simplificar o HTML removendo id="footer", já que ele estava lá apenas para estilizar o
rodapé (e não como um link âncora apontando para o rodapé).
<footer role="contentinfo">
... conteúdo do rodapé da ...
página </footer>
284 Capítulo 11
Machine Translated by Google
rodapé[role="contentinfo"] {
borda superior: 2px pontilhado #b74e07;
limpar ambos;
}
rodapé[role="contentinfo"] h1 {
margem inferior: 0,25em;
}
A primeira regra diz: “Encontre o elemento de rodapé com um atributo de função igual a contentinfo”. A segunda regra diz:
“Encontre o elemento h1 dentro do elemento de rodapé com um atributo role igual a contentinfo”.
Os resultados são exatamente iguais aos do CSS anterior que usava seletores de id .
Você pode fazer a mesma coisa com outros elementos que contenham funções de referência, e forneci uma versão da
página de exemplo deste capítulo que faz exatamente isso: www.bruceontheloose.com/htmlcss/
exemplos/chapter-11/finished-page-selectors-with-landmark-roles.html. Veja uma discussão relacionada de Jeremy Keith
em http://adactio.com/journal/4267/.
Observe que o IE6 não oferece suporte a seletores de atributos; portanto, essa abordagem pode não ser adequada para
você, dependendo do seu público.
Um lembrete importante: é fundamental que você use as funções de referência somente quando apropriado em suas páginas.
Não adicione um simplesmente para ter um gancho para aplicar estilos a um elemento. Use uma classe nessa instância.
Consulte "Melhorando a acessibilidade com ARIA" no Capítulo 3 para relembrar funções importantes.
Estilizando HTML5
Elementos mais antigos
Navegadores
Como você sabe, o HTML5 introduz vários novos
elementos semânticos, a maioria dos quais você
aprendeu nos Capítulos 3 e 4. Em muitos casos, os
navegadores modernos oferecem suporte nativo a esses
elementos. Do ponto de vista do estilo, isso significa que
esses navegadores aplicam estilos padrão aos novos
elementos, assim como fazem aos elementos HTML
que existem desde os primeiros dias da linguagem.
286 Capítulo 11
Machine Translated by Google
Abordagens alternativas:
<div class="header">...</div>
<div class="artigo">...</div>
<div class="seção">...</div>
e assim por diante.
288 Capítulo 11
Machine Translated by Google
Redefinindo ou
Normalizando
Estilos padrão
Conforme mencionado, cada navegador possui uma folha
de estilos integrada que determina a apresentação do seu
HTML, a menos que você escreva seu próprio CSS para
substituí-lo. Os estilos de navegador padrão são bastante
semelhantes em geral, mas têm diferenças suficientes
para que seja comum que os desenvolvedores nivelem o
campo de jogo antes de aplicarem seu próprio CSS.
290 Capítulo 11
Machine Translated by Google
front
direi
pree
marg
direit
O modelo de caixa margem superior
borda superior
CSS trata sua página da Web como se cada
topo acolchoado
à
elemento que ela contém estivesse dentro de um
largura
caixa invisível. A caixa é composta por uma área
de conteúdo, o espaço ao redor dessa área
(preenchimento), a borda externa do preenchimento fundo
(borda) e o espaço invisível ao redor da borda CONTENTE
que separa um elemento do próximo (margem).
arutla
drieeutnqosref
dreegurqasm
e
É como uma imagem emoldurada na parede,
aa
am
hrcenueqesrà
otnemaid p
e
onde a imagem é o conteúdo, o tapete é o
preenchimento, a moldura é a borda e a distância
entre essa moldura e a próxima é a margem A. fundo de preenchimento
borda inferior
margem inferior
Você pode usar CSS para determinar a A caixa de cada elemento possui quatro propriedades
aparência e a posição da caixa de cada importantes que determinam seu tamanho: área de conteúdo,
preenchimento, borda e margem. Você pode controlar cada
elemento e, ao fazer isso, terá um controle
propriedade individualmente.
considerável sobre o layout da sua página da
Web B. O espaço entre a área de A área de
conteúdo e a borda conteúdo da barra lateral.
Conforme discutido no Capítulo 1, por padrão, a
é o preenchimento. (Aqui há Nenhuma largura ou
caixa de um elemento pode ser em nível de bloco preenchimento de 10 pixels em altura explícita
(começando assim em uma nova linha como todos os lados.) O plano de fundo é especificada no
a cor preenche ambas as áreas. CSS neste caso.
um novo parágrafo) ou inline (não gerando
uma nova linha). Esta característica rege o layout
inicial da página da Web: por padrão, os
elementos são exibidos na mesma ordem em que
aparecem no código HTML, de cima para baixo -
isso é conhecido como fluxo do documento - com
quebras de linha no início e no final de cada
elemento denominado como nível de bloco A.
292 Capítulo 11
Machine Translated by Google
294 Capítulo 11
Machine Translated by Google
Para controlar se a
imagem de fundo será anexada:
1. Digite anexo de fundo:.
.Barra Lateral {
Ao usar a abreviação de plano de fundo
propriedade, você não precisa especificar todas as plano de fundo: #f5f8fa;
propriedades. Mas esteja ciente de que se quaisquer }
propriedades não especificadas forem definidas com seus
padrões, elas poderão substituir regras de estilo anteriores.
296 Capítulo 11
Machine Translated by Google
298 Capítulo 11
Machine Translated by Google
O preenchimento, as bordas e a
margem não estão incluídos no valor da largura
(consulte “Largura, margens e automático”).
#contêiner {
plano de fundo: url(../img/bg-bluebench.jpg)
repetir-y;
largura máxima: 950px;
largura: 90%;
}
Largura, margens e automático D Neste exemplo, defini a largura do div pai para 300 pixels. Este
será o nosso bloco contendo.
Para a maioria dos elementos exibidos em nível Então, ambos os parágrafos têm margens de 10 pixels,
de bloco por padrão, o valor automático para largura preenchimento de 5 pixels e bordas de 5 pixels em todos os lados.
é calculado a partir da largura do bloco que o contém O primeiro parágrafo tem a largura definida automaticamente, já
que auto é o valor de largura padrão , a menos que você
menos o preenchimento, as bordas e as margens especifique o contrário. O segundo parágrafo (que tem
do elemento. O bloco que contém class="example" no HTML) está definido em 200px.
é a largura que o elemento obtém de seu pai.
div {
fundo: amarelo;
Elementos como imagens têm largura automática largura: 300px;
igual ao seu valor intrínseco; isto é, as dimensões }
reais do arquivo externo
p,
(como as imagens da página de exemplo, que .exemplo {
têm 100 x 75). Os elementos flutuantes têm fundo: branco;
uma largura automática de 0. Inline não flutuante borda: 6px azul sólido;
os elementos ignoram completamente a margem: 10px;
preenchimento: 5px;
propriedade width (o que significa que você não
}
pode definir uma largura em elementos como em
e cite , a menos que você os defina como .example { /* o segundo parágrafo */
display: inline-block ou display: block). fundo: branco;
Consulte “Fazendo elementos flutuarem” para cor da borda: roxo;
largura: 200px;
saber mais sobre flutuadores e “Exibindo e ocultando
}
elementos” para obter mais informações sobre exibição.
Se você definir uma altura e o conteúdo aumentar, ele poderá sair da caixa do elemento, o que pode não ser o que você
esperava. Os navegadores compatíveis com os padrões não expandem a altura automaticamente nesta circunstância; eles
acreditam na sua palavra quando você especifica uma altura e a cumprem. (O IE6 não segue o padrão, por isso expande a
altura.)
No entanto, se você sempre quiser que o elemento tenha pelo menos uma certa altura, defina uma altura mínima. Se o
conteúdo aumentar posteriormente, a altura do elemento aumentará automaticamente conforme desejado. Essa é a diferença
entre altura e altura mínima, bem como largura e largura mínima.
E caso você esteja se perguntando, há vários motivos pelos quais o conteúdo pode crescer. Seu conteúdo pode vir de um
banco de dados ou feed ou ser gerado pelo usuário. Além disso, o visitante pode aumentar o tamanho da fonte no navegador,
substituindo o estilo que você especificou.
300 Capítulo 11
Machine Translated by Google
58 pixels
de espaço
largura: 200px
largura: 300px
(contendo bloco)
302 Capítulo 11
Machine Translated by Google
C A div da barra lateral (com id="relacionado") terá uma O valor automático da propriedade
margem esquerda de 72%, portanto está mais distante margin depende do valor da propriedade
da esquerda do que a div do conteúdo principal, que width (veja “Definindo a altura ou largura de um
tem uma largura de 71%. A barra lateral continuará a elemento).
aparecer abaixo da div de conteúdo principal até que
você flutue esta última um pouco mais tarde no capítuloD.
Se um elemento for colocado acima de
Também adicionei margens a vários outros elementos,
outro, apenas a maior das duas margens tocantes—
como abaixo do cabeçalho, acima do rodapé e à direita e
isto é, as margens inferior e superior dos
na parte inferior das entradas parciais do blog para dar-
elementos são usadas. Diz-se que o outro
lhes algum espaço para respirar E.
entrou em colapso. As margens esquerda e direita
h1 { não entram em colapso.
tamanho da fonte: 1,5em; /*24px/16px*/
margem inferior: 0,75em; As margens não são herdadas.
transformação de texto: minúscula;
} Defino as margens para alguns elementos
a mais do que os mostrados em A ou C. Você
de lado h2 { pode ver o código completo em
tamanho da fonte: .9375em; /* 15px/16px*/
www.bruceontheloose.com/htmlcss/examples/
margem inferior: 3px;
chapter-11/finished-page.html .
transformação de texto: minúscula;
}
#cabeçalho {
margem inferior: 30px;
}
#rodapé {
margem superior: 10px;
}
.contínuo {
D A barra lateral está agora a 72% da borda esquerda.
estilo da fonte: itálico;
margem superior: -5px;
}
#página {
plano de fundo: #fef6f8;
largura máxima: 940px;
preenchimento: 10px 10px 10px 0;
largura: 97,9167%; /*940px/960px*/
}
304 Capítulo 11
Machine Translated by Google
E Substituí a cor de fundo temporária da página por branco (#fff) Tal como acontece com a propriedade margin , se
F. Também adicionei um pequeno preenchimento em você usar um valor, o preenchimento especificado será
todos os quatro lados da barra lateral para que o conteúdo aplicado igualmente a todos os quatro lados E. Se você
não escorra para as bordas, bem como preenchimento
usar dois valores, o primeiro valor será aplicado à parte
à esquerda de a lista ordenada de modo que os marcadores
superior e inferior e o segundo valor será aplicado à
recuem G. (Veja o Capítulo 15 para obter mais informações sobre listas.)
direita e à esquerda. Se você usar três valores, o primeiro
se aplica à parte superior, o segundo à direita e à
#página {
esquerda e o terceiro à parte inferior. Se você usar quatro
plano de fundo: #fff;
valores, eles serão aplicados na parte superior, direita,
preenchimento: 10px 10px 10px 0;
inferior e esquerda, no sentido horário (A e C).
largura máxima: 940px;
largura: 97,9167%; /*940px/960px*/
Você também pode adicionar um
}
dos seguintes sufixos à propriedade
padding para aplicar preenchimento a um
.Barra Lateral {
único lado: -top, -bottom, -left ou -right. Não
plano de fundo: #f5f8fa;
deve haver espaço entre a palavra padding
preenchimento: 10px;
e o sufixo (por exemplo, padding-right: 1em).
}
G A cor de fundo da
barra lateral aparece
através dos 10px de
preenchimento
adicionados a todos os quatro
lados em E.
1. Digite float:.
.foto {
2. Digite left se desejar que o elemento fique à flutuar: esquerda;
esquerda e o restante do conteúdo flua altura: 75px;
largura: 100px;
para a direita (A a G).
}
Ou digite right se desejar que o elemento
fique à direita e o restante do conteúdo flua
para a esquerda.
306 Capítulo 11
Machine Translated by Google
E Agora, você usará a mesma abordagem para flutuar o Ou digite none se não quiser que o elemento
conteúdo principal para a esquerda para que a barra lateral flutue. (nenhum é o valor padrão, portanto,
apareça ao lado dele. (Anteriormente, você empurrava a
barra lateral para a direita - mas ainda abaixo - do conteúdo
você só o definiria explicitamente se
principal, aplicando uma margem esquerda a ela.) estivesse substituindo outra regra que
fizesse flutuar um elemento que você não
#principal {
desejava em uma circunstância específica.)
flutuar: esquerda;
largura: 71%; 3. Use a propriedade width (veja “Configuração
} a altura e a largura de um elemento”) para
definir explicitamente a largura do elemento.
/* Aplicamos esta margem à barra lateral ÿ anteriormente.
*/
#relacionado { Lembre-se de que a direção escolhida se
margem esquerda: 72%; aplica ao elemento que você está flutuando, não
} aos elementos que fluem ao seu redor. Quando
você flutua: para a esquerda, o resto da página flui
para a direita e vice-versa.
F Aqui, o div principal flutua para a esquerda, então a G Como o div principal flutua para a esquerda, todos os
barra lateral simplesmente flui ao longo do lado direito do div outros elementos, incluindo o rodapé, fluem em torno dele, a
principal esquerdo flutuante. Na verdade, o rodapé faz o mesmo menos que você diga o contrário. E você dirá o contrário
bem, G, porque ele segue imediatamente a barra lateral na próxima seção.
do HTML. (Você colocará o rodapé de volta onde ele
pertence na próxima seção.) Observe que não era estritamente
necessário dar à barra lateral (#relacionado) uma grande margem
esquerda para obter o efeito flutuante, assim como não era.
quando você flutuou o texto do blog em torno dos contêineres
de imagens (A e B). Mas da mesma forma que evitou o
empacotamento em C
e D, a margem esquerda evita que o texto da barra lateral fique
abaixo do div principal se a barra lateral ficar mais alta que
o div principal. Além disso, a cor de fundo da barra lateral se
estenderia por todo o div principal se a barra lateral não
tivesse margem esquerda.
Elementos flutuam ambos; para evitar isso B. Você poderia usar clear: left;
em vez disso, já que o único elemento flutuante com o
qual você precisa se preocupar está flutuando à
Você pode controlar quais elementos um elemento
esquerda. Mas não custa nada limpar os dois lados e
mento pode flutuar próximo e que não pode. pode ser útil se o design ficar mais complexo.
Para evitar que um elemento flutue próximo a algo
que você não deseja, use a propriedade clear A. #rodapé {
limpar ambos;
margem superior: 10px;
}
Para controlar onde os elementos flutuam:
1. Digite claro: (A e B).
.logo {
flutuar: esquerda;
tamanho da fonte: 2,5em; /* 40px/16px*/
margem: 0;
}
308 Capítulo 11
Machine Translated by Google
<div id="contêiner">
<div id="página">
<header id="masthead" role="banner" ÿ
class="clearfix">
...
</header>
O método de estouro
#cabeçalho {
estouro: oculto;
}
(A propriedade overflow será abordada posteriormente neste capítulo.) Usando overflow: auto; também
funciona em alguns casos, mas você poderá ver uma barra de rolagem, o que é obviamente indesejável. E
em alguns casos, overflow: hidden; cortará o conteúdo, então fique atento a isso. Em meu próprio trabalho,
uso overflow para resolver problemas de flutuação, como aquele no cabeçalho, quando ele é capaz de fazer o trabalho.
Quando não está, eu uso o clearfix E. Geralmente, o clearfix é o método mais consistente, por isso mostrei
como fazer isso no exemplo, embora seja meu último recurso.
O método clearfix
O CSS para .clearfix passou por várias permutações ao longo dos anos, à medida que os membros da comunidade
da Web o refinaram. A versão mostrada abaixo foi retirada do excelente HTML5 Boilerplate
(www.html5boilerplate.com), um esforço iniciado por Paul Irish e posteriormente com a contribuição de vários
desenvolvedores da comunidade. Encorajo-vos a dar uma olhada.
Nicolas Gallagher, que agora é um membro central do projeto, contribuiu com o seguinte clearfix
código. Simplesmente copie e cole em sua folha de estilo e aplique class="clearfix" ao elemento que contém os
flutuadores E.
Resumo
Há uma diferença sutil entre usar a propriedade clear e usar os métodos overflow ou clearfix . Com clear, você
aplica ao elemento que não deseja fluir em torno de um elemento flutuante. Os outros dois são métodos que
você aplica a um contêiner do elemento ou elementos flutuantes.
310 Capítulo 11
Machine Translated by Google
.entrada {
borda direita: 2px tracejado #b74e07; Para definir o estilo da borda:
margem: 0,5em 2em 0; Digite estilo de borda: tipo, onde tipo
} é nenhum, pontilhado, tracejado, sólido,
#rodapé {
duplo, ranhura, crista, inserção ou início.
borda superior: 2px pontilhado #b74e07;
limpar ambos; Para definir a largura da borda:
margem superior: 10px;
} Digite border-width: n, onde n é a largura
desejada, incluindo unidades abreviadas (por
exemplo, 4px).
p{
3. Se desejar, digite -property, onde borda: 10px vermelho sólido;
preenchimento: 15px;
propriedade é estilo, largura ou cor, para
}
limitar o efeito a uma única propriedade.
4. Digite : (dois pontos). p.ddd {
largura da borda: 4px;
5. Digite os valores apropriados (como estilo de borda: pontilhado tracejado
descritas nas três técnicas da página duplo ÿ sólido;
anterior). Se você pulou a etapa 3, }
poderá especificar qualquer um ou todos
p.inserir {
os três tipos de propriedades de borda (por
borda: inserção azul de 10px;
exemplo, border:1px solid ou border- }
right: 2px tracejado verde;).
Se você especificou um tipo de p.início {
propriedade na etapa 3, use um valor borda: 10px verde inicial;
}
aceito apenas para essa propriedade
(por exemplo, estilo borda direita: pontilhado;). p.groove {
borda: sulco roxo de 10px;
}
As fronteiras não são herdadas.
p.ridge {
As propriedades individuais
borda: cume laranja de 10px;
da borda (largura da borda, estilo da borda
}
e cor da borda) podem ter de um a quatro valores.
Se você usar um valor, ele será aplicado aos
quatro lados. Se você usar dois, o primeiro será
usado para a parte superior e inferior e o segundo
para a direita e a esquerda. Se você usar três, o
primeiro será usado para a parte superior, o segundo
para a direita e a esquerda e o terceiro para a parte
inferior. E se você usar quatro, eles serão aplicados
na parte superior, direita, inferior e esquerda, no sentido horário.
312 Capítulo 11
Machine Translated by Google
Elementos de
compensação no fluxo natural
A Embora a data esteja alinhada à direita, ela está em
Cada elemento tem uma localização natural em um
uma linha separada do título e, portanto, aparece
fluxo da página A. Mover o elemento em abaixo dele e muito próxima do texto de entrada.
relação a este local original é chamado de
posicionamento relativo (B e C). Os elementos B Lembre-se de especificar o posicionamento
circundantes não são afetados de forma alguma C. relativo e também fornecer o deslocamento.
Pode ser um valor positivo ou negativo. Usar ems
manterá o deslocamento proporcional ao tamanho
Para compensar elementos do texto. Como 1em é igual ao tamanho da fonte
dentro do fluxo natural: do elemento, neste exemplo a declaração move a
data para cima (por causa de -1em) C.
1. Digite posição: relativa; (não esqueça do ponto
.data de entrada {
e vírgula; o espaço é opcional).
altura da linha: 1;
2. Digite superior, direita, inferior ou esquerda. margem: 0 1em 0 0;
preenchimento: 0;
Em seguida, digite :v, onde v é a distância posição: relativa;
desejada que você deseja deslocar o topo: -1em;
elemento de sua localização natural, }
expressa como um valor absoluto ou relativo
(10px ou 2em, por exemplo) ou como uma
porcentagem.
3. Se desejar, repita a etapa 2 para instruções
adicionais, separando cada propriedade/
par de valores com ponto e vírgula, como de costume.
314 Capítulo 11
Machine Translated by Google
Elementos de posicionamento
Absolutamente R Nosso formulário de pesquisa ainda está
abaixo da navegação principal porque faz parte do
Conforme observado, os elementos da sua
fluxo normal do documento. Você deseja deslocá-lo
página da Web geralmente fluem na ordem para o canto superior direito do cabeçalho que o contém.
em que aparecem no código-fonte HTML A. Ou
seja, se o elemento img vier antes do p, a B Ao posicionar o formulário de forma absoluta, retirei-o
imagem aparecerá antes do parágrafo. completamente do fluxo de documentos. Ele não sabe que existe
Você pode tirar elementos do normal outro conteúdo e vice-versa. Este código sozinho não alcança
os resultados desejados porque, a menos que você especifique
fluir - e posicioná-los absolutamente - o contrário, um elemento com posição: absoluto é posicionado
especificando sua posição precisa em em relação ao elemento body , como você pode ver em C.
#formato de cabeçalho {
posição: absoluta;
superior: 7px;
direita: 0;
}
316 Capítulo 11
Machine Translated by Google
Elementos em 3D ...
<corpo>
Depois de começar a usar o posicionamento
<div class="caixa1">
relativo, absoluto ou fixo, é bem possível que
<p>Esta é a caixa 1</p>
você descubra que seus elementos se </div>
sobrepuseram, assim como aconteceu com o
formulário de pesquisa e a navegação principal. <div class="box2">
<p>Esta é a caixa 2</p>
Você pode escolher qual elemento deve ser exibido no topo (A
</div>
através de C).
<div class="box3">
Para posicionar elementos em 3D: <p>Esta é a caixa 3</p>
</div>
Digite z-index: n, onde n é um número que indica
o nível do elemento na pilha de <div class="box4">
318 Capítulo 11
Machine Translated by Google
B Esta folha de estilo demonstra que o Se você tiver itens aninhados dentro de um
elemento posicionado de forma absoluta (ou elemento que tenha um determinado índice z,
relativa ou fixa) com o número de índice z mais alto todos esses itens aninhados serão primeiro
sempre aparece no topo C, independentemente de ordenados de acordo com seus próprios índices z
onde ele aparece na ordem do HTML A. Isso também individuais e depois, como um grupo, ordenados no contexto maior.
mostra como position: static; pode ser útil. A
primeira regra define todos os quatro divs para position:
IE7 e versões anteriores não implementam z-index
absoluto;, mas então eu a substituo em .box3, definindo-
a de volta para o valor padrão de estático. Isso como esperado. Cada elemento posicionado inicia
retorna .box3 ao fluxo normal de documentos, portanto, seu próprio contexto de empilhamento em vez de
mesmo que tenha o número de índice z mais alto , respeitar a ordem de empilhamento de todos os
isso não tem efeito e .box3 estará sempre na parte inferior. elementos posicionados em toda a página como
deveria. Este problema e uma correção são demonstrados em http://
div { brenelz.com/blog/squish-the-internet-explorer-z-index-
plano de fundo: #ccc; bug/ . (Ignore o fato de que a solução é mostrada em
borda: 1px sólido #666; estilos embutidos. Coloque seu CSS em uma folha
altura: 125px; de estilos externa como faria normalmente.)
posição: absoluta;
largura: 200px; A propriedade z-index não é herdada.
}
.caixa1 {
fundo: rosa;
esquerda: 110px;
superior: 50px;
índice z: 120;
}
.caixa2 {
fundo: amarelo;
esquerda: 0;
superior: 130px;
índice z: 530;
}
C As caixas posicionadas são empilhadas desde o ponto mais alto
índice z até o mais baixo. A terceira caixa está abaixo de todas
elas porque está no fluxo normal do documento.
.caixa3 {
altura: automático;
altura mínima: 125px;
posição: estática;
.box4 {
fundo: laranja;
esquerda: 285px;
superior: 65px;
índice z: 3;
}
Determinando
como tratar o estouro
Os elementos nem sempre estão contidos em suas caixas.
Às vezes a caixa simplesmente não é grande o
suficiente. Por exemplo, uma imagem que seja mais larga
do que o seu recipiente irá sair dela.
Ou talvez você tenha posicionado o conteúdo fora da
caixa, seja com margens negativas ou com
posicionamento absoluto. Independentemente da
causa, você pode controlar a área fora da caixa do
elemento com o
propriedade de estouro .
320 Capítulo 11
Machine Translated by Google
C Agora as imagens extras estão ocultas. Se você A propriedade overflow também é útil
ampliasse o navegador, mais imagens seriam exibidas na para parar carros alegóricos. Consulte “Outros
mesma linha. A seguir, mostrarei outra abordagem D, embora
métodos para limpar flutuações”.
seja feia neste caso E.
Alinhando Elementos
Verticalmente
A As imagens são alinhadas por padrão na parte inferior
Você pode alinhar elementos de muitas
a linha.
maneiras diferentes para que pareçam mais
organizados na página do que o
B Observe que o alinhamento é definido nas próprias
alinhamento padrão (A a C).
imagens e não nos itens li que as contêm.
(Veja mais sobre listas no Capítulo 15.)
Para alinhar elementos verticalmente:
.miniaturas img {
1. Digite alinhamento vertical:. alinhamento vertical: meio;
}
2. Digite linha de base para alinhar a linha de
base do elemento com a linha de base do pai.
322 Capítulo 11
Machine Translated by Google
Mudando o cursor
Normalmente, o navegador cuida do formato
do cursor para você, usando uma seta na maioria
das vezes, um dedo apontando para destacar
os links A, entre outros. CSS permite que você
tome as rédeas (B e C).
A Quando você aponta para o link Início, o cursor Para alterar o cursor:
muda para uma mão apontadora e o link é
destacado, assim como qualquer outro link. 1. Digite cursor:.
imagem {
324 Capítulo 11
Machine Translated by Google
326 Capítulo 11