NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Funkce, kterou se snažíš použít je dostupná pouze pro registrované uživatele. Buďto se přihlas nebo si zdarma vytvoř nový účet.
Funkce, kterou se snažíš použít je dostupná pouze pro registrované uživatele. Buďto se přihlas nebo si zdarma vytvoř nový účet.

Základní tvary v CSS3

V tomto článku si předvedeme, jak lehce se dají vytvořit různé tvary čistě v CSS3 bez použití obrázků!

Jednoduché tvary

Obdélník a čtverec

Obdélník je asi nejsnadnější. Jednoduše vytvoříme div s určitou výškou a šířkou a následně jej obarvíme.

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

Ukázka:

Čtverec je pochopitelně obdélník se stejnou šířkou a výškou.

Ovál a kruh

Na ovál budeme potřebovat znát border-radius, který nám zakulacuje rohy. Když však dáme zaoblení větší než 50%, vytvoříme ovál.

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

Ukázka:

Kruh opět vytvoříme jako ovál se stejnou výškou a šířkou.

Trojúhelník

Trojúhelník se vytváří přes rámeček. Vytvoříte vlastně čtyři trojúhelníky a ty si pak upravujete. Každá hodnota je těžnice strany, tzn. ze středu strany do protějšího vrcholu. Šířka a výška trojúhelníku musí být na nule, jinak se nám ve středu vytvoří čtverec či obdélník.

Generátor trojúhelníků je například na stránce 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ázka:

Lichoběžník

Lichoběžník je vytvořen podobně jako trojúhelník s tím rozdílem, že zadáme šířku.

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

Ukázka:

Kosočtverec

Kosočtverec si vytvoříme jako čtverec a následně ho pootočíme od 45° a to transformací.

Transform: rotate(); potřebuje také 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ázka:

Rovnoběžník

Na rovnoběžník použijeme opět transform, nyní však skew, za který dáme do závorky úhel. Nezapomeňte 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ázka:

Složitější tvary

Nyní bude trochu větší zábava! Přejdeme z lehkých tvarů na ty složitější a postupně si ukážeme jak každý vytvořit.

Dvanácticípá hvězda

Ptáte se jak udělat dvanácticípou hvězdu? ... Vždyť v CSS existují jen tvary se čtyřmi rohy! Tak koukejte! :)

Nejdříve si vytvoříme čtverec kterému dáme absolutní pozici.

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

A nyní přidáme další čtverec. Jak? ... No mohli bychom přidat další div, ale my jsme chytří, proto využijeme toho, že můžeme napsat #hvezda:before. Vytvoříme si tedy další absolutně pozicovaný čtverec, který pootočíme o 30°. Čtverec si obarvíme zatím na červeno, abychom věděli, co nám to udělalo.

#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ž jsme skoro hotoví. Nyní uděláme to samé s #hvezda:after a pootočíme o -30°. Pro zkoušku si ho obarvíme na zeleno.

No super! Máme dvanácticípou hvězdu. Celkový kód vypadá nějak 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ázka:

Dvanácticípá hvězda přes CSS3 - CSS3 zdrojákoviště

Nezapomeňte na content: "";, jinak se vám nic nevytvoří. Obdobným způsobem můžeme (pomocí dvou trojúhelníků) vytvořit šesticípou hvězdu, zkuste si to!

Srdce

Chvilku si sedneme a zapřemýšlíme jak vytvořit srdce. Zjistíme, že se dá vytvořit pomocí jednoho čtverce a dvou kruhů. Jdeme tedy na to !

Nejdříve si vytvoříme čtverec s absolutní pozicí, 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 vytvoříme zase pomocí :after a :before 2 kruhy (stejná šířka a výška jako čtverec), které si pro lepší viditelnost obarvíme na červenou a modrou. Kruh bude mít také absolutní pozici. No jo, ale my máme kosočtverec a v něm modrý kruh.

Na ostatní nám poslouží margin! Nejdůležitější je však nezapomenout na to, že máme čtverec pootočený směrem doleva o 45°, tudíž si musíme hlavu trochu pootočit aby byl v rovině s čtvercem a potom vymyslet jak ho posuneme :)

Marginem pak kruhy posuneme o 30px (polovina velikosti) nahoru a dolů.

Celkový výsledek bude vypadat 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ázka:

Srdce přes CSS3 - CSS3 zdrojákoviště

Pacman

Jako posledního si uděláme Pacmana! ... super co ? :) Jak na to ? ... a co třeba přes trojúhelníky, kde část pusy bude zneviditelněná. Také zaoblíme rohy do kruhu.

Jednoduché že? Pro ty, kdo by se ještě nechytali, zde přikládá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%;
}

Kdo bude mít chuť tak vytvoří pomocí :before také oko ! :)

Pacman přes CSS - CSS3 zdrojákoviště

Zkoušejte vymyslet nové tvary ! Můžete nám poslat nějaké povedené dolu do komentářů :)


 

Všechny články v sekci
CSS3 zdrojákoviště
Článek pro vás napsal Honza Bittner
Avatar
Uživatelské hodnocení:
20 hlasů
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Aktivity