Efeitos Especiais: Revestimentos
Infelizmente também é aqui que os style
sheets começam a ficar complicados, em parte porque o CSS é ainda uma tecnologia muito
jovem e a implementação do suporte ao CSS não está completa nem padronizada em nenhum
lugar. O IE 3.0 lida com os revestimentos estritamente através das propriedades de
margens (caixa). Logo depois, a Microsoft e a Netscape
fizeram um acordo para que os revestimentos fossem tratados através do posicionamento; entretanto, eles ainda não entraram em acordo
sobre como o próprio posicionamento deve ser definido. (O posicionamento nos três
browsers serão discutidos em detalhe nas páginas a seguir.) Isto significa que se você
quiser usar o posicionamento, terá que escrever style sheets separados para cada browser
e usar um JavaScript para forçar a página a usar o correto de acordo com o browser do
usuário.
Para os revestimentos, de qualquer modo você terá
que usar um scripting, porque os browsers que não suportam o CSS farão com que os dois
blocos de texto apareçam em sucessão, o que é especialmente problemático no caso de um
texto sombreado, já que o resultado será a simples repetição do parágrafo. A
solução será usar um JavaScript para escrever o texto revestido somente se o browser
suportar CSS, e assegurar-se de que a página ainda será inteligível mesmo sem a
cobertura, já que ela inteira não poderá sê-lo. Nós vamos ver um script que faz isto
daqui a pouco.
Algumas questões adicionais sobre efeitos que
envolvem o revestimento de um bloco de texto por outro:
- Observe que o efeito de revestimento depende do uso
de ajustes negativos de margem para a segunda camada (a que está por cima). Em princípio
você poderia trabalhar a partir dos tamanhos de margem e de pontos para calcular
matematicamente os valores, mas na prática me parece mais rápido fazê-lo pelo processo
de tentativa e erro.
- Os efeitos de revestimento podem facilmente vir
abaixo com mudanças na resolução de vídeo do usuário, o que causaria uma quebra de
linhas diferente. Se você quiser usar revestimentos, eu recomendo alguma das seguintes
precauções contra isto:
assegure-se
de que você está trabalhando com blocos de texto suficientemente curtos para não
quebrarem em nenhuma resolução ou tamanho de janela razoável
coloque o elemento de revestimento
numa tabela com uma largura fixa, para prevenir as quebras de linha; eu geralmente
tenho aconselhado sempre a não se usar tabelas com largura fixa, entretanto, neste caso,
a não ser que você limite a largura para mais ou menos 470 pixels, provavelmente algum
usuário terá que rolar a barra horizontal para enxergar toda a largura da página, o que
não é desejável. E se você usar uma largura estreita, por outro lado, os usuários com
vídeos em alta resolução estarão vendo uma grande quantidade de espaço morto na
página.
- A herança
pode causar problemas com a propriedade de revestimento. Por exemplo, pode parecer lógico
usar um elemento básico e uma classe do mesmo elemento (ou duas classes do mesmo
elemento) para definir as duas camadas. Mas isto não vai funcionar se o elemento tem um
background definido, porque uma especificação de classe pode sobrepujar mas não
desfazer uma especificação de background na especificação do elemento primário. Por
isso o background da camada que está por cima irá ocultar a camada de baixo.
|