Ir para o conteúdo principal
Niquelao Acessibilidade web e desenvolvimento front-end em espanhol: padrões WCAG, widgets acessíveis e extensões para Firefox, explicados com código real.

Alguns links neste site são links de afiliados: se comprar através deles, podemos ganhar uma comissão sem custos adicionais para si. Isto nunca afeta o que recomendamos. Consulte a nossa divulgação de afiliados para mais detalhes. Divulgação de afiliados.

Niquelao » Arquivo do blog » Múltiplas imagens de fundo com CSS 3

Até agora, se quiséssemos combinar mais do que uma imagem como fundo, a única coisa que podíamos fazer era utilizar algum dos elementos que tínhamos na nossa página, aplicando um fundo a cada um para obter o resultado desejado. Incluso em algumas ocasiões, utilizávamos marcação extra, diminuindo a qualidade da web ao adicionar marcação com fins meramente apresentacionais.

Mas agora a coisa muda… Graças ao CSS 3, se quisermos utilizar duas ou mais imagens de fundo, à propriedade background-image: poderemos adicionar o caminho de cada uma delas separando-as com vírgulas. Por exemplo: background-image: url(‘fundo1.png’), url(‘fundo2.png’) Com algo tão simples como isto temos declarado o necessário para que o elemento sobre o qual o apliquemos tenha as duas imagens como fundo. Claro, a partir deste ponto surgem novas dúvidas… sobrepõem-se entre elas? podem posicionar-se em locais distintos? pode repetir-se uma sobre um eixo e evitar que a outra o faça? … …e todas têm como resposta SIM .

Relativamente à sobreposição, a primeira imagem que se declara é a que se coloca mais próxima do utilizador . A seguir e por trás desta, coloca-se a seguinte (num eixo perpendicular ao ecrã), depois a seguinte, e assim sucessivamente até à última, que será a que se situa atrás de todas. É como se cada imagem se situasse numa camada . Se além disso declararmos uma cor de fundo, esta ficará por trás de todas as imagens utilizadas.

Quanto ao resto das dúvidas, posso generalizar uma resposta, pois todas surgiram ao pensar nas propriedades que habitualmente utilizamos, ou seja, posição da imagem de fundo ( background-position ), comportamento ao scroll ( background-attachment ) e repetição ( background-repeat ). Se quisermos que cada imagem tenha um valor determinado, apenas teremos de os declarar consecutivamente e separados por vírgulas (tal como fizemos ao declarar as próprias imagens). Por exemplo: background-image: url(‘fundo1.png’), url(‘fundo2.png’), url(‘fundo3.png’); background-position: 0 0, 150px 200px, left center; background-repeat: no-repeat, repeat-x, no-repeat; Com isto declaramos três imagens como fundo, a primeira situar-se-á em cima à esquerda, a segunda deslocar-se-á para a direita 150px e para baixo 200px e a terceira colocar-se-á também à esquerda e centrada verticalmente.

Relativamente à repetição, a primeira e a última não se repetirão e a segunda fá-lo-á sobre o eixo horizontal. Mas aqui o tema não termina. Para os que gostamos de otimizar o código (que deveríamos ser todos), algumas declarações podem ser abreviadas: background-position: 0 0, 150px 200px, left center; passa a: background-position: 0 0, 150px 200px, left; Elimina-se a palavra center .

Como todos sabemos (ou deveríamos saber), quando não se declara um dos valores de posição do fundo, o que toma por defeito é o de centrado ( center ), neste caso vertical. background-repeat: no-repeat, repeat-x, no-repeat; passa a: background-repeat: no-repeat, repeat-x; O terceiro valor pode ser eliminado. A razão é que quando faltam valores, repete-se a lista dos valores já declarados até haver um por imagem (daí que, se começar a relação de valores de novo, o primeiro seja no-repeat ). Mas ainda se pode otimizar mais, aproveitando a propriedade shorthand background: : background: url(‘fundo1.png’) 0 0 no-repeat, url(‘fundo2.png’) 150px 200px repeat-x, url(‘fundo3.png’) left no-repeat; Como verão, tudo isto abre o leque de possibilidades aos nossos designs.

Related: con plan gratuito para empezar hoy mismo.

Alguns navegadores, nas suas versões atuais, começam a ter suporte para múltiplas imagens de fundo. Entre eles estão o Firefox (a partir da versão 3.6), o Chrome , o Safari e o Konqueror .

Se estiverem a utilizar um deles, podem ver o resultado no exemplo que preparei . Lamentando muito, ainda não há suporte no Internet Explorer (já se verá se o incluem na sua futura versão 9) nem no Opera. A seguir incluo-vos um screenshot com o que se mostra no exemplo quando há suporte (se acederem com um navegador sem suporte, apenas verão o contorno ponteado): Para além do comentado, o CSS 3 também inclui novos valores para algumas das propriedades mencionadas, além de novas propriedades que darão grande versatilidade aos nossos designs.

Num próximo artigo tratá-las-ei em detalhe. Para ir abrindo o apetite menciono-vos background-size … sim, é o que estão a pensar! nota: Suponho que, para além do conteúdo técnico do artigo, o mais apetecível é o bolo da foto . Pois para vos dar um pouco de inveja direi que a foto fui eu que a tirei e é um bolo de frutas que me preparou a Dolores… É evidente que ela também domina o tema de controlar a apresentação, mas além disso garanto-vos que domina a gestão de conteúdos, pois estava delicioso… Múltiplas imagens de fundo com CSS 3 Categoria: CSS —> 4 comentários Múltiplas imagens de fundo com CSS 3 26 de Novembro de 2009 […] agora a coisa muda… Múltiplas imagens de fundo com CSS 3 […] Tweets that mention Niquelao » Arquivo do blog » Múltiplas imagens de fundo com CSS3 — Topsy.com 27 de Novembro de 2009 […] This post was mentioned on Twitter by Jorge Rumoroso, Juanjo Fernández.

Worth a look: — Accesibilidad gestionada: automatización combinada con revisión humana.

Juanjo Fernández said: RT @rumoroso: #niquelao Múltiplas imagens de fundo com CSS 3 http://bit.ly/4YqcJ2 #CSS3 […] Niquelao » Arquivo do blog » CSS 3: Propriedades de fundo 2 de Dezembro de 2009 […] suporte nas versões mais atuais dos navegadores (como já mencionei na entrada intitulada Múltiplas imagens de fundo com CSS 3), incluindo-se em alguns casos de forma experimental (por exemplo no Firefox através do prefixo […] Niquelao » Arquivo do blog » Mais sobre CSS 3: background-origin e background-clip 13 de Dezembro de 2009 […] já expliquei noutro artigo, com CSS 3 poderemos incluir mais do que uma imagem de fundo.

As propriedades background-origin e background-clip admitem a inclusão de um valor para cada […] Podes acompanhar os comentários graças ao feed RSS 2.0 . Também podes enviar um trackback do teu site.

Artigo anterior: Outro toque de estilo no Curso de CSS Artigo seguinte: CSS 3: Propriedades de fundo —> —> —> Esta obra está sob uma licença de Creative Commons .

P.S. A few readers have asked which superposición de accesibilidad (overlay) we actually reach for — it's accessiBe; if you want the current details.


¿Cumplir WCAG sin tocar el código?

Superposición de IA que promete cumplimiento WCAG en 48 horas