Tutorial: Como criar enfeites de Natal com CSS3 para árvore de Natal

O que é marketing de conversação? Guia de 10 minutos.

Compartilhe esta postagem

Índice do Conteúdo

Receba nosso boletim

Novos contatos

nossa newsletter

Como criar enfeites de árvore de Natal CSS3 Neste guia, exibiremos o poder do CSS3 em formas complexas de desenho. Magicamente criaremos ornamentos de árvore de Natal usando apenas CSS3 e HTML (sem imagens). Em particular, estaremos desenhando enfeitesque são a ornamentação da Hallmark das árvores de Natal.

Observe que isso é apenas uma prova de conceito divertida que explora as possíveis aplicações do CSS3. Se você pretende usar isso na produção, deve estar ciente de que o que criaremos usaremos as especificações do W3C que ainda não são, ou nunca serão suportadas em muitos navegadores (como o IE6 ao IE8). Além disso, a marcação deve ser atualizada para evitar vazios div elementos.

Ingredientes CSS

Antes de começarmos, vamos repassar rapidamente o que estamos usando.

  1. :before e :after Pseudo-elementos: O uso de pseudo-elementos nos ajudará a reduzir a quantidade de HTML desnecessário que precisamos usar. Se você já trabalhou com cantos arredondados no CSS2 antes, provavelmente sabe que, para produzir cantos arredondados flexíveis que acomodam vários tamanhos de conteúdo, você teve que usar muitas divs vazias e tal. Ao usar esses elementos, teremos uma marcação mínima.

    Nesse caso, apenas um vazio div por bobagem, que, se você fosse empreendedor, preencheria com algum conteúdo de texto. Observe que esses pseudo-elementos estão em especificações CSS2.

  2. CSS3 linear e radial gradientes: Para obter os preenchimentos de cores metálicos e brilha dos enfeites, usaremos gradientes de cores.
  3. Sombras de caixa, transformações, raio de borda, etc.: Para criar as formas, usaremos uma combinação de box-shadowAssim, transforme border-radius (para cantos arredondados).

Html

Primeiro, vamos criar a marcação. Como você pode ver abaixo, a estrutura é mínima e contém apenas a quantidade mínima de marcação necessária. Como os globos precisam ser elementos de bloqueio, eu escolhi ir com

instead of no entanto, se você não se sentir confortável com isso, pode usar tags e depois use o display: block Par de propriedade/valor CSS.

Eu os coloquei em uma lista não ordenada porque decidi que eles são um grupo de itens sem hierarquia específica (por exemplo red-bauble não é maior que green-bauble), e assim, para mim, a metáfora das listas não ordenadas é mantida.

Explanation of the IDs/classes:

  1. #bauble-container is our unordered list, which will be used for targeting the list items (
  2. ) with greater specificity.
  3. .bauble is the main part of the ornament; the spherical shape.
  4. .red-bauble, .blue-bauble, .yellow-bauble and .green-bauble are the classes used for adding color variations. It makes our work flexible so that, if you wanted various combinations, you’re not stuck with the color combinations I chose. For example, you could have two yellow baubles or no yellow baubles–that’s why we use classes, and not IDs, for these.

CSS

What follows are the style rules that will turn our boring unordered list above into a magical set of Christmas tree ornaments. For discussion, I have commented the CSS below so that you can see how it works to highlight the major parts of the CSS. Note that, in production, you would not want this much commenting in your stylesheet because it is over the top and because it can increase your stylesheet’s file size.

