Comment créer un menu qui ressemble à ceci ...
Je ne veux pas utiliser les images PSD. Je préférerais utiliser des icônes de certains packages comme FontAwesome et avoir les arrière-plans / css générés en CSS.
Une version du menu qui utilise le PSD pour générer des images de l'info-bulle et ensuite l'utiliser peut être trouvée ici .
Réponses:
Près de 3 ans plus tard, j'ai finalement pris le temps de revoir cela et de publier une version améliorée. Vous pouvez toujours voir la réponse d'origine à la fin pour référence.
Alors que SVG peut être le meilleur choix, surtout aujourd'hui, mon objectif était de garder juste HTML et CSS, pas de JS, pas de SVG, pas d'images (autres que l'arrière-plan de l'élément racine).
Démo 2015
Captures d'écran
Chrome 43:
Firefox 38:
IE 11:
Code
Le HTML est assez simple. J'utilise la case à cocher pirater pour révéler / masquer le menu.
J'utilise Sass pour garder cette logique et faciliter le changement si nécessaire. Fortement commenté.
Afficher l'extrait de code
Réponse originale
Ma tentative de faire quelque chose du genre avec du CSS pur:
démo
(cliquez sur l'étoile)
Fonctionne dans Chrome, Firefox (effet de flou un peu bizarre en survol), Opera (les extrémités semblent plus petites) et Safari (les extrémités semblent plus petites).
la source
:focus
voie" . C'est une méthode assez ancienne en fait, je l'ai vue pour la première fois utilisée par Stu Nicholls dans ses expériences sur cssplay.co.uk il y a quelques années. Dans le CSS ci-dessus, c'est le.button:focus + .tip
qui fait l'affaire.La réponse d'Ana est un coup de pied au cul! C'est un CSS-fu sérieux.
Ma solution n'est peut-être pas tout à fait ce que vous espérez, mais c'est une autre solution possible. Je travaille actuellement sur une interface de boussole qui a un style similaire de boutons en forme d'arc. J'ai décidé de le développer en utilisant Raphael et SVG.
J'ai créé une forme d'arc dans Illustrator, exporté le SVG pour celui-ci, saisi la définition de chemin pour l'arc à partir du fichier SVG exporté et utilisé Raphael pour créer mon interface avec.
En voici un JSFiddle .
Voici le JavaScript:
Voici le CSS associé:
la source
Un autre très bon moyen serait d'utiliser JavaScript pour le positionnement.
DEMO + TUTORIAL sur la création d'un menu radial animé
Un avantage de cette méthode est que vous pouvez utiliser n'importe quel nombre d'éléments et qu'elle continuera à les positionner radialement, sans avoir à changer aucun de vos CSS.
Le JavaScript en question est:
la source