Como crio um menu parecido com este ...
Não quero usar as imagens PSD. Eu preferiria usar ícones de alguns pacotes como FontAwesome e ter os backgrounds / css gerados em CSS.
Uma versão do menu que está usando o PSD para gerar imagens da dica de ferramenta e depois usá-la pode ser encontrada aqui .
css
tooltip
css-shapes
ssb
fonte
fonte
Respostas:
Quase três anos depois, finalmente consegui revisitar isso e publicar uma versão melhorada. Você ainda pode ver a resposta original no final para referência.
Embora o SVG possa ser a melhor escolha, especialmente hoje, meu objetivo com isso era mantê-lo apenas em HTML e CSS, sem JS, sem SVG, sem imagens (além do plano de fundo no elemento raiz).
Demonstração de 2015
Screenshots
Chrome 43:
Firefox 38:
IE 11:
Código
O HTML é bem simples. Estou usando a caixa de seleção hack para revelar / ocultar o menu.
Estou usando o Sass para manter isso lógico e facilitar as alterações, se necessário. Pesadamente comentou.
Mostrar snippet de código
Resposta original
Minha tentativa de fazer algo desse tipo com CSS puro:
demonstração
(clique na estrela)
Funciona no Chrome, Firefox (efeito de desfoque um pouco esquisito ao passar o mouse), Opera (extremidades parecem menores) e Safari (extremidades parecem menores).
fonte
:focus
caminho" . Na verdade, é um método bastante antigo. Eu o vi pela primeira vez usado por Stu Nicholls em seus experimentos no cssplay.co.uk há alguns anos. No CSS acima, é isso.button:focus + .tip
que faz o truque.A resposta de Ana é chute traseiro! Isso é um sério CSS-fu.
Minha solução pode não ser exatamente o que você espera, mas é outra solução possível. No momento, estou trabalhando em uma interface de bússola que possui um estilo semelhante de botões em forma de arco. Eu decidi desenvolvê-lo usando Raphael e SVG.
Criei uma forma de arco no Illustrator, exportei o SVG para ele, peguei a definição do caminho do arco no arquivo SVG exportado e usei o Raphael para criar minha interface.
Aqui está um JSFiddle disso .
Aqui está o JavaScript:
Aqui está o CSS relacionado:
fonte
Outra maneira muito boa seria usar JavaScript para o posicionamento.
DEMO + TUTORIAL na criação de um menu radial animado
Um profissional desse método é que você pode usar qualquer número de elementos e ele continuará posicionando-os radialmente, sem precisar alterar nenhum CSS.
O JavaScript em questão é:
fonte