IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Základné tvary v CSS 3

V tomto článku si predvedieme, ako ľahko sa dajú vytvoriť rôzne tvary čisto v CSS 3 bez použitia obrázkov!

Jednoduché tvary

Obdĺžnik a štvorec

Obdĺžnik je asi najľahšie. Jednoducho vytvoríme div s určitou výškou a šírkou a následne ho zafarbíme.

#obdelnik
{
   width: 200px;
   height: 100px;
   background: #777777;
}

ukážka:

Štvorec je pochopiteľne obdĺžnik s rovnakou šírkou a výškou.

Ovál a kruh

Na ovál budeme potrebovať poznať border-radius, ktorý nám zaguľacuje rohy. Keď však dáme zaoblenia väčší ako 50%, vytvoríme ovál.

#oval
{
   width: 100px;
   height: 150px;
   background: #777777;
   border-radius: 50%;
}

ukážka:

Kruh opäť vytvoríme ako ovál s rovnakou výškou a šírkou.

Trojuholník

Trojuholník sa vytvára cez rámček. Vytvoríte vlastne štyri trojuholníky a tie si potom upravujete. Každá hodnota je ťažnice strany, tzn. zo stredu strany do protiľahlého vrcholu. Šírka a výška trojuholníka musí byť na nule, inak sa nám v stredu vytvorí štvorec či obdĺžnik.

Generátor trojuholníkov je napríklad na stránke http://apps.eky.hk/...e-generator/

#trojuhelnik {
   width: 0;
   height: 0;
   border-style: solid;
   border-width: 200px 100px 0 100px;
   border-color: #777777 transparent transparent transparent;
}

ukážka:

Lichobežník

Lichobežník je vytvorený podobne ako trojuholník s tým rozdielom, že zadáme šírku.

#lichobeznik {
   height: 0;
   width: 150px;
   border-style: solid;
   border-width: 0 100px 100px 100px;
   border-color: transparent transparent #777777 transparent;
}

ukážka:

Kosoštvorec

Kosoštvorec si vytvoríme ako štvorec a následne ho pootočíme od 45 ° a to transformáciou.

Transform: rotate (); potrebuje tiež vendor prefix!

#kosoctverec {
   height: 100px;
   width: 100px;
   margin-top: 25px;
   background: #777777;
   -webkit-transform: rotate(-45deg);
   -moz-transform: rotate(-45deg);
   -ms-transform: rotate(-45deg);
   -o-transform: rotate(-45deg);
   transform: rotate(-45deg);
}

ukážka:

Rovnobežník

Na rovnobežník použijeme opäť transform, teraz však skew, za ktorý dáme do zátvorky uhol. Nezabudnite na vendor prefix !!

#rovnobeznik
{
    width: 200px;
    height: 100px;
    background: #777777;
    -webkit-transform: skew(-20deg);
    -moz-transform: skew(-20deg);
    -ms-transform: skew(-20deg);
    -o-transform: skew(-20deg);
    transform: skew(-20deg);
}

ukážka:

Zložitejšie tvary

Teraz bude trochu väčšia zábava! Prejdeme z ľahkých tvarov na tie zložitejšie a postupne si ukážeme ako každý vytvoriť.

Dvanácticípá hviezda

Pýtate sa ako urobiť dvanácticípou hviezdu? ... Veď v CSS existujú len tvary sa štyrmi rohmi! Tak pozerajte! :)

Najskôr si vytvoríme štvorec ktorému dáme absolútnu pozíciu.

#hvezda
{
    width: 100px;
    height: 100px;
    background: #777777;
    position: absolute;
}

A teraz pridáme ďalší štvorec. Ako? ... No mohli by sme pridať ďalší div, ale my sme chytrí, preto využijeme toho, že môžeme napísať #hvezda: before. Vytvoríme si teda ďalšie absolútne pozicovaný štvorec, ktorý pootočíme o 30 °. Štvorec si zafarbíme zatiaľ na červeno, aby sme vedeli, čo nám to urobilo.

#hvezda:before
{
   content: "";
   position: absolute;
   width: 100px;
   height: 100px;
   background: red;
   -webkit-transform: rotate(30deg);
   -moz-transform: rotate(30deg);
   -ms-transform: rotate(30deg);
   -o-transform: rotate(30deg);
   transform: rotate(30deg);
}

Nádhera, už sme skoro hotoví. Teraz urobíme to isté s #hvezda: after a pootočíme o -30 °. Pre skúšku si ho zafarbíme na zeleno.

