2012-11-17 5 views
8

the shape you need to create using only divs and CSScome creare questo forma con solo div e css

ho questa forma come PNG che vorrei creare con i CSS in modo che possa cambiare dinamicamente il colore di riempimento.

La mia domanda è: come posso ricreare più efficacemente questa immagine utilizzando solo div se CSS?

Si noti che c'è un tratto bianco di 5px attorno al riempimento arancione. Quel tratto deve essere creato pure. E l'area a destra della curva a destra deve essere trasparente. Il tuo CSS non può utilizzare risorse esterne come le immagini di sfondo.

Idealmente il CSS funzionerebbe nella maggior parte dei browser inclusi IE 7, 8 e 9. Ma ciò non è assolutamente necessario.

Vai avanti con i maghi CSS e mostrami i tuoi segreti CSS più oscuri più sporchi. Metterò una taglia di 50 su questo non appena il sito me lo concede, e assegnerò tutto alla migliore risposta, indipendentemente da quando invii la tua risposta.

Vediamo cosa avete.

+0

provare a guardare SVG e PERCORSO: http://www.w3schools.com/svg/svg_path.asp –

+5

@alex Peta per favore, non collegare direttamente che sito: http://w3fools.com/ –

+0

@alex Peta Non necessaria in questo caso – jacktheripper

risposta

4

appena messo il colore corretto, eventualmente modificare le dimensioni

#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' e' color' non influenzano affatto la forma. 'border-color' sarebbe carino da aggiungere però. –

5

Questa versione è inoltre compatibile con 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

Ti sfido a indovinare quale è quale senza guardare il codice HTML;)

+0

+1 come se fossi il primo a occuparsi della nota relativa al 5px bianco attorno ad esso. – ScottS

+0

piuttosto vicino. Ho un po 'di nero che passa attraverso le estremità dell'arco in FF. – Rafe

+1

@ Rafe - sembra essere parzialmente basato sui numeri scelti. Se cambio il '18%' a '20%' per me, Firefox lo rende migliore, quindi potrebbe essere un fattore di scelta del numero giusto per la tua applicazione. – ScottS