/* General */ html { background: #f2f5f6; /* Fallback background color if gradients are not supported */ background: -moz-linear-gradient(top, #f2f5f6, #c8d7dc); background: -webkit-gradient(linear,left bottom,left top,color-stop(0, #c8d7dc),color-stop(1, #f2f5f6)); height: 100%; } #bauble-container { list-style: none; /* Remove bullets */ width: 568px; margin: 150px auto; /* Center it */ padding: 0; /* In production, this may not be needed if you reset your styles in your global stylesheet: https://www.MidiaPro.com/blog/web-design/css-tip-1-resetting-your-styles-with-css-reset/ */ } #bauble-container li { margin: 0 20px; /* let's add some space */ float: left; /* place them in line */ } /* This is the part where the Christmas bauble string is added */ #bauble-container li:before { content: ""; background: #dadada; /* Fallback */  background: -moz-linear-gradient(bottom, #9c9c9c, rgba(255,255,255,0) ); background: -webkit-gradient(linear, left bottom, right top, from(#9c9c9c), color-stop(100%, rgba(255,255,255,0))); height: 50px; width: 2px; display: block; margin: 0 auto; } /* Alernatively rotate them */ #bauble-container li:nth-child(odd) { -moz-transform: rotate(-5deg); /* Firefox */ -webkit-transform: rotate(-5deg); /* Chrome and Safari */ -o-transform: rotate(-5deg); /* Opera */ -ms-transform: rotate(-5deg); /* Surprise! IE9 with its own prefix */ } #bauble-container li:nth-child(even) { -moz-transform: rotate(5deg); -webkit-transform: rotate(5deg); -o-transform: rotate(5deg); -ms-transform: rotate(5deg); }  /* Style the bauble */ .bauble { -moz-border-radius: 100px; border-radius: 100px; -moz-box-shadow: 0 0 5px #777777; box-shadow: 0 0 5px #777777; -webkit-box-shadow: 0 0 5px #777777; border: 1px solid rgba(0,0,0,0.3); position: relative; height: 100px; width: 100px; } /* Style the bauble head */ .bauble:before { content: ""; background: #fff; /* Fallback */ background: -moz-linear-gradient(left, #fff, #9c9c9c, #fff, #9c9c9c ); background: -webkit-gradient(linear, left center, right center, from(#fff), color-stop(25%, #9c9c9c), color-stop(50%, #fff), color-stop(75%, #9c9c9c)); -moz-border-radius: 2px; border-radius: 2px; -moz-box-shadow: 0 1px 0 rgba(0,0,0,0.2), 0 -1px 0 rgba(255,255,255,0.3) inset; box-shadow: 0 1px 0 rgba(0,0,0,0.2), 0 -1px 0 rgba(255,255,255,0.3) inset; -webkit-box-shadow: 0 1px 0 rgba(0,0,0,0.2), 0 -1px 0 rgba(255,255,255,0.3) inset; border: 1px solid #dadada ; height: 10px; width: 20px; position: absolute; left: 50%; top: -12px; margin-left: -10px; } /* Add bauble light reflection */  .bauble:after { content: ""; -moz-border-radius: 100px; border-radius: 100px; background: #fff; /* Fallback */ background: -moz-linear-gradient(bottom, #fff, rgba(255,255,255,0.1) ); background: -webkit-gradient(linear, left bottom, right top, from(#fff), color-stop(100%, rgba(255,255,255,0.1))); position: absolute; top: 0; left: 50%; margin-left: -40px; opacity: 0.15; height: 80px; width: 80px; } /* Colorize them */ .red-bauble { background: #c8171f; background: -moz-radial-gradient(center 45deg,circle cover, #f9d0be, #c8171f); background: -webkit-gradient(radial, 40% 40%, 0, 40% 40%, 50, from(#f9d0be), to(#c8171f)); } .blue-bauble { background: #00a1ee; /* Fallback */ background: -moz-radial-gradient(center 45deg,circle cover, #cde6f9, #00a1ee); background: -webkit-gradient(radial, 40% 40%, 0, 40% 40%, 50, from(#cde6f9), to(#00a1ee)); } .yellow-bauble { background: #fcb83d; /* Fallback */  background: -moz-radial-gradient(center 45deg,circle cover, #fcf3a6, #fcb83d); background: -webkit-gradient(radial, 40% 40%, 0, 40% 40%, 50, from(#fcf3a6), to(#fcb83d)); } .green-bauble { background: #4d8d00; /* Fallback */ background: -moz-radial-gradient(center 45deg,circle cover, #d1e5b2, #4d8d00); background: -webkit-gradient(radial, 40% 40%, 0, 40% 40%, 50, from(#d1e5b2), to(#4d8d00)); }

Comparação de como os navegadores da web renderizam CSS3

Então, como parece nosso trabalho em vários navegadores? Vamos dar uma olhada, não é?

Mozilla Firefox 3.6

Mozilla Firefox 3.6

Google Chrome 6.0.4

No Google Chrome, você pode notar tons de cores ligeiramente diferentes devido à diferença na maneira como os gradientes CSS3 são renderizados. Google Chrome 6.0.4

Safari 5.02

Os ornamentos em Safari e Chrome são quase idênticos porque usam o mesmo mecanismo de layout (Webkit).

Safari 5.02

Opera 10.63

Embora os navegadores de ópera suportem a maioria das especificações do W3C CSS3, os gradientes de cores estão faltando para que eles se degradam para a cor sólida que definimos para o background propriedades. Opera 10.63

IE9 visualização

O IE9 se comporta de maneira semelhante à ópera, mas as últimas notícias sobre esse navegador são que ele suportará transformações 2D como o Webkit (com seu próprio prefixo de fornecedores, -ms-). IE9 visualização

Ie8

Mesmo se o IE8 tiver apoio para pseudo-elementos como :before e :afterFalta totalmente o suporte ao CSS3, então nossos enfeites parecem caixas.

Eu o incluí aqui apenas para você ver como nosso trabalho se degrada em navegadores que não têm suporte ao CSS3. Eles parecem Discos de disquete (Ligado porque nosso público mais jovem pode não saber quais são esses dispositivos antigos), para que possam ser adequados para a árvore de Natal de uma família nerd! Ie8 IE6 e IE7 não poderiam se juntar à nossa festa de Natal por razões conhecidas: eles falta mais do que apenas as especificações do CSS3 suportam, mas também o :before e :after pseudo-elementos; Então, teríamos apenas quatro quadrados com cores diferentes nesses dois navegadores.

Espero que você tenha sido inspirado a aprender sobre o CSS3 neste guia e que descobriu um ou dois truques que pode usar em seus projetos. Desejo -lhe um Feliz Natal e Boas Festas!

Conteúdo relacionado

Facilitar a estimativa dos custos da web de design

Os custos de design de sites podem ser complicados de pregar. Obtenha uma estimativa instantânea para um design de web personalizado com a calculadora de custos de design de site gratuita!

Experimente nossa calculadora de custos gratuitos de web design

Calculadora de cotação do projeto

Perguntas frequentes sobre o Guia de Desenho de Ornamentos de Natal com CSS3

1. Quais são os ingredientes CSS utilizados para criar os ornamentos de Natal?

Os ingredientes CSS utilizados incluem pseudo-elementos :before e :after, gradientes lineares e radiais do CSS3, sombras de caixa, transformações e raio de borda.

2. Por que é importante usar pseudo-elementos :before e :after?

O uso de pseudo-elementos ajuda a reduzir a quantidade de HTML desnecessário, resultando em uma marcação mais limpa. Além disso, ajuda a criar cantos arredondados flexíveis sem a necessidade de divs adicionais.

3. Como é feita a estilização dos ornamentos de Natal?

Os ornamentos são estilizados usando propriedades como border-radius, box-shadow e gradientes de cores. Cada ornamento possui uma classe específica para adicionar variações de cores.

4. Como os ornamentos de Natal são renderizados em diferentes navegadores?

Os ornamentos são renderizados de forma diferente em diferentes navegadores. Enquanto navegadores modernos como Firefox e Chrome exibem corretamente os ornamentos com todos os efeitos CSS3, navegadores mais antigos como IE8 podem não renderizá-los corretamente.

5. Posso usar esses ornamentos de Natal em produção?

Este guia é uma prova de conceito divertida que explora as possíveis aplicações do CSS3. Se você pretende usar esses ornamentos em produção, deve estar ciente de que nem todos os navegadores suportam as especificações do CSS3 utilizadas. Recomendamos fazer testes em diferentes navegadores antes de implementar em um projeto real.

Assine a nossa newsletter

Receba atualizações e aprenda com os melhores

explore mais conteúdo

aprenda mais com vídeos

você que impulsionar seu negócio?

entre em contato conosco e saiba como

contatos midiapro
small_c_popup.png

Saiba como ajudamos mais de 100 das principais marcas a obter sucesso

Vamos bater um papo sem compromisso!