Есть ли способ уронить тень только снизу? У меня есть меню с 2 изображениями рядом друг с другом. Я не хочу правильную тень, потому что она перекрывает правильное изображение. Я не люблю использовать изображения для этого, так что есть способ поместить его только внизу, например:
box-shadow-bottom: 10px #FFF;
или похожие?
-moz-box-shadow: 0px 3px 3px #000;
-webkit-box-shadow: 0px 3px 3px #000;
box-shadow-bottom: 5px #000;
/* For IE 8 */
-ms-filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=180, Color='#000000')";
/* For IE 5.5 - 7 */
filter: progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=180, Color='#000000');
box-shadow-bottom
что не существует и не поддерживается никем. См. Nicolasgallagher.com/css-drop-shadows-without-images/demo для законных методов теней.filter
будут работать в IE8 и IE9. Нет необходимости-ms-filter
в этом случае.Ответы:
ОБНОВЛЕНИЕ 4
То же, что и обновление 3, но с современным css (= меньше правил), так что не требуется никакого специального позиционирования на псевдоэлементе.
ОБНОВЛЕНИЕ 3
Все мои предыдущие ответы использовали дополнительную разметку, чтобы создать этот эффект, который не обязательно нужен. Я думаю, что это намного более чистое решение ... единственный трюк - это подыгрывать значениям, чтобы получить правильное расположение тени, а также правильную силу / непрозрачность тени. Вот новая скрипка, использующая псевдоэлементы :
http://jsfiddle.net/UnsungHero97/ARRRZ/2/
HTML
CSS
ОБНОВЛЕНИЕ 2
По-видимому, вы можете сделать это, просто добавив дополнительный параметр к CSS для box-shadow, как и все остальные. Вот демо:
http://jsfiddle.net/K88H9/821/
CSS
Это было бы лучшим решением. Добавляемый дополнительный параметр описывается так:
ОБНОВИТЬ
Проверьте демо на jsFiddle: http://jsfiddle.net/K88H9/4/
Я создал «теневой элемент», который скрылся бы за фактическим элементом, который вы хотели бы иметь тень. Я сделал ширину «теневого элемента» точно меньшей ширины, чем фактический элемент, в 2 раза больше указанной вами тени; тогда я выровнял это правильно.
HTML
CSS
Оригинальный ответ
Да, вы можете сделать это с тем же синтаксисом, который вы указали. Первое значение контролирует горизонтальное позиционирование, а второе значение контролирует вертикальное позиционирование. Так что просто установите для первого значения,
0px
а для второго смещение, которое вы хотите, следующим образом:Для получения дополнительной информации о тенях коробки, проверьте эти:
Надеюсь, это поможет.
источник
box-shadow: 0 2px 4px #000000
значение размытия. Смотрите здесь http://jsfiddle.net/K88H9/7/ . Но вы заметите, что слева и справа от элемента есть небольшое размытие, чего нет у решения Христо.box-shadow-bottom
в то время как творческий, на самом деле не существует.Просто используйте параметр распространения, чтобы уменьшить тень:
Демонстрационная версия: http://dabblet.com/gist/a8f8ba527f5cff607327
Чтобы не видеть тени по сторонам, (абсолютное значение) радиуса разброса (4-й параметр) должно быть таким же, как радиус размытия (3-й параметр).
источник
box-shadow:0 8px 4px -6px
и вы увидите только нижнюю тень!Если у вас есть фиксированный цвет фона, вы можете скрыть эффект боковой тени с двумя маскирующими тенями, имеющими один и тот же цвет фона, и размытие = 0, например:
Обратите внимание, что черная тень должна быть последней и иметь отрицательный спред (-3px), чтобы предотвратить ее распространение за углы.
Здесь скрипка (измените цвет маскирующих теней, чтобы увидеть, как это действительно работает).
источник
transparent
цвет для маскировки теней, нет?Я думаю, это то, что вы после?
источник
Всегда лучше прочитать спецификации . Нет
box-shadow-bottom
свойства, и, как указывает Ли, вы всегда должны размещать свойство без префикса внизу, после префикса.Так что это:
источник
Как насчет того, чтобы просто использовать содержащий div, у которого переполнение установлено на скрытый, а некоторые отступы внизу? Это кажется самым простым решением.
Извините, что сам не подумал об этом, но видел это где-то еще .
Как сказал Йорген Эвенс .
источник
padding-bottom
(скажем, 5px), вы также можете установить отрицательное значениеmargin-bottom
(-5px), чтобы компенсировать добавленное пространство.Вы также можете использовать,
clip-path
чтобы обрезать (скрыть) все переполняющиеся края, кроме того, который вы хотите показать:Смотрите клип-путь (MDN) . Аргументами
polygon
являются верхняя левая точка, верхняя правая точка, нижняя правая точка и нижняя левая точка. Устанавливая нижний край200%
(или любое другое число больше100%
), вы ограничиваете переполнение только нижним краем.источник
Я также нуждался в тени, но только под изображением и вставил немного влево и вправо. Это сработало для меня:
Элемент, к которому он применяется, представляет собой изображение шириной страницы (980px x 300px).
Если это помогает при работе с настройками, они работают следующим образом:
горизонтальная тень, вертикальная тень, расстояние размытия, разброс (т.е. размер тени) и цвет.
источник
Лучше взглянуть на тень:
этот код в настоящее время используется на веб-сайте stackoverflow.
источник
Этот кодовый перо (не мной) демонстрирует очень простой способ сделать это и другие стороны сами по себе:
https://codepen.io/zeckdude/pen/oxywmm
источник
Если ваш фон сплошной (или вы можете воспроизвести его с помощью CSS), вы можете использовать линейный градиент следующим образом:
Это создаст градиент 5px в нижней части элемента, от черного с непрозрачностью 30% до полностью прозрачного. Остальная часть элемента имеет белый фон. Конечно, изменяя последние 2 цветовых ограничителя линейного градиента, вы можете сделать фон полностью прозрачным.
источник
Вы также можете просто сделать градиент внизу - это было полезно для меня, потому что тень, которую я хотел, была на элементе, который уже был полупрозрачным, поэтому мне не нужно было беспокоиться об отсечении:
Просто сделайте так, чтобы свойства "bottom" и "height" совпадали, и установите ваши значения rgba такими, какими вы хотите, чтобы они были в верхней / нижней части тени.
источник
Вы можете сделать это так:
Общий синтаксис:
Пример: мы хотим сделать только тень нижнего блока с красным цветом,
так что для этого мы должны установить все параметры сторон, где мы должны установить параметры тени нижнего блока и установить все остальные пустыми, как показано ниже:
источник
обновите для кого-то еще свой ответ прозрачными сторонами вместо белого, чтобы он работал и на других цветных фонах.
источник
внутренняя тень
источник