{"id":249428,"date":"2022-12-20T14:02:00","date_gmt":"2022-12-20T11:02:00","guid":{"rendered":"https:\/\/inform.click\/7-mahtavaa-css3-tekniikkaa-joita-kannattaa-kokeilla\/"},"modified":"2022-12-20T14:47:00","modified_gmt":"2022-12-20T11:47:00","slug":"7-mahtavaa-css3-tekniikkaa-joita-kannattaa-kokeilla","status":"publish","type":"post","link":"https:\/\/inform.click\/fi\/7-mahtavaa-css3-tekniikkaa-joita-kannattaa-kokeilla\/","title":{"rendered":"7 mahtavaa CSS3-tekniikkaa, joita kannattaa kokeilla"},"content":{"rendered":"<p>\n  CSS:n (Cascading Style Sheets) kehitys HTML:n kanssa on ollut uskomatonta. Hiljattain esiteltyj\u00e4 ominaisuuksia, kuten Flexbox, CSS Grid ja CSS mukautettuja ominaisuuksia, on runsaasti.\n<\/p>\n<p>\n  Sen jatkuva edistyminen ja valtava potentiaali houkuttelevat kehitt\u00e4j\u00e4t kokeilemaan uusia CSS-tekniikoita ja ylitt\u00e4m\u00e4\u00e4n sen kykyjen rajat. Sek\u00e4 HTML 5- ett\u00e4 CSS3-tekniikan yhdistelm\u00e4 on ep\u00e4ilem\u00e4tt\u00e4 flash-killer.\n<\/p>\n<p>\n  Ei ole ihme, ett\u00e4 hyvin toteutettu CSS-suunnitelma voi hallita melkein mit\u00e4 tahansa suunnittelun puolia ja johtaa parempaan k\u00e4ytt\u00f6kokemukseen, mik\u00e4 on aivan v\u00e4ltt\u00e4m\u00e4t\u00f6nt\u00e4. Loppujen lopuksi vierailijoilla on tiettyj\u00e4 odotuksia, kun he katselevat sivustoasi kannettavan tietokoneen, p\u00f6yt\u00e4tietokoneen, tabletin tai mink\u00e4 tahansa muun v\u00e4lineen kautta.\n<\/p>\n<p>\n  Mutta mitk\u00e4 ovat trendikk\u00e4imm\u00e4t CSS-tekniikat? Eik\u00f6 se ole ilmeinen kysymys, joka tulee mieleen, kun puhumme houkuttelevan k\u00e4ytt\u00e4j\u00e4yst\u00e4v\u00e4llisen verkkosivuston suunnittelusta.\n<\/p>\n<p>\n  T\u00e4st\u00e4 syyst\u00e4 olemme keksineet joitain tuoreita CSS-tekniikoita ja vinkkej\u00e4 web-suunnittelutaitosi hallitsemiseen. Jokainen niist\u00e4 sis\u00e4lt\u00e4\u00e4 selityksi\u00e4 ja esimerkkikoodinp\u00e4tki\u00e4.\n<\/p>\n<p>\n  Joten menn\u00e4\u00e4n suoraan asiaan!\n<\/p>\n<h5>\n  1 Kohdista pystysuunnassa Flexboxin kanssa<br \/>\n<\/h5>\n<p>\n  Aiemmat kehitt\u00e4j\u00e4t kohtasivat paljon vaikeuksia kohdistaa teksti tai jokin muu elementti pystysuoraan keskelle. Mutta nyt, uuden CSS3-m\u00e4\u00e4rityksen <strong>Flexbox<\/strong> k\u00e4ytt\u00f6\u00f6noton j\u00e4lkeen, asiat ovat tulleet paljon helpommaksi.\n<\/p>\n<p>\n  Ominaisuus, <strong>display: flex<\/strong>, tarjoaa k\u00e4ytt\u00e4jille vaivattoman tavan tasata mink\u00e4 tahansa tekstin tai elementin keskelle. T\u00e4ss\u00e4 esimerkkikoodi!\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  Yll\u00e4 olevassa CSS-koodissa display: flex kuvaa elementin Flexbox-asettelua, kun taas align-items: center; vastaa tekstin pystykeskitt\u00e4misest\u00e4.\n<\/p>\n<p>\n  <strong>TULOS:<\/strong>\n<\/p>\n<h5>\n  2 Responsiivinen CSS-ruudukko<br \/>\n<\/h5>\n<p>\n  \u00c4l\u00e4 tee ruudukostasi poikkeusta, tee siit\u00e4 my\u00f6s responsiivinen, kuten kaikesta muusta suunnittelussasi.\n<\/p>\n<p>\n  Voit tehd\u00e4 ruudukostasi responsiivisen CSS Gridin avulla monella eri tavalla. Ja paras osa sen k\u00e4yt\u00f6ss\u00e4 on, ett\u00e4 voit luoda joustavamman ruudukon, joka antaa sinulle haluamasi ulkoasun laitteen koosta riippumatta.\n<\/p>\n<p>\n  T\u00e4m\u00e4n lis\u00e4ksi CSS-ruudukon avulla voit my\u00f6s ty\u00f6skennell\u00e4 ep\u00e4tasaisten ja samansuuruisten sarakkeiden kanssa. Se on hieno teknologia, joka on t\u00e4ynn\u00e4 vaihtoehtoja, jotka antavat k\u00e4ytt\u00e4jille vapauden hallita suunnitteluaan.\n<\/p>\n<p>\n  Voit k\u00e4ytt\u00e4\u00e4 erilaisia \u200b\u200bkeskeytyspisteit\u00e4, useiden ulottuvuuksien korkeutta ja tehd\u00e4 muita sijoitteluja alla olevan esimerkin mukaisesti.\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  Yll\u00e4 olevassa CSS-koodissa k\u00e4ytetty murtoyksikk\u00f6 (fr) on joustava yksikk\u00f6, joka erottaa avoimen tilan ohjeidesi mukaan. Jokainen fr-lause on sarakkeelle, jonka j\u00e4lkeen voit laskea yhteen aukot ja tehd\u00e4 ruudukon valmiiksi.\n<\/p>\n<p>\n  <strong>TULOS:<\/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 Tekstianimaatioita<br \/>\n<\/h5>\n<p>\n  Olet ehk\u00e4 luonut taustaanimaatioita CSS:n avulla, mutta nyt se vaikuttaa my\u00f6s siihen, miten k\u00e4ytt\u00e4j\u00e4t ovat vuorovaikutuksessa verkkosivuston tekstielementtien kanssa. CCS3 on tehnyt kaiken mahdolliseksi leijunnan s\u00e4\u00e4t\u00e4misest\u00e4 sanojen leijumiseen ilmassa.\n<\/p>\n<p>\n  Verkkosivustot, joilla ei ole paljon houkuttelevia elementtej\u00e4 k\u00e4ytt\u00e4jien sitouttamiseen, voivat hy\u00f6dynt\u00e4\u00e4 t\u00e4t\u00e4 ominaisuutta parhaalla mahdollisella tavalla. T\u00e4ss\u00e4 pieni esimerkki siit\u00e4.\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  T\u00e4ll\u00e4 tavoin voit my\u00f6s luoda useita dynaamisia tekstielementtej\u00e4 verkkosivustollesi. Eik\u00f6 olekin hauskaa?\n<\/p>\n<p>\n  <strong>TULOS:<\/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  4 sarakkeen asettelu<br \/>\n<\/h5>\n<p>\n  Yleens\u00e4 sarakepohjaiset asettelut luodaan Javascriptill\u00e4, mik\u00e4 on melko monimutkaista ja aikaa viev\u00e4\u00e4. Mutta CSS on tuonut tavan helpottaa kehitt\u00e4jien ja web-suunnittelijoiden ty\u00f6t\u00e4.\n<\/p>\n<p>\n  Seuraavassa on CSS-sarakes\u00e4\u00e4nt\u00f6, jonka avulla voit luoda sarakepohjaisen asettelun verkkosivustollesi.\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>TULOS:<\/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 N\u00e4yt\u00f6n suunta<br \/>\n<\/h5>\n<p>\n  Monet ihmiset ajattelevat, ett\u00e4 n\u00e4yt\u00f6n suunta ja laitteen suunta toimivat molemmat samaan tarkoitukseen. Mutta n\u00e4in ei ole. N\u00e4yt\u00f6n suunta on hieman erilainen kuin laitteen.\n<\/p>\n<p>\n  Vaikka laite ei pysty havaitsemaan sen suuntaa, n\u00e4ytt\u00f6 voi aina. Ja jos laite my\u00f6s pystyy, on hyv\u00e4 hallita n\u00e4yt\u00f6n suuntausta, jotta voit yll\u00e4pit\u00e4\u00e4 tai muuttaa verkkosivustosi k\u00e4ytt\u00f6liittym\u00e4\u00e4.\n<\/p>\n<p>\n  N\u00e4yt\u00f6n suuntausta voidaan k\u00e4sitell\u00e4 kahdella tavalla; CSS tai Javascript. Mutta se on helppoa, kun teet sen CSS Orientation Media Queryn avulla. Koska sen avulla sis\u00e4lt\u00f6 voi s\u00e4\u00e4t\u00e4\u00e4 muotoaan riippumatta siit\u00e4, onko selainikkuna vaaka- vai pystytilassa. Ymm\u00e4rt\u00e4\u00e4ksemme paremmin, katsotaanpa seuraavaa esimerkki\u00e4.\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>TULOS:<\/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 Pilkuilla erotettua luetteloa<br \/>\n<\/h5>\n<p>\n  Ei ole ep\u00e4ilyst\u00e4k\u00e4\u00e4n siit\u00e4, ett\u00e4 Bullet-luetteloita k\u00e4ytet\u00e4\u00e4n hyvin yleisesti kirjallisesti v\u00e4litt\u00e4m\u00e4\u00e4n mit\u00e4 tahansa tietoa tarkemmin ja selke\u00e4mmin. Mutta yksi asia, jonka kanssa useimmat ihmiset kamppailevat, on pilkkujen lis\u00e4\u00e4minen luettelon jokaiseen kohtaan.\n<\/p>\n<p>\n  T\u00e4m\u00e4n alla mainitun koodinp\u00e4tk\u00e4n avulla voit helposti lis\u00e4t\u00e4 luetteloosi pilkkuja viimeist\u00e4 lukuun ottamatta.\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>TULOS:<\/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 Animoitu valintaruutu<br \/>\n<\/h5>\n<p>\n  No, useimmat ihmiset ovat hyvin tietoisia CSS-taustasta ja tekstianimaatioista. Mutta monet eiv\u00e4t tied\u00e4 valintaruutuanimaatioista.\n<\/p>\n<p>\n  Kyll\u00e4, taustan ja tekstien lis\u00e4ksi voit my\u00f6s saada valintaruutuosi visuaalisesti houkuttelevan. Eik\u00f6 olekin hienoa?\n<\/p>\n<p>\n  Alla on esimerkki, johon voit viitata:\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>TULOS:<\/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  K\u00e4\u00e4ritty sanat:<br \/>\n<\/h4>\n<p>\n  Jos menn\u00e4\u00e4n syv\u00e4lle, CSS:n ja HTML:n mahdollisuus on loputon. Siksi toivomme, ett\u00e4 yll\u00e4 olevat tekniikat auttavat sinua saamaan tietoa ja auttavat sinua suunnittelemaan upeaa verkkosivustoa.\n<\/p>\n<\/p>\n<div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\n  : <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>CSS:n (Cascading Style Sheets) kehitys HTML:n kanssa on ollut uskomatonta. Hiljattain esiteltyj\u00e4 ominaisuuksia, kuten Flexbox, CSS Grid ja CSS mukautettuja ominaisuuksia, on runsaasti. Sen jatkuva edistyminen ja valtava potentiaali houkuttelevat kehitt\u00e4j\u00e4t kokeilemaan uusia CSS-tekniikoita ja ylitt\u00e4m\u00e4\u00e4n sen kykyjen rajat. Sek\u00e4 HTML 5- ett\u00e4 CSS3-tekniikan yhdistelm\u00e4 on ep\u00e4ilem\u00e4tt\u00e4 flash-killer. Ei ole ihme, ett\u00e4 hyvin toteutettu CSS-suunnitelma voi hallita melkein mit\u00e4 tahansa suunnittelun puolia ja johtaa parempaan k\u00e4ytt\u00f6kokemukseen, mik\u00e4 on aivan v\u00e4ltt\u00e4m\u00e4t\u00f6nt\u00e4. Loppujen lopuksi vierailijoilla on tiettyj\u00e4 odotuksia, kun\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":[66,222,53,144],"tags":[],"class_list":["post-249428","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-css-6","category-oppikirjoja","category-web-ja-wordpress-2","category-web-vinkkeja-ja-vinkkeja"],"_links":{"self":[{"href":"https:\/\/inform.click\/fi\/wp-json\/wp\/v2\/posts\/249428","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/inform.click\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/inform.click\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/inform.click\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/inform.click\/fi\/wp-json\/wp\/v2\/comments?post=249428"}],"version-history":[{"count":0,"href":"https:\/\/inform.click\/fi\/wp-json\/wp\/v2\/posts\/249428\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/inform.click\/fi\/wp-json\/wp\/v2\/media\/221705"}],"wp:attachment":[{"href":"https:\/\/inform.click\/fi\/wp-json\/wp\/v2\/media?parent=249428"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/inform.click\/fi\/wp-json\/wp\/v2\/categories?post=249428"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/inform.click\/fi\/wp-json\/wp\/v2\/tags?post=249428"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}