Чем отличается box-shadow от drop-shadow?

Чем отличается box-shadow от drop-shadow?

Чем отличается box-shadow от drop-shadow?

CSS-свойство box-shadow задает тень блоку, а функция drop-shadow() делает тень по контурам элемента, учитывая прозрачные участки. В этом и состоит принципиальное различие.

CSS-свойство box-shadow

box-shadow создает эффект тени для любого элемента страницы и может принимать до 5 значений:

  1. горизонтальное смещение
  2. вертикальное смещение
  3. радиус размытия
  4. растяжение
  5. цвет тени

Для более сложных вариантов возможно создавать несколько теней для одного элемента.

Текст с тенью


<div class="container">
    <h2 class="text1">Box Shadow</h2>
</div>

.container{
    position: relative;
    width: 900px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-direction: column;
}

.container h2{
    font-size: 5em;
    line-height: 1em;
    padding: 5px 20px;
}
.container .text1{
    color: #fff;
    border-radius: 20px;
    box-shadow: -3px -3px 2px rgba(255,255,255,0.3), // тень #1
        5px 5px 5px rgba(0,0,0,0.2), // тень #2
        15px 15px 15px rgba(0,0,0,0.2); // тень #3
}

Чем отличается box-shadow от drop-shadow?

Изображение с тенью


<div class="box">
    <img src="star1.png" class="img1">
</div>

.container .box{
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.container .img1{
    border-radius: 20px;
    box-shadow: -3px -3px 2px rgba(255,255,255,0.3), // тень #1
        5px 5px 5px rgba(0,0,0,0.2), // тень #2
        15px 15px 15px rgba(0,0,0,0.2); // тень #3
}

Чем отличается box-shadow от drop-shadow?

Функция drop-shadow()

Функция drop-shadow() добавляет тень к тексту или изображению с учётом прозрачных областей.

Текст с тенью


<h2 class="text2">Drop Shadow</h2>

.container .text2{
    padding: 40px;
    box-shadow: none;
    border-radius: 40px;
    color: #d31616;
    filter: drop-shadow(-3px -3px 2px rgba(255,255,255,0.3)) // тень #1
        drop-shadow(5px 5px 5px rgba(0,0,0,0.2)) // тень #2
        drop-shadow(15px 15px 15px rgba(0,0,0,0.2)); // тень #3
}

Чем отличается box-shadow от drop-shadow?

Изображение с тенью


<img src="star2.png" class="img2">

.container .img2{
    padding: 40px;
    box-shadow: none;
    border-radius: 40px;
    filter: drop-shadow(-3px -3px 2px rgba(255,255,255,0.3)) // тень #1
        drop-shadow(5px 5px 5px rgba(0,0,0,0.2)) // тень #2
        drop-shadow(15px 15px 15px rgba(0,0,0,0.2)); // тень #3
}

Чем отличается box-shadow от drop-shadow?

Источник

НЕТ КОММЕНТАРИЕВ

Оставить комментарий