Bagaimana cara membuat menu yang terlihat seperti ini ...
Saya tidak ingin menggunakan gambar PSD. Saya lebih suka menggunakan ikon dari beberapa paket seperti FontAwesome dan memiliki latar belakang / css yang dihasilkan dalam CSS.
Versi menu yang menggunakan PSD untuk menghasilkan gambar tooltip dan kemudian menggunakannya dapat ditemukan di sini .
css
tooltip
css-shapes
ssb
sumber
sumber
Jawaban:
Hampir 3 tahun kemudian, saya akhirnya meluangkan waktu untuk meninjau kembali ini dan memposting versi yang lebih baik. Anda masih dapat melihat jawaban asli di akhir untuk referensi.
Walaupun SVG mungkin merupakan pilihan yang lebih baik, terutama hari ini, tujuan saya dengan ini adalah untuk tetap menggunakan HTML dan CSS, tanpa JS, tanpa SVG, tanpa gambar (selain latar belakang pada elemen root).
Demo 2015
Tangkapan layar
Chrome 43:
Firefox 38:
IE 11:
Kode
HTMLnya cukup sederhana. Saya menggunakan hack kotak centang untuk membuka / menyembunyikan menu.
Saya menggunakan Sass untuk menjaga ini logis dan membuatnya lebih mudah untuk mengubah hal-hal jika diperlukan. Sangat berkomentar.
Tampilkan cuplikan kode
Jawaban asli
Upaya saya melakukan sesuatu dengan CSS murni:
demo
(klik bintang)
Bekerja di Chrome, Firefox (efek kabur agak aneh pada hover), Opera (ujung terlihat lebih kecil) & Safari (ujung terlihat lebih kecil).
sumber
:focus
jalan" . Ini sebenarnya metode yang cukup lama, saya pertama kali melihatnya digunakan oleh Stu Nicholls dalam eksperimennya di cssplay.co.uk beberapa tahun yang lalu. Dalam CSS di atas, itu.button:focus + .tip
yang melakukan trik.Tanggapan Ana adalah tendangan pantat! Itu beberapa CSS-fu yang serius.
Solusi saya mungkin tidak sesuai dengan yang Anda harapkan, tapi itu solusi lain yang mungkin. Saya sedang mengerjakan antarmuka kompas sekarang yang memiliki gaya serupa tombol berbentuk busur. Saya memutuskan untuk mengembangkannya menggunakan Raphael dan SVG.
Saya membuat bentuk busur di Illustrator, mengekspor SVG untuk itu, meraih definisi path untuk arc dari file SVG yang diekspor, dan menggunakan Raphael untuk membangun antarmuka saya dengannya.
Inilah JSFiddle untuk itu .
Ini JavaScript-nya:
Berikut CSS terkait:
sumber
Cara lain yang sangat bagus adalah menggunakan JavaScript untuk penentuan posisi.
DEMO + TUTORIAL untuk membuat menu radial animasi
Pro ke metode ini adalah bahwa Anda dapat menggunakan sejumlah elemen dan itu akan terus memposisikannya secara radial, tanpa harus mengubah CSS Anda.
JavaScript yang dimaksud adalah:
sumber