Div se zakulacenými rohy

Články přečteno 5132 12.07.
2008
komentováno 10

Na diskusních forech se poslední dobou vyskytují čím dál častěji dotazy, jak co nejlépe nastavit u div zaoblené rohy. Tato fičůrka se určitě dá vytvořit více způsoby, ale dnes si probereme snad tu nejjednodušší a nejuniverzálněší možnost.

Co budeme potřebovat:

6x div
4x obrázek zakulaceného rožku

Připravíme si 4 obrázky, které budou sloužit jako rožky pro náš výtvor. Kvůli kompatibility s IE6, který nepodporuje smile alfa kanál u obrázku .png, nebudou naše rožky s průhledným pozadím, proto jako pozadí rožků zvolíme pozadí stránky, což bude v našem případě bílá barva.

HTML struktura

Nyní si napíšeme kod, jak to bude vypadat v našem html dokumentu.

<div class="obdelnik">
	<div class="vrch"><div>div>div>
	<div class="stred">obsah našeho čtverečku může být jakkoliv veliký, čtvereček se nám bude roztahovat a nemusíme jej dál editovatdiv>
	<div class="spodek"><div>div>div>
div>

CSS

No a nyní té změti divů dodáme pomocí CSS život a řekneme jim, jak se mají chovat:

.obdelnik {
	width: 200px;
	background-color: #CCDDE2;
	margin: 20px;
	padding: 0px;
}

.vrch , .spodek , .vrch div , .spodek div {
margin: 0px; padding: 0px; background-repeat: no-repeat; width: 100%; height: 9px; font-size: 1px; /// kvůli IE6 je třeba nízkým divům nastavit malé písmo } .vrch div , .spodek div { background-position: right top; } .vrch , spodek { background-position: left top; } .stred { color: #000000; padding: 10px; margin: 0px; } .vrch {background-image: url(1.png);} .vrch div {background-image: url(2.png);} .spodek {background-image: url(3.png);} .spodek div {background-image: url(4.png);}

Závěrem

Tady tento postup je kompatibilní s IE6, IE7, Firefoxem, Operou a určitě i v dalších browserech. Výsledek si můžete zobrazit zde. Pokud máte k postupu dotazy nebo návrhy, tak se nebojte vyjádřit v komentářích. cur

 

vložit svůj názor

 

13.07.2008 - 0:00 Ove

Pěkné pěkné, je dobré znát další způsob.

reagovat
13.07.2008 - 0:00 Flavicius

Jen tak mimochodem, pokud zapisuješ v CSS nulovou hodnotu, nepiš za ni již jednotky, je to k ničemu a prostě se to nedělá. Vím, že to funguje, ale je to chyba.

reagovat
21.07.2008 - 0:00 Dash

Kdyby jsis ty obrázky udělal v GIFu, mohl by jsi použít průhledné pozadí (ale k alfa kanálu to má daleko). Jinak já už na PNG přešel, celkem dlouho je MSIE7 v doporučených aktualizacích a tudíž ho mají "všichni".

reagovat
21.07.2008 - 0:00 mibrt

[Dash]: musím s tebou souhlasit, taky tady u sebe na blogu jsou jen .png, na ie6 v tomhle na svých osobních projektech kašlu, jen lísteček na novinky v hlavičce mám hacknutý na .gif pro ie6. Jinak k tomu gifu: 256 barev mnohdy nestačí a výsledek je ozubený s ne moc dobrými efekty.

reagovat
19.05.2009 - 0:00 i-lopik

Co myslítee přesně tím "zakulacene rohy"? To jako udělat obdelník se zaklucenými rohy a pak rozstříhat na čtyři rohy?

reagovat
19.05.2009 - 0:00 mibrt

#814 i-lopik: přečíst článek

reagovat
11.09.2009 - 0:00 _ch4ng3d

Pokud jde jenom o růžky, tam bych se toho gifu nebál, málokdy člověk potřebuje růžek s víc jak 256 barvami. A pokud jde o PNG a IE6, velmi rád používám tuhle legraci:
http://labs.unitinteractive.com/unitpngfix.php
která javascriptem zprovozní průhlednost i v IE6

reagovat
12.09.2009 - 0:00 mibrt

#917 _ch4ng3d: Na png jsem si vytvořil vlastní řešení, které mi vyřeší png fix jak pro bg tak pro img, ale většinou to nenasazuju. Kdo má IE6 je sám proti sobě a optimalizaci volím dle cílového zaměření webu, ostatně jak to zaznělo i na konferenci Front-End Design Conference 09

reagovat
14.08.2010 - 0:00 rionka

ano! tenhle postup je mi znam.. a presne si vybavuju, jak me stvalo, ze ie6 neumi pruhlednost. a vubec spoustu dalsich veci. ladit web pro tyhle praveky hovadiny je porod

reagovat
14.08.2010 - 0:00 mibrt

#1165 rionka: Naštěstí je dneska situace jiná. IE6 má již nižší podíl (podle W3SCHOOLS okolo 7 % minulý měsíc a jde to dolů) a nástupem více browserů s webkitem je situace víc optimičtější. Pokud se nejedná o důležitý prvek, můžeme zakulacení ignorovat u IE zcela a poté stačí pár řádků css. Nedá se to ale běžně použít na frontendech, maximálně na informační boxy atd ale asi ne na grafické prvky.

reagovat

 

 

Sledujte mě na twitteru @mibrt

 

Hosting Blueboard - srdce našich projektů

 

Mé fotky na flickr