Saya perlu membuat bayangan kotak pada beberapa block
elemen, tetapi hanya (misalnya) di sisi kanannya. Cara saya melakukannya adalah dengan membungkus elemen dalam dengan box-shadow
yang luar dengan padding-right
dan overflow:hidden;
sehingga tiga sisi lain dari bayangan tidak terlihat.
Apakah ada cara yang lebih baik untuk mencapai ini? Suka box-shadow-right
?
EDIT : Maksud saya adalah membuat hanya bagian vertikal dari bayangan. Persis sama dengan apa repeat-y
yang background:url(shadow.png) 100% 0% repeat-y
akan dilakukan aturan .
css
shadow
box-shadow
tillda
sumber
sumber
Jawaban:
Ya, Anda bisa menggunakan properti penyebaran bayangan aturan kotak-bayangan:
Properti keempat ada
-2px
penyebaran bayangan, Anda dapat menggunakannya untuk mengubah penyebaran bayangan, membuatnya tampak bahwa bayangan itu ada di satu sisi saja.Ini juga menggunakan aturan penentuan posisi bayangan
10px
mengirimkannya ke kanan (offset horizontal) dan0px
menyimpannya di bawah elemen (offset vertikal.)5px
adalah radius blur :)Contoh untuk Anda di sini .
sumber
box-shadow
aturan standar.Solusi buatan saya yang mudah diedit:
HTML:
css:
Demo:
http://jsfiddle.net/jDyQt/103
sumber
Untuk mendapatkan efek terpotong hingga dua sisi Anda dapat menggunakan elemen pseudo dengan gradien latar belakang.
akan menambahkan efek seperti bayangan di sebelah kiri dan kanan elemen yang biasanya membentuk dokumen.
sumber
Cukup gunakan :: after atau :: before elemen pseudo untuk menambahkan bayangan. Buat 1px dan posisikan di sisi mana pun yang Anda inginkan. Di bawah ini adalah contoh dari atas.
sumber
Ini contoh saya:
sumber
Ini sedikit hack yang saya lakukan.
1. Buat
<div class="one_side_shadow"></div>
tepat di bawah elemen yang ingin saya buat bayangan kotak satu sisi (dalam hal ini saya ingin bayangan sisipan satu sisi untukid="element"
datang dari bawah)2. Kemudian saya membuat reguler
box-shadow
menggunakan offset vertikal negatif untuk mendorong bayangan ke atas ke satu sisi.sumber
Ini bisa menjadi cara yang sederhana
Tetapkan ini untuk div apa saja
sumber
Berikut adalah codepen yang diperagakan untuk setiap sisi, atau cuplikan yang berfungsi:
sumber
Situs ini membantu saya: https://gist.github.com/ocean90/1268328 (Perhatikan bahwa di situs itu kiri dan kanan dibalik pada tanggal posting ini ... tetapi mereka berfungsi seperti yang diharapkan). Mereka dikoreksi dalam kode di bawah ini.
sumber
sumber
Apa yang saya lakukan adalah membuat blok vertikal untuk bayangan, dan letakkan di sebelah tempat elemen blok saya seharusnya. Kedua blok tersebut kemudian dibungkus menjadi blok lain:
Contoh jsFiddle di sini .
sumber
Oke, ini dia satu kali coba lagi. Menggunakan elemen pseudo dan menerapkan porperty shadow-box di atasnya.
html:
kelancangan:
https://codepen.io/alex3o0/pen/PrMyNQ
sumber