2012-11-17 14 views
8

the shape you need to create using only divs and CSSjak stworzyć ten kształt z tylko DIV i CSS

mam ten kształt jako PNG, że chciałbym stworzyć go z CSS, tak że mogę dynamicznie zmieniać kolor wypełnienia.

Moje pytanie brzmi: jak najskuteczniej odtworzyć ten obraz, używając tylko div s i CSS?

Należy pamiętać, że wokół pomarańczowego wypełnienia występuje biały obrys o wielkości 5 pikseli. Trzeba również stworzyć ten udar. A obszar po prawej stronie krzywej po prawej stronie musi być przezroczysty. Twój CSS nie może korzystać z zasobów zewnętrznych, takich jak obrazy tła.

Idealnie CSS działałby w większości przeglądarek, w tym w IE 7, 8 i 9. Ale to nie jest absolutnie wymagane.

Wyjdźcie do was, czarodzieje CSS, i pokażcie swoje najciemniejsze najbrudniejsze sekrety CSS. Wrzucę do tego nagrodę w wysokości 50, gdy tylko strona mi pozwoli, i przyznaję ją w pełni do najlepszej odpowiedzi, niezależnie od tego, kiedy złożysz odpowiedź.

Zobaczmy, co masz.

+0

spróbować spojrzeć na SVG i ŚCIEŻKA: http://www.w3schools.com/svg/svg_path.asp –

+5

@Alex Peta proszę, nie łącz z tym strona: http://w3fools.com/ –

+0

@Alex Peta Nie jest potrzebne w tym przypadku – jacktheripper

Odpowiedz

4

wystarczy umieścić w odpowiednim kolorze, w końcu zmienić wymiary

#shape { 
    width: 200px; 
    height: 150px; 
    background: orange; 
    border: 5px solid white; 
    border-radius: 15%/50%; 
    border-top-left-radius: 5px; 
    border-bottom-left-radius: 5px; 
} 
+1

' position', 'margin',' text-align', 'text-indent' i' color' w ogóle nie wpływają na kształt. "border-color" byłoby jednak fajnie dodać. –

5

Ta wersja jest również kompatybilny z IE9 ...

HTML

<meta http-equiv="X-UA-Compatible" content="IE=9" />​ 
<div id="image"> 
</div> 

CSS:

#image{ 
background:orange; 
border: 5px solid white; 
-moz-border-radius: 20%/60%; 
-webkit-border-radius: 20%/60%; 
border-radius: 20%/60%; 
-moz-border-top-left-radius: 0px; 
-moz-border-bottom-left-radius: 0px; 
-webkit-border-top-left-radius: 0px; 
-webkit-border-bottom-left-radius: 0px; 
border-top-left-radius: 0px; 
border-bottom-left-radius: 0px; 
height:100px; 
width:150px; 
} 
33

HTML

<div id="css"></div>​ 

CSS

#css { 
    width: 118px; 
    height: 74px; 
    margin: 20px 20px; 
    background: red; 
    border: 6px solid white; 
    border-radius: 20%/62%; 
    border-top-left-radius: 6px; 
    border-bottom-left-radius: 6px; 
} 

Live example

śmiem można odgadnąć, który z nich jest który nie patrząc na HTML;)

+0

+1, jako że pierwszy adresowałeś notatkę o 5-pikserowym obrysie wokół niej. – ScottS

+0

całkiem blisko. Dostaję trochę czarnego na końcach łuku w FF. – Rafe

+1

@ Rafe - wydaje się być częściowo oparte na wybranych liczbach. Jeśli zmienię "18%" na "20%", Firefox będzie renderował go lepiej, więc może to być kwestia wyboru właściwego numeru dla twojej aplikacji. – ScottS