{"id":260647,"date":"2022-12-20T14:02:00","date_gmt":"2022-12-20T11:02:00","guid":{"rendered":"https:\/\/inform.click\/7-tecnicas-impressionantes-de-css3-que-voce-deveria-experimentar\/"},"modified":"2022-12-20T14:07:00","modified_gmt":"2022-12-20T11:07:00","slug":"7-tecnicas-impressionantes-de-css3-que-voce-deveria-experimentar","status":"publish","type":"post","link":"https:\/\/inform.click\/pt-pt\/7-tecnicas-impressionantes-de-css3-que-voce-deveria-experimentar\/","title":{"rendered":"7 t\u00e9cnicas impressionantes de CSS3 que voc\u00ea deveria experimentar"},"content":{"rendered":"<p>\n  A evolu\u00e7\u00e3o do CSS (Cascading Style Sheets) com o HTML tem sido incr\u00edvel. Existem muitos recursos como Flexbox, CSS Grid e propriedades personalizadas CSS introduzidas recentemente.\n<\/p>\n<p>\n  Seu avan\u00e7o cont\u00ednuo e enorme potencial s\u00e3o o que cativam os desenvolvedores a experimentar novas t\u00e9cnicas de CSS e ultrapassar os limites do que ele pode fazer. A combina\u00e7\u00e3o das tecnologias HTML 5 e CSS3 \u00e9, sem d\u00favida, um matador de flash.\n<\/p>\n<p>\n  N\u00e3o \u00e9 \u00e0 toa que um plano de CSS bem executado pode controlar quase qualquer faceta do design e levar a uma melhor experi\u00eancia do usu\u00e1rio, o que \u00e9 absolutamente necess\u00e1rio. Afinal, os visitantes carregam certas expectativas quando visualizam seu site por meio de um laptop, desktop, tablet ou qualquer outro meio.\n<\/p>\n<p>\n  Mas quais s\u00e3o as t\u00e9cnicas de CSS em alta? N\u00e3o \u00e9 uma pergunta \u00f3bvia que passa pela cabe\u00e7a quando falamos em criar um site atraente e f\u00e1cil de usar.\n<\/p>\n<p>\n  \u00c9 por isso que criamos algumas das novas t\u00e9cnicas e dicas de CSS para dominar suas habilidades de web design. Cada um inclui algumas explica\u00e7\u00f5es e trechos de c\u00f3digo de exemplo.\n<\/p>\n<p>\n  Ent\u00e3o vamos direto ao assunto!\n<\/p>\n<h5>\n  1 Alinhar verticalmente com Flexbox<br \/>\n<\/h5>\n<p>\n  Os desenvolvedores anteriores costumavam enfrentar muitas dificuldades para alinhar um texto ou qualquer outro elemento verticalmente centralizado. Mas agora, ap\u00f3s a introdu\u00e7\u00e3o da nova especifica\u00e7\u00e3o CSS3 <strong>Flexbox<\/strong>, as coisas ficaram muito mais f\u00e1ceis.\n<\/p>\n<p>\n  A propriedade, <strong>display: flex<\/strong> fornece uma maneira f\u00e1cil para os usu\u00e1rios alinharem qualquer texto ou elemento no centro. Aqui est\u00e1 o c\u00f3digo de exemplo!\n<\/p>\n<p>\n  <strong>HTML:<\/strong>\n<\/p>\n<div class=\"align-vertically\">\n  <code>Vertically centered!<\/code>\n<\/div>\n<pre> <\/pre>\n<p>\n  <code>&lt;strong&gt;CSS:&lt;\/strong&gt;<\/code>\n<\/p>\n<pre><code>&lt;code&gt;.align-vertically {\n  background: #FFA500;\n  color: #hhh;\n  display: flex;\n  align-items: center;\n  height: 200px;\n}<\/code><\/code><\/pre>\n<p>\n  No c\u00f3digo CSS acima, display: flex descreve o layout Flexbox para o elemento, enquanto align-items: center; \u00e9 respons\u00e1vel pela centraliza\u00e7\u00e3o vertical do texto.\n<\/p>\n<p>\n  <strong>RESULTADO:<\/strong>\n<\/p>\n<h5>\n  2 grade CSS responsiva<br \/>\n<\/h5>\n<p>\n  N\u00e3o torne sua grade uma exce\u00e7\u00e3o, torne-a responsiva tamb\u00e9m, como tudo em seu design.\n<\/p>\n<p>\n  Existem muitas maneiras pelas quais voc\u00ea pode tornar sua grade responsiva com o CSS Grid. E a melhor parte de us\u00e1-lo \u00e9 que voc\u00ea poder\u00e1 criar uma grade mais flex\u00edvel que lhe dar\u00e1 a apar\u00eancia desejada, independentemente do tamanho do dispositivo.\n<\/p>\n<p>\n  Al\u00e9m disso, a grade CSS tamb\u00e9m permite trabalhar com tamanhos de coluna desiguais e iguais. \u00c9 uma grande pe\u00e7a de tecnologia repleta de op\u00e7\u00f5es que d\u00e3o liberdade aos usu\u00e1rios para ter controle sobre seus projetos.\n<\/p>\n<p>\n  Voc\u00ea pode usar v\u00e1rios pontos de interrup\u00e7\u00e3o, a altura de v\u00e1rias dimens\u00f5es e fazer outros posicionamentos, conforme mostrado no exemplo abaixo.\n<\/p>\n<p>\n  <strong>HTML:<\/strong>\n<\/p>\n<div class=\"grid\">\n  <code>\u00a0\u00a0<\/code><\/p>\n<div class=\"grid-item\"><\/div>\n<p><code>\u00a0\u00a0<\/code><\/p>\n<div class=\"grid-item\"><\/div>\n<p><code>\u00a0\u00a0<\/code><\/p>\n<div class=\"grid-item\"><\/div>\n<p><code>\u00a0\u00a0<\/code><\/p>\n<div class=\"grid-item\"><\/div>\n<p><code>\u00a0\u00a0<\/code><\/p>\n<div class=\"grid-item\"><\/div>\n<p><code>\u00a0\u00a0<\/code><\/p>\n<div class=\"grid-item\"><\/div>\n<p><code>\u00a0\u00a0<\/code><\/p>\n<div class=\"grid-item\"><\/div>\n<p><code>\u00a0\u00a0<\/code><\/p>\n<div class=\"grid-item\"><\/div>\n<p><code>\u00a0\u00a0<\/code><\/p>\n<div class=\"grid-item\"><\/div>\n<p><code>\u00a0\u00a0<\/code><\/p>\n<div class=\"grid-item\"><\/div>\n<p><code>\u00a0\u00a0<\/code><\/p>\n<div class=\"grid-item\"><\/div>\n<p><code>\u00a0\u00a0<\/code><\/p>\n<div class=\"grid-item\"><\/div>\n<p><code>\u00a0\u00a0<\/code><\/p>\n<div class=\"grid-item\"><\/div>\n<p><code>\u00a0\u00a0<\/code><\/p>\n<div class=\"grid-item\"><\/div>\n<p><code>\u00a0\u00a0<\/code><\/p>\n<div class=\"grid-item\"><\/div>\n<p><code>\u00a0\u00a0<\/code><\/p>\n<div class=\"grid-item\"><\/div>\n<p><code>\u00a0\u00a0<\/code><\/p>\n<div class=\"grid-item\"><\/div>\n<p><code>\u00a0\u00a0<\/code><\/p>\n<div class=\"grid-item\"><\/div>\n<p><code>\u00a0\u00a0<\/code><\/p>\n<div class=\"grid-item\"><\/div>\n<p><code>\u00a0\u00a0<\/code><\/p>\n<div class=\"grid-item\"><\/div>\n<p><code>\u00a0\u00a0<\/code><\/p>\n<div class=\"grid-item\"><\/div>\n<p><code>\u00a0\u00a0<\/code><\/p>\n<div class=\"grid-item\"><\/div>\n<p><code>\u00a0\u00a0<\/code><\/p>\n<div class=\"grid-item\"><\/div>\n<p><code>\u00a0\u00a0<\/code><\/p>\n<div class=\"grid-item\"><\/div>\n<p><code>\u00a0\u00a0<\/code><\/p>\n<div class=\"grid-item\"><\/div>\n<p><code>\u00a0\u00a0<\/code><\/p>\n<div class=\"grid-item\"><\/div>\n<p><code>\u00a0\u00a0<\/code><\/p>\n<div class=\"grid-item\"><\/div>\n<p><code>\u00a0\u00a0<\/code><\/p>\n<div class=\"grid-item\"><\/div>\n<p><code>\u00a0\u00a0<\/code><\/p>\n<div class=\"grid-item\"><\/div>\n<p><code>\u00a0\u00a0<\/code><\/p>\n<div class=\"grid-item\"><\/div>\n<p><code>\u00a0\u00a0<\/code><\/p>\n<div class=\"grid-item\"><\/div>\n<p><code>\u00a0\u00a0<\/code><\/p>\n<div class=\"grid-item\"><\/div>\n<p><code>\u00a0\u00a0<\/code><\/p>\n<div class=\"grid-item\"><\/div>\n<p><code>\u00a0\u00a0<\/code><\/p>\n<div class=\"grid-item\"><\/div>\n<p><code>\u00a0\u00a0<\/code><\/p>\n<div class=\"grid-item\"><\/div>\n<p><code>\u00a0\u00a0<\/code><\/p>\n<div class=\"grid-item\"><\/div>\n<\/div>\n<p>\n  <code>&lt;strong&gt;CSS:&lt;\/strong&gt;<\/code>\n<\/p>\n<pre><code>&lt;code&gt;.grid\n {\n  display: grid;\n  grid-template-rows: repeat(5, 1fr);\n  grid-auto-columns: calc((100vh - 3em) \/ 4);\n  grid-auto-flow: column;\n  grid-gap: 1em;\n  height: 100vh;\n}\n.grid-item:nth-child(3n)\n {\n  background-color: purple;\n}\n.grid-item:nth-child(3n + 2)\n{\n  background-color: pink;\n}<\/code><\/code><\/pre>\n<p>\n  A unidade de fra\u00e7\u00e3o (fr) usada no c\u00f3digo CSS acima \u00e9 a unidade flex\u00edvel que separa o espa\u00e7o aberto de acordo com suas diretrizes. Cada declara\u00e7\u00e3o fr \u00e9 para a coluna, ent\u00e3o voc\u00ea pode somar as lacunas e deixar a grade pronta.\n<\/p>\n<p>\n  <strong>RESULTADO:<\/strong>\n<\/p>\n<p><a href=\"https:\/\/inform.click\/wp-content\/uploads\/2022\/11\/post-328841-638454deb6daf.webp\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.click\/wp-content\/uploads\/2022\/11\/post-328841-638454deb6daf.webp\" alt=\"\" \/><\/a><\/p>\n<h5>\n  3 anima\u00e7\u00f5es de texto<br \/>\n<\/h5>\n<p>\n  Voc\u00ea pode ter criado anima\u00e7\u00f5es de plano de fundo com CSS, mas agora tamb\u00e9m influencia como os usu\u00e1rios interagem e se envolvem com os elementos de texto de um site. Desde ajustes de foco at\u00e9 fazer as palavras flutuarem no ar, o CCS3 tornou tudo isso poss\u00edvel.\n<\/p>\n<p>\n  Sites que n\u00e3o possuem muitos elementos atraentes para envolver seus usu\u00e1rios podem tirar o melhor proveito dessa caracter\u00edstica. Aqui est\u00e1 um pequeno exemplo disso.\n<\/p>\n<p>\n  <strong>HTML:<\/strong>\n<\/p>\n<div class=\"Menu\">\n<ul class=\"Menu-list\" data-offset=\"10\">\n<li class=\"Menu-list-item\" data-offset=\"20\" onclick=\"\">\n      <code>LIVE &lt;span class=\"Mask\"&gt;&lt;span&gt;LIVE&lt;\/span&gt;&lt;\/span&gt; &lt;span class=\"Mask\"&gt;&lt;span&gt;LIVE&lt;\/span&gt;&lt;\/span&gt;<\/code>\n    <\/li>\n<li class=\"Menu-list-item\" data-offset=\"16\" onclick=\"\">LAUGH <span class=\"Mask\"><span>LAUGH<\/span><\/span> <span class=\"Mask\"><span>LAUGH<\/span><\/span>\n    <\/li>\n<li class=\"Menu-list-item\" data-offset=\"12\" onclick=\"\">LOVE <span class=\"Mask\"><span>LOVE<\/span><\/span> <span class=\"Mask\"><span>LOVE<\/span><\/span>\n    <\/li>\n<\/ul>\n<\/div>\n<p>\n  <strong>CSS:<\/strong>\n<\/p>\n<pre><code>$perspective:     60rem;\n$font-size:       5.25rem;\n$split-position:  50%;\n$split-thickness: 3px;\n$split-color:     #FF2C75;\n%font-settings {\nfont-family: \"Comic Sans MS\", system-ui, sans-serif;\nfont-style: normal;\nfont-weight: normal;\n-webkit-font-smoothing: antialiased;\n-webkit-font-kerning: normal;\n-webkit-text-size-adjust: 100%;\n}\nhtml,\nbody {\n  width: 100vw;\n  height: 100vh;\n}\nbody {\n  @extend %font-settings;\n  background: linear-gradient(45deg, #02001F,#008080);\n  transform-style: preserve-3d;\n  transform: perspective($perspective);\n  position: fixed;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n}\n.Menu-list {\n  font-size: $font-size;\n  line-height: 1.2;\n  text-transform: uppercase;\n  text-align: center;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  transform: rotateX(-10deg) rotateY(20deg); \/\/ overwritten by JS\n}\n.Menu-list-item {\n  position: relative;\n  color: transparent;\n  cursor: pointer;\n  &::before {\n    content: '';\n    display: block;\n    position: absolute;\n    top: $split-position;\n    left: -10%;\n    right: -10%;\n    height: $split-thickness;\n    border-radius: $split-thickness;\n    margin-top: -($split-thickness \/ 2);\n    background: $split-color;\n    transform: scale(0);\n    transition: transform .8s cubic-bezier(.16,1.08,.38,.98);\n    z-index: 1;\n  }\n}\n.Mask {\n  display: block;\n  position: absolute;\n  overflow: hidden;\n  color: $split-color;\n  top: 0;\n  height: $split-position;\n  transition: all .8s cubic-bezier(.16,1.08,.38,.98);\n  span { display: block; }\n}\n.Mask + .Mask {\n  top: $split-position - 0.1;\n  height: 100 - $split-position + 0.1;\n  span { transform: translateY(-$split-position); }\n}\n.Menu-list-item:hover,\n.Menu-list-item:active {\n  .Mask { color: #FFF; transform: skewX(12deg) translateX(5px); }\n  .Mask + .Mask { transform: skewX(12deg) translateX(-5px); }\n  &::before { transform: scale(1); }\n}<\/code><\/pre>\n<p>\n  Assim, voc\u00ea tamb\u00e9m pode criar v\u00e1rios elementos de texto din\u00e2mico para o seu site. N\u00e3o \u00e9 divertido?\n<\/p>\n<p>\n  <strong>RESULTADO:<\/strong>\n<\/p>\n<p><a href=\"https:\/\/inform.click\/wp-content\/uploads\/2022\/11\/post-328841-638454e335804.webp\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.click\/wp-content\/uploads\/2022\/11\/post-328841-638454e335804.webp\" alt=\"\" \/><\/a><\/p>\n<h5>\n  Layout de 4 colunas<br \/>\n<\/h5>\n<p>\n  Normalmente, os layouts baseados em colunas s\u00e3o criados usando Javascript, o que \u00e9 bastante complicado e demorado. Mas o CSS trouxe uma maneira de facilitar a tarefa de desenvolvedores e web designers.\n<\/p>\n<p>\n  A seguir est\u00e1 a regra de coluna CSS atrav\u00e9s da qual voc\u00ea pode criar um layout baseado em coluna para o seu site.\n<\/p>\n<p>\n  <strong>HTML:<\/strong>\n<\/p>\n<div class=\"container\">\n  <code>Place a container component in order to start building the format. Sometimes you may be able to get rid of the container later, but getting the container component makes it easier to handle across different web browsers for most fixed-width layouts. It defines how wide the content of the web page will be, as well as any external margins and inside padding.<\/code>\n<\/div>\n<pre> <\/pre>\n<p>\n  <code>&lt;strong&gt;CSS:&lt;\/strong&gt;<\/code>\n<\/p>\n<pre><code>&lt;code&gt;.container {\n  \/* Old Chrome, Safari and Opera *\/\n  -webkit-column-count: 3;\n  -webkit-column-gap: 40px;\n  -webkit-column-rule-style: solid;\n  -webkit-column-rule-width: 4px;\n  -webkit-column-rule-color: orange;\n  \/* Old Firefox *\/ \n  -moz-column-count: 3;\n  -moz-column-gap: 40px;\n  -moz-column-rule-style: solid;\n  -moz-column-rule-width: 4px;\n  -moz-column-rule-color: orange; \n  \/* Standard syntax *\/\n  column-count: 3;\n  column-gap: 40px;\n  column-rule-style: solid;\n  column-rule-width: 4px;\n  column-rule-color: orange;\n}<\/code><\/code><\/pre>\n<p>\n  <strong>RESULTADO:<\/strong>\n<\/p>\n<p><a href=\"https:\/\/inform.click\/wp-content\/uploads\/2022\/11\/post-328841-638454e7b2165.webp\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.click\/wp-content\/uploads\/2022\/11\/post-328841-638454e7b2165.webp\" alt=\"\" \/><\/a><\/p>\n<h5>\n  5 Orienta\u00e7\u00e3o da tela<br \/>\n<\/h5>\n<p>\n  Muitas pessoas pensam que a orienta\u00e7\u00e3o da tela e a orienta\u00e7\u00e3o do dispositivo funcionam para o mesmo prop\u00f3sito. Mas esse n\u00e3o \u00e9 o caso. A orienta\u00e7\u00e3o da tela \u00e9 um pouco diferente do dispositivo.\n<\/p>\n<p>\n  Mesmo que um dispositivo n\u00e3o seja capaz de detectar sua orienta\u00e7\u00e3o, uma tela sempre pode. E se o dispositivo tamb\u00e9m for capaz, \u00e9 bom ter controle sobre a orienta\u00e7\u00e3o da tela para que voc\u00ea possa manter ou alterar a interface do seu site.\n<\/p>\n<p>\n  Existem 2 maneiras de lidar com a orienta\u00e7\u00e3o da tela; CSS ou Javascript. Mas \u00e9 f\u00e1cil quando voc\u00ea faz isso com CSS Orientation Media Query. Como permite que o conte\u00fado ajuste seu formato, n\u00e3o importa se a janela do navegador est\u00e1 no modo paisagem ou no modo retrato. Para entender melhor, vejamos o exemplo a seguir.\n<\/p>\n<p>\n  <strong>HTML:<\/strong>\n<\/p>\n<ul id=\"toolbar\">\n  &nbsp;&nbsp;<\/p>\n<li>\n    <code>A<\/code>\n  <\/li>\n<p>&nbsp;&nbsp;<\/p>\n<li>\n    <code>B<\/code>\n  <\/li>\n<p>&nbsp;&nbsp;<\/p>\n<li>\n    <code>C<\/code>\n  <\/li>\n<\/ul>\n<pre>\n<br \/>If you want a button bar to stretch along the device's longest display dimension. You can do that quickly and automatically by using a media query.<\/pre>\n<p>\n  <code>zzzzz<\/code>\n<\/p>\n<p>\n  <code>&lt;strong&gt;CSS:&lt;\/strong&gt;<\/code>\n<\/p>\n<pre><code>&lt;code&gt;\/* First let's define some common styles *\/\n \nhtml, body {\n  width: 100%;\n  height: 100%;\n}\n \nbody {\n  border: 1px solid black;\n \n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n \np {\n  font  : 1em sans-serif;\n  margin: 0;\n  padding: .5em;\n}\n \nul {\n  list-style: none;\n \n  font  : 1em monospace;\n  margin: 0;\n  padding: .5em;\n \n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n \n  background: black;\n}\n \nli {\n  display: inline-block;\n  margin: 0;\n  padding: 0.5em;\n  background: white;\n}\n\/* For portrait, we want the toolbar on top *\/\n \n@media screen and (orientation: portrait) {\n  #toolbar {\n    width: 100%;\n  }\n}\n \n\/* For landscape, we want the toolbar stick on the left *\/\n \n@media screen and (orientation: landscape) {\n  #toolbar {\n    position: fixed;\n    width: 2.65em;\n    height: 100%;\n  }\n \n  p {\n    margin-left: 2em;\n  }\n \n  li + li {\n    margin-top: .5em;\n  }\n}<\/code><\/code><\/pre>\n<p>\n  <strong>RESULTADO:<\/strong>\n<\/p>\n<p><a href=\"https:\/\/inform.click\/wp-content\/uploads\/2022\/11\/post-328841-638454ebae2d8.webp\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.click\/wp-content\/uploads\/2022\/11\/post-328841-638454ebae2d8.webp\" alt=\"\" \/><\/a><\/p>\n<h5>\n  6 listas separadas por v\u00edrgulas<br \/>\n<\/h5>\n<p>\n  N\u00e3o h\u00e1 d\u00favida de que as listas de marcadores s\u00e3o muito comumente usadas por escrito para transmitir qualquer informa\u00e7\u00e3o com mais precis\u00e3o e clareza. Mas uma coisa com a qual a maioria das pessoas luta \u00e9 adicionar v\u00edrgulas em todos os pontos das listas.\n<\/p>\n<p>\n  Com este trecho de c\u00f3digo mencionado abaixo, voc\u00ea pode facilmente adicionar v\u00edrgulas \u00e0 sua lista, exceto a \u00faltima.\n<\/p>\n<p>\n  <strong>HTML:<\/strong>\n<\/p>\n<ul>\n  &nbsp;&nbsp;<\/p>\n<li>\n    <code>Apple<\/code>\n  <\/li>\n<p>&nbsp;&nbsp;<\/p>\n<li>\n    <code>Pineapple<\/code>\n  <\/li>\n<p>&nbsp;&nbsp;<\/p>\n<li>\n    <code>Custard Apple<\/code>\n  <\/li>\n<\/ul>\n<p>\n  <code>&lt;strong&gt;CSS:&lt;\/strong&gt;<\/code>\n<\/p>\n<pre><code>&lt;code&gt;body{\n  font-family: Arial;\n  font-size:30px;\n}\n \nul &gt; li:not(:last-child)::after {\n  content: \",\";\n}<\/code><\/code><\/pre>\n<p>\n  <strong>RESULTADO:<\/strong>\n<\/p>\n<p><a href=\"https:\/\/inform.click\/wp-content\/uploads\/2022\/11\/post-328841-638454efabfc9.webp\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.click\/wp-content\/uploads\/2022\/11\/post-328841-638454efabfc9.webp\" alt=\"\" \/><\/a><\/p>\n<h5>\n  7 caixa de sele\u00e7\u00e3o animada<br \/>\n<\/h5>\n<p>\n  Bem, a maioria das pessoas est\u00e1 muito ciente do plano de fundo do CSS e das anima\u00e7\u00f5es de texto. Mas muitos n\u00e3o sabem sobre anima\u00e7\u00f5es de caixa de sele\u00e7\u00e3o.\n<\/p>\n<p>\n  Sim, al\u00e9m do plano de fundo e dos textos, voc\u00ea tamb\u00e9m pode tornar sua se\u00e7\u00e3o de caixas de sele\u00e7\u00e3o visualmente atraente. N\u00e3o \u00e9 \u00f3timo?\n<\/p>\n<p>\n  Abaixo est\u00e1 um exemplo que voc\u00ea pode consultar:\n<\/p>\n<p>\n  <strong>HTML:<\/strong>\n<\/p>\n<h1>\n  <code>Animated checkboxes using iconfonts<\/code><br \/>\n<\/h1>\n<pre>\n<!-- A list of checkboxes --><\/pre>\n<ul>\n  &nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n<li>\n    <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input type=\"checkbox\" name=\"one\" id=\"one\" \/&gt; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;label for=\"one\"&gt;Create checkbox&lt;\/label&gt; \u00a0\u00a0\u00a0\u00a0<\/code>\n  <\/li>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n<li>\n    <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input type=\"checkbox\" name=\"two\" id=\"two\" \/&gt; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;label for=\"two\"&gt;Assign label&lt;\/label&gt; \u00a0\u00a0\u00a0\u00a0<\/code>\n  <\/li>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n<li>\n    <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input type=\"checkbox\" name=\"three\" id=\"three\" \/&gt; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;label for=\"three\"&gt;Import iconfont&lt;\/label&gt; \u00a0\u00a0\u00a0\u00a0<\/code>\n  <\/li>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n<li>\n    <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input type=\"checkbox\" name=\"four\" id=\"four\" \/&gt; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;label for=\"four\"&gt;Iconify label pseudo elements&lt;\/label&gt; \u00a0\u00a0\u00a0\u00a0<\/code>\n  <\/li>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n<li>\n    <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input type=\"checkbox\" name=\"five\" id=\"five\" \/&gt; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;label for=\"five\"&gt;Animate icon widths&lt;\/label&gt; \u00a0\u00a0\u00a0\u00a0<\/code>\n  <\/li>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n<li>\n    <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input type=\"checkbox\" name=\"six\" id=\"six\" \/&gt; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;label for=\"six\"&gt;Color the icons&lt;\/label&gt; \u00a0\u00a0\u00a0\u00a0<\/code>\n  <\/li>\n<\/ul>\n<p>\n  <code>&lt;strong&gt;CSS:&lt;\/strong&gt;<\/code>\n<\/p>\n<pre><code>&lt;code&gt;@import\n(import 2 fonts one or heading and other for text)\nh1 {\n    font-size: 15;\n    padding: 12px;\n    text-align: center;\n}\nul {\n    width: 290px;\n    margin: 0 auto;\n}\nul li {\n    list-style-type: none;\n    padding: 10px;\n}\n \n\/*Adding custom checkbox icons*\/\nlabel {\n    position: relative;\n    padding-left: 30px;\n    font-size: 14px;\n    cursor: pointer;\n}\nlabel:before, label:after {\n    font-family: FontAwesome;\n    font-size: 21px;\n    \/*absolutely positioned*\/\n    position: absolute; top: 0; left: 0;\n}\nlabel:before {\n    content: 'f096'; \/*unchecked*\/\n}\nlabel:after {\n    content: 'f046'; \/*checked*\/\n    \/*checked icon will be hidden by default by using 0 max-width and overflow hidden*\/\n    max-width: 0;\n    overflow: hidden;\n    opacity: 0.5;\n    \/*CSS3 transitions for animated effect*\/\n    transition: all 0.35s;\n}\n \n\/*hiding the original checkboxes*\/\ninput[type=\"checkbox\"] {\n    display: none;\n}\n\/*when the user checks the checkbox the checked icon will animate in*\/\ninput[type=\"checkbox\"]:checked + label:after {\n    max-width: 25px; \/*an arbitratry number more than the icon's width*\/\n    opacity: 1; \/*for fade in effect*\/\n}\n \n\/*adding some colors for fun*\/\n#one+label:before, #one+label:after {color: hsl(0, 45%, 40%);}\n#two+label:before, #two+label:after {color: hsl(60, 45%, 40%);}\n#three+label:before, #three+label:after {color: hsl(120, 45%, 40%);}\n#four+label:before, #four+label:after {color: hsl(180, 45%, 40%);}\n#five+label:before, #five+label:after {color: hsl(240, 45%, 40%);}\n#six+label:before, #six+label:after {color: hsl(300, 45%, 40%);}<\/code><\/code><\/pre>\n<p>\n  <strong>RESULTADO:<\/strong>\n<\/p>\n<p><a href=\"https:\/\/inform.click\/wp-content\/uploads\/2022\/11\/post-328841-638454f3c3992.webp\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/inform.click\/wp-content\/uploads\/2022\/11\/post-328841-638454f3c3992.webp\" alt=\"\" \/><\/a><\/p>\n<h4>\n  Palavras de envolvimento:<br \/>\n<\/h4>\n<p>\n  Se formos mais fundo, as possibilidades de CSS e HTML s\u00e3o infinitas. Portanto, esperamos que as t\u00e9cnicas implementadas acima o ajudem a obter algum conhecimento e sejam \u00fateis para voc\u00ea na cria\u00e7\u00e3o de um \u00f3timo site.\n<\/p>\n<\/p>\n<div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\n  Fonte de grava\u00e7\u00e3o: <a target=\"_blank\" rel=\"noopener nofollow\" data-pssr=\"\" href=\"http:\/\/www.instantshift.com\/2020\/02\/26\/awesome-css3-techniques\/\">instantshift.com<\/a>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>A evolu\u00e7\u00e3o do CSS (Cascading Style Sheets) com o HTML tem sido incr\u00edvel. Existem muitos recursos como Flexbox, CSS Grid e propriedades personalizadas CSS introduzidas recentemente. Seu avan\u00e7o cont\u00ednuo e enorme potencial s\u00e3o o que cativam os desenvolvedores a experimentar novas t\u00e9cnicas de CSS e ultrapassar os limites do que ele pode fazer. A combina\u00e7\u00e3o das tecnologias HTML 5 e CSS3 \u00e9, sem d\u00favida, um matador de flash. N\u00e3o \u00e9 \u00e0 toa que um plano de CSS bem executado pode controlar quase qualquer faceta do design e levar a uma melhor experi\u00eancia do usu\u00e1rio, o que \u00e9 absolutamente necess\u00e1rio. Afinal, os visitantes carregam certas expectativas quando\u2026<\/p>\n","protected":false},"author":1,"featured_media":221705,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[72,150,228,59],"tags":[],"class_list":["post-260647","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-css-9","category-dicas-e-truques-da-web","category-livros-didaticos","category-web-e-wordpress-2"],"_links":{"self":[{"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/260647","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/comments?post=260647"}],"version-history":[{"count":0,"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/260647\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/media\/221705"}],"wp:attachment":[{"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/media?parent=260647"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/categories?post=260647"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/inform.click\/pt-pt\/wp-json\/wp\/v2\/tags?post=260647"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}