Технически это тот же ответ, что и @ChrisJ, с некоторыми подробностями о том, как заставить box-shadow
делать ваши ставки:
для справки элементы * необязательны :
box-shadow: <inset*> <offset-x> <offset-y> <blur-radius*> <spread-radius*> <color*>;
<spread-radius>
должен быть отрицательным <blur-radius>
(чтобы не было видно ни одной из других размытых сторон), а затем вам нужно уменьшить <offset-y>
на ту же величину:
box-shadow: inset 0 20px 20px -20px #000000;
Это даст вам одну градиентную полосу на вершине элемента.