No super! Máme dvanácticípou hviezdu. Celkový kód vyzerá nejako takto:

#hvezda
{
    width: 100px;
    height: 100px;
    background: #777777;
    position: absolute;
}
#hvezda:before
{
    content: "";
    position: absolute;
    width: 100px;
    height: 100px;
    background: #777777;
    -webkit-transform: rotate(30deg);
   -moz-transform: rotate(30deg);
   -ms-transform: rotate(30deg);
   -o-transform: rotate(30deg);
   transform: rotate(30deg);
}
#hvezda:after
{
    content: "";
    position: absolute;
    width: 100px;
    height: 100px;
    background: #777777;
    -webkit-transform: rotate(-30deg);
   -moz-transform: rotate(-30deg);
   -ms-transform: rotate(-30deg);
   -o-transform: rotate(-30deg);
   transform: rotate(-30deg);
}

ukážka:

Dvanácticípá hviezda cez CSS 3 - Profesionálny webdesign v CSS 3

Nezabudnite na content: "";, Inak sa vám nič nevytvorí. Obdobným spôsobom môžeme (pomocou dvoch trojuholníkov) vytvoriť šesťcípou hviezdu, skúste si to!

Srdce

Chvíľku si sadneme a popremíšľate ako vytvoriť srdce. Zistíme, že sa dá vytvoriť pomocou jedného štvorca a dvoch kruhov. Ideme teda na to!

Najskôr si vytvoríme štvorec s absolútnou pozíciou, pootočený o 45 °.

#srdce
{
    margin-top: 25px;
    position: absolute;
    height: 60px;
    width: 60px;
    background: #777777;
    -webkit-transform: rotate(-45deg);
    -moz-transform: rotate(-45deg);
    -ms-transform: rotate(-45deg);
    -o-transform: rotate(-45deg);
    transform: rotate(-45deg);
}

Potom si vytvoríme zase pomocou: after a: before 2 kruhy (rovnaká šírka a výška ako štvorec), ktoré si pre lepšiu viditeľnosť zafarbíme na červenú a modrú. Kruh bude mať tiež absolútnu pozíciu. No áno, ale my máme kosoštvorec a v ňom modrý kruh.

Na ostatné nám poslúži margin! Najdôležitejšie je však nezabudnúť na to, že máme štvorec pootočený smerom doľava o 45 °, teda si musíme hlavu trochu pootočiť aby bol v rovine s štvorcom a potom vymyslieť ako ho posunieme :)

Marginom potom kruhy posunieme o 30px (polovica veľkosti) hore a dole.

Celkový výsledok bude vyzerať takto:

#srdce
{
    margin-top: 25px;
    position: absolute;
    height: 60px;
    width: 60px;
    background: #777777;
    -webkit-transform: rotate(-45deg);
    -moz-transform: rotate(-45deg);
    -ms-transform: rotate(-45deg);
    -o-transform: rotate(-45deg);
    transform: rotate(-45deg);
}
#srdce:before
{
    content: "";
    position: absolute;
    height: 60px;
    width: 60px;
    background: #777777;
    border-radius: 50%;
    margin: -30px 0 0 0;
}
#srdce:after
{
    content: "";
    position: absolute;
    height: 60px;
    width: 60px;
    background: #777777;
    border-radius: 50%;
    margin: 0px 0 0 30px;
}

ukážka:

Srdce cez CSS 3 - Profesionálny webdesign v CSS 3

Pacman

Ako posledného si urobíme Pacmana!... super čo? :) Ako na to? ... a čo treba cez trojuholníky, kde časť pusy bude zneviditeľnenie. Tiež zaoblíme rohy do kruhu.

Jednoduché že? Pre tých, ktorí by sa ešte nechytali, tu prikladám kód:

#pacman {
  width: 0px;
  height: 0px;
  border-style: solid;
  border-width: 60px 60px 60px 60px;
  border-color: #777777 transparent #777777 #777777;
  border-radius: 50%;
}

Kto bude mať chuť tak vytvorí pomocou: before tiež oko! :)

Pacman cez CSS - Profesionálny webdesign v CSS 3

Skúšajte vymyslieť nové tvary! Môžete nám poslať nejaké vydarené dolu do komentárov :)


 

Všetky články v sekcii
Profesionálny webdesign v CSS 3
Článok pre vás napísal Honza Bittner
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Aktivity