Я немного поэкспериментировал с вашим образцом кодирования, и вы правы, он постепенно становится легче. В хроме тень странно становится светлее с каждым шагом, который вы совершаете из height:5px;
. То же самое в ФФ. Я сделал пару снимков экрана и посмотрел на цвет, ближайший к нижней части div в тени с фотошопом. Вот результаты:
height:5px; - #b5b5b5
height:4px; - #c0c0c0
height:3px; - #cccccc
height:2px; - #d8d8d8
height:1px; - #e3e3e3
height:0px; - #eeeeee
Эффект должен начинаться даже раньше, чем 5px, потому что этот первый цвет @ 5px значительно светлее, чем в вашем CSS. Самый простой эффект - просто понизить цвет на 10% темнее для каждого пикселя, который вы уменьшаете. Это должно визуально исправить это.
Что я думаю, что происходит? Когда вы делаете div в 5px, точка, в которой браузер запускает часть градиента тени # 888, слишком мала для точного отображения. Возможно, он начинает тень с середины 5-пиксельной высоты (за окном просмотра), а всего 7-8 пикселей недостаточно места, чтобы сойти с серого, такого темного, как # 888. Бьюсь об заклад, вы бы увидели большое время Таким образом, браузер перекрывает эту потенциальную ловушку, приглушая цвет до некоторой степени.
Это странно, но это происходит как в FF, так и в Chrome, поэтому я поспорил со своей частью спецификации W3C о том, как тени должны деградировать. Я не уверен, что это правильный ответ, но это лучший ответ, который я мог придумать. Это было в FF 3.6.12 и Chrome 7.0.517.44 на OSX 10.6.4.