Je me demande s'il existe une possibilité de construire des div avec des formes irrégulières, quelque chose de similaire à cela (par exemple le Groenland, l'Europe, l'Afrique). Je veux créer une carte comme ici en utilisant CSS3 et HTML5.
Voici un lien vers un exemple d'image:
Les éléments ont toujours été rectangulaires. Néanmoins, vous pouvez simuler d'autres formes en dessinant des formes CSS dans la division rectangulaire et en organisant différentes divisions (avec z-index, etc.). Cela vous aidera à:
Ce que vous avez là ressemble à une grille, que vous pouvez obtenir soit avec de nombreux dégradés sur un div, soit avec une grille de nombreux div sur laquelle vous appliquez des transformations CSS ( [~ # ~] démo [~ # ~] ).
HTML:
<div class='container'>
<div class='grid'>
<div class='grid-row'>
<div class='grid-cell'></div>
<div class='grid-cell high'></div>
<!-- and so on... -->
CSS:
div { box-sizing: border-box; }
.container {
overflow: hidden;
width: 32em;
height: 32em;
margin: 5.6em auto 0;
background: silver;
}
.grid {
transform: skewX(-45deg)
rotate(15deg)
scaleX(1.785) scaleY(.8)
translateX(-4.5em) translateY(-3em);
}
.grid-row {
width: 32em;
height: 2em;
}
.grid-cell {
float: left;
width: 2em;
height: 2em;
}
.high {
background: gainsboro;
}
.high:hover {
background: whitesmoke;
}
Vous devriez pouvoir créer votre carte sous forme de carrés, avec tous les éléments que vous choisissez, puis envelopper le tout dans un div/span/quoi que ce soit et effectuer une transformation 3D CSS3 pour obtenir comment vous en avez besoin.
si vous voulez faire des bordures irrégulières exactes, optez pour des cartes d'images HTML (toujours une meilleure solution que css et positionnement absolu), essayez ceci http://www.svennerberg.com/examples/imagemap_rollover/