|
|
|
||||||||||||||||||||||
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Parceiros - CSS para Web Design - S.O.S Designers - Slackware-Brasil - Crie seu Web site - Oficina da Net |
Efeito de sombra com CSSVeremos vários métodos para realizar um efeito de sombreado utilizando folhas de estilo em cascata. Encontramos 3 métodos diferentes para fazer um efeito de sombra. São os seguintes, que veremos comentados neste artigo:
Este método é bastante simples. Baseia-se em definir três caixas trasladadas, com diversas cores de fundo. Os elementos com as classes "blur" e "shadow" se definirão com tons cinzentos para criar o efeito de sombreado. Código HTML: <div class="blur"> <div class="shadow"> <div class="content">bla bla</div> </div> </div> Código CSS: .blur{ background-color: #ccc; /*shadow color*/ color: inherit; margin-left: 4px; margin-top: 4px; } .shadow, .content{ position: relative; bottom: 2px; right: 2px; } .shadow{ background-color: #666; /*shadow color*/ color: inherit; } .content{ background-color: #fff; /*background color of content*/ color: #000; /*text color of content*/ border: 1px solid #000; /*border color*/ padding: .5em 2ex; } A única desvantagem deste método é que usa cores definidas para as sombras e isso fazer com que não se possa misturar este efeito com outros elementos. Com um fundo branco, as sombras em cinza ficam bem, mas por exemplo, se o fundo fosse vermelho, então o efeito de sombreado deveria se realizar com tons vermelhos escuros. Podemos ver o exemplo em funcionamento em uma página a parte. Método canal alpha Este método é muito parecido ao anterior, mas soluciona o problema de se misturar com outros elementos. O fundo da página onde será mostrado o elemento sombreado é indiferente, inclusive se o sombreado for na mesma página sobre diferentes fundos. Utilize imagens de fundo em formato PNG "alpha transparentes", ao invés de cores definidas na folha de estilo. O código HTML necessário é o mesmo do exemplo anterior, você simplesmente deve modificar o código CSS, em concreto para as classes "blur" e "shadow". Mostramos o código CSS para este exemplo. <style type=text/css> .blur{ background: transparent url(shadow1.png); /*rota para o 80%-transparente 1x1 pixel colorido em preto */ color: inherit; margin-left: 4px; margin-top: 4px; } .shadow{ background: transparent url(shadow2.png); /*rota para o 60%-transparent 1x1pixel colorido em preto */ color: inherit; } .shadow, .content{ position: relative; bottom: 2px; right: 2px; } .content{ background-color: #fff; /*background color of content*/ color: #000; /*text color of content*/ border: 1px solid #000; /*border color*/ padding: .5em 2ex; } </style> Para provar a vantagem deste tipo de fundo, podemos mudar a cor de fundo da página web e veremos como a sombra também mudará de cor. Podemos ver o exemplo em funcionamento em uma página a parte . Método esticar imagem Opinamos que os dois métodos anteriores não são tão bons ou muito bons, devido a que a sombra não parece muito natural. Em outras palavras, não é um efeito suficientemente realista. De forma que abrimos nosso editor gráfico, criamos uma caixa retangular com efeito de sombra e exportamos a uma imagem. Possivelmente possa utilizar essa imagem para criar o efeito de sombra. O código HTML experimental <div class="shade"> <img src="shadow.png" width="0" height="0" alt="" class="shade" /> bla bla</div> O código CSS experimental img.shade{ width: 37ex; height: 9em; /* specify the dimension of the image */ display: block; position: absolute; z-index: -1; /* force the image to show below the content */ right: -3ex; bottom: -1em; } div.shade{ width: 30ex; height: 6em; /* specify the dimension of the content, slightly smaller than the image */ position: relative; z-index: 1; /* force the content to show above the image */ background-color: #fff; border: 1px solid #000; padding: 1em 2ex; margin-right: 6ex; margin-bottom: 3em; } Temos três desvantagens neste método
Um momento. Como faríamos um texto com sombreado? Se utilizar um navegador baseado em Gecko, você poderá visualizar outro efeito interessante para realizar sombreado de textos sem utilizar imagens e "redimensionável" simplesmente mudando o tamanho do texto ou as fontes que usa o navegador (com o menu view>text size > increase / Decrease). O código HTML seria o seguinte: <span id="text">Texto sombreado</span> O código CSS #text{ font-size: 3em; /* optional. just to increase the font size. */ display: block; line-height: 1em; color: #666; /* shadow color */ background-color: transparent; white-space: nowrap; /* wrapping breaks the effect */ } #text:before, #text:after{ content: "Texto sombreado"; /* O mesmo texto que queremos mostrar sombreado */ display: block; } #text:before{ margin-bottom: -1.05em; margin-left: 0.1ex; color: #ccc; /* shadow color */ background-color: transparent; } #text:after{ margin-top: -1.05em; margin-left: -0.1ex; color: #fff; /* text color */ background-color: transparent; } Este efeito pode ser útil por agora. Entretanto, as especificações de CSS2 incluem uma propriedade CSS chamada text-shadow, que serve para definir um efeito de sombra a um texto. Entretanto, a maioria dos navegadores ainda não suporta esta propriedade. Interessantes recursos sobre este tema:
Autoria e outras referências sobre este artigo Dentro deste artigo: + 1 manual relacionado + 1 categoria relacionada
Manuais relacionados com este artigo Dentro de Workshop de CSS Seguinte: Texto na vertical usando CSS Anterior: Esconder com CSS o e-mail aos spambots Categorias relacionadas Através das categorias do nosso diretório podem ser encontrados outros tipos de recursos relacionados com este artigo: + Entrar em CSSComentários dos visitantes Os comentários dos visitantes são para ampliar a informação do artigo. Todos podem participar.
|
| Sobre nós | Copyright | Anuncie | Entrar em contato | <criarweb> |