18/01/2015
Comment faire des "pictos" et autres dessins simples sans outil vectoriel ?
( tel que Flash, Illustrator, générateur SVG)
... et bien avec des <div> ou <span> et le style css : border-radius !
Voici par exemple un appareil photo très zoli :
le code html correspondant :
<div class='apixPhotoField_default' style=''>
<div class='apix_button cameraButton'>
<div class='cameraViewFinder'><div class='cameraViewFinderInner'></div></div>
<div class='cameraShutter'></div>
<div class='cameraBack'>
<div class='cameraBar'></div>
<div class='cameraObjectif'></div>
<div class='cameraObjectifInner'></div>
</div>
</div>
</div>
et les styles CSS :
.apixPhotoField_default {
position:relative;
left:2em;
width:10em;
height:6em;
}
.apixPhotoField_default .cameraButton {
position:relative;
width:100%;
height:100%;
padding:0;
cursor:pointer;
}
.apixPhotoField_default .cameraViewFinder {
position:absolute;
left:30%;
width:25%;
height:8.5%;
background-color:#3399dd;
box-shadow: 2px 2px 8px 3px rgba(0, 0, 0,0.40);
}
.apixPhotoField_default .cameraViewFinderInner {
position:absolute;
top:14%;
left:33%;
width:33%;
height:45%;
background-color:#fff;
}
.apixPhotoField_default .cameraShutter {
position:absolute;
left:80%;
width:10%;
height:8.5%;
background-color:#3399dd;
}
.apixPhotoField_default .cameraBack {
position:absolute;
top:10%;
width:100%;
height:100%;
border-radius: 18px;
background-color:#3399dd;
box-shadow: 2px 2px 8px 3px rgba(0, 0, 0,0.40);
}
.apixPhotoField_default .cameraBar {
position:absolute;
top:25%;
width:100%;
height:2%;
background-color:#fff;
}
.apixPhotoField_default .cameraObjectif {
position:absolute;
top:12%;
left:40%;
width:45%;
height:75%;
background-color:#fff;
border-radius: 50%;
}
.apixPhotoField_default .cameraObjectifInner {
position:absolute;
top:22%;
left:46.55%;
width:12%;
height:20%;
background-color:#c7c7c7;
border:1em solid #3399dd;
border-radius: 50%;
}
... Je me suis "amusé" à faire ça hier pour le bouton d'un champ "photo".
Le code html et css peut donc être optimisé ! (avis aux amateurs et merci d'avance)
Cette technique ne permet peut-être pas de tout faire mais je crois qu'on peut aller assez loin avec elle en utilisant par exemple, les "gradient" CSS et les "shadow" non moins CSS.