[Página prévia] [Próxima página] [Seção página de conteúdo]

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.
[Página prévia] [Próxima página] [Seção página de conteúdo]