Hướng dẫn box-shadow css examples

  • Trang chủ
  • Hướng dẫn học
  • Hướng dẫn học CSS3
  • box-shadow

box-shadow là gì?

box-shadow là thuộc tính được tạo ra nhằm xử lý bóng đổ (shadow) cho thành phần, nếu như trước đây để tạo được shadow, ta cần dùng background-image, và xử lý transparence phức tạp, thì giờ đây việc này sẽ vô cùng đơn giản.

Cấu trúc

tag {
    box-shadow: h-offset v-offset blur spread color optional;
}

box-shadow có tất cả 5 giá trị chính, lần lượt điều khiển shadow dịch chuyển theo chiều ngang (h-offset), theo chiều dọc (v-offset), tạo độ mờ (blur), tạo shadow phân tán (spread) và màu cho shadow, và 1 giá trị tùy chọn, được dùng thay đổi tính chất shadow theo vị trí bên ngoài hay bên trong thành phần (inset).

Giá trịĐơn vịVDMô tả
h-offset px
em
5px Điều chỉnh khoảng cách shadow theo chiều ngang
v-offset px
em
5px Điều chỉnh khoảng cách shadow theo chiều dọc
blur px
em
5px Điều chỉnh độ mờ của shadow
spread px
em
5px Điều chỉnh độ phân tán của shadow
color Mã màu
Tên màu
Giá trị rgba
#ff0000;
red
rgba(183, 183, 183, 0.5);
Các giá trị màu có thể có của shadow
optional inset inset Shadow bên trong thành phần

Cách sử dụng

HTML viết:





Box - shadow

CSS viết - khi chưa sử dụng box-shadow:

div {
    border: 3px solid #ffcccc;
    height: 100px;
    line-height: 100px;
    margin: 30px;
    text-align: center;
    width: 200px;
}

Hiển thị trình duyệt:

Bây giờ ta sẽ sử dụng box-shadow để chỉnh shadow cho box như sau:

CSS viết:

div {
    border: 3px solid #ffcccc;
    box-shadow: 0px 0px 5px 5px #999999;
    height: 100px;
    line-height: 100px;
    text-align: center;
    width: 200px;
}

Hiển thị trình duyệt:

Với cách viết như trên, ta thấy shadow đã được tạo một cách dễ dàng với 1 dòng lệnh, ta có thể điều chỉnh h-offsetv-offset để xem thay đổi:

Hiển thị trình duyệt: điều chỉnh shadow theo chiều ngang:

div {
    border: 3px solid #ffcccc;
    box-shadow: 10px 0px 5px 5px #999999;
    height: 100px;
    line-height: 100px;
    text-align: center;
    width: 200px;
}

Hiển thị trình duyệt: điều chỉnh shadow theo chiều dọc

div {
    border: 3px solid #ffcccc;
    box-shadow: 0px 10px 5px 5px #999999;
    height: 100px;
    line-height: 100px;
    text-align: center;
    width: 200px;
}

box-shadow với inset

div {
    border: 3px solid #ffcccc;
    box-shadow: box-shadow: 0px -1px 5px 3px #999 inset;
    height: 100px;
    line-height: 100px;
    text-align: center;
    width: 200px;
}

Ví dụ thêm - Một số box-shadow thường dùng

Shadow nhạt

div {
    border: 3px solid #ffcccc;
    box-shadow: 0 1px 5px rgba(0, 0, 0, 0.3);
    height: 100px;
    line-height: 100px;
    text-align: center;
    width: 200px;
}

Shadow đậm

div {
    border: 3px solid #ffcccc;
    box-shadow: 0 0 5px 2px rgba(0, 0, 0, 0.6);
    height: 100px;
    line-height: 100px;
    text-align: center;
    width: 200px;
}

Shadow bên dưới gần

div {
    border: 3px solid #ffcccc;
    box-shadow: 0 4px 2px -3px;
    height: 100px;
    line-height: 100px;
    text-align: center;
    width: 200px;
}

Shadow bên dưới xa

div {
    border: 3px solid #ffcccc;
    box-shadow: 0px 10px 6px -6px #999999;
    height: 100px;
    line-height: 100px;
    text-align: center;
    width: 200px;
}

Tới đây chắc các bạn đã biết cách dùng box-shadow như thế nào rồi he, các bạn cũng có thể xem nhiều ví dụ hơn tại phần tham khảo box-shadow hoặc xem công cụ tạo box-shadow nhé.

Bạn có thể thay đổi màu nền, kiểu phông chữ, màu phông chữ, bóng hộp, lề và nhiều thuộc tính khác của một phần tử bằng cách sử dụng CSS.  Trong bài viết dưới đây, FUNiX sẽ hướng dẫn bạn một số cách sử dụng hiệu quả của box-shadow (bóng hộp).

CSS box-shadow là gì?

Thuộc tính box-shadow được sử dụng để áp dụng bóng cho các phần tử HTML. Đây là một trong những thuộc tính CSS được sử dụng nhiều nhất để tạo kiểu cho các hộp hoặc hình ảnh.

Cú pháp CSS:

box-shadow: [horizontal offset] [vertical offset] [blur radius] [optional spread radius] [color];
  1. độ lệch ngang: Nếu độ lệch ngang là dương, bóng sẽ ở bên phải của hộp. Và nếu độ lệch ngang là âm, thì bóng sẽ ở bên trái của hộp.
  2. độ lệch dọc:  Nếu độ lệch dọc là dương, bóng sẽ nằm bên dưới hộp. Và nếu độ lệch dọc là âm, thì bóng sẽ ở trên hộp.
  3. bán kính mờ:  Giá trị càng cao thì bóng mờ càng nhiều.
  4. bán kính lan rộng: Nó cho biết bóng sẽ lan rộng bao nhiêu. Giá trị dương làm tăng độ lan truyền của bóng, giá trị âm làm giảm độ lan truyền.
  5. Màu sắc:  Nó biểu thị màu sắc của bóng. Ngoài ra, nó hỗ trợ bất kỳ định dạng màu nào như rgba, hex hoặc hsla.

Các thông số về độ mờ, độ lan rộng và màu sắc là tùy chọn. Phần thú vị nhất của box-shadow là bạn có thể sử dụng dấu phẩy để phân tách các giá trị box-shadow bất kỳ lúc nào. Điều này có thể được sử dụng để tạo nhiều đường viền và bóng trên các phần tử.

1. Thêm bóng hộp Dim vào Trái, Phải và Dưới cùng của Hộp

Bạn có thể thêm bóng mờ vào ba mặt (trái, phải và dưới cùng) của hộp bằng cách sử dụng CSS bóng hộp sau với phần tử HTML mục tiêu của bạn:

box-shadow: rgba(149, 157, 165, 0.2) 0px 8px 24px;

Đầu ra:

Box-shadow Kiểu 1

2. Thêm một hộp bóng mờ cho Tất cả các mặt

Bạn có thể thêm bóng sáng vào tất cả các mặt của hộp bằng cách sử dụng CSS tạo bóng hộp sau với phần tử HTML mục tiêu của bạn:

box-shadow: rgba(100, 100, 111, 0.2) 0px 7px 29px 0px;

Đầu ra:

box-shadow Kiểu 2

3. Thêm một bóng hộp mỏng vào Mặt dưới và Mặt phải

Bạn có thể thêm bóng vào dưới cùng và bên phải của hộp bằng cách sử dụng CSS tạo bóng hộp sau với phần tử HTML mục tiêu của bạn:

box-shadow: rgba(0, 0, 0, 0.15) 1.95px 1.95px 2.6px;

Đầu ra:

Box-shadow Kiểu 3

4. Thêm một hộp bóng tối cho Tất cả các mặt

Bạn có thể thêm bóng tối cho tất cả các mặt của hộp bằng cách sử dụng CSS tạo bóng hộp sau với phần tử HTML mục tiêu của bạn:

box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;

Đầu ra:

box-shadow Kiểu 4

5. Thêm Spread Shadow vào Tất cả các Mặt

Bạn có thể thêm bóng trải rộng vào tất cả các mặt của hộp bằng cách sử dụng lệnh sau với phần tử HTML mục tiêu của bạn:

box-shadow: rgba(0, 0, 0, 0.25) 0px 54px 55px, rgba(0, 0, 0, 0.12) 0px -12px 30px, rgba(0, 0, 0, 0.12) 0px 4px 6px, rgba(0, 0, 0, 0.17) 0px 12px 13px, rgba(0, 0, 0, 0.09) 0px -3px 5px;

Đầu ra:

box-shadow Kiểu 5

6. Thêm bóng viền mỏng cho tất cả các mặt

Bạn có thể thêm bóng đường viền đơn giản vào tất cả các mặt của hộp bằng cách sử dụng CSS sau với phần tử HTML mục tiêu của bạn:

box-shadow: rgba(6, 24, 44, 0.4) 0px 0px 0px 2px, rgba(6, 24, 44, 0.65) 0px 4px 6px -1px, rgba(255, 255, 255, 0.08) 0px 1px 0px inset;

Đầu ra:

box-shadow Kiểu 6

7. Thêm một bóng hộp vào Mặt dưới và Mặt trái

Bạn có thể thêm bóng đổ vào bên dưới và bên trái của hộp bằng cách sử dụng CSS tạo bóng hộp sau với phần tử HTML mục tiêu của mình:

box-shadow: rgba(0, 0, 0, 0.1) -4px 9px 25px -6px;

Đầu ra:

box-shadow Kiểu 7

8. Thêm bóng hộp Dim vào Mặt trên và Mặt trái, Bóng tối vào Mặt dưới và Mặt phải

Bạn có thể thêm bóng sáng vào phía trên và bên trái của hộp cũng như bóng tối vào phía dưới và bên phải của hộp bằng cách sử dụng CSS sau với phần tử HTML mục tiêu của bạn:

box-shadow: rgba(136, 165, 191, 0.48) 6px 2px 16px 0px, rgba(255, 255, 255, 0.8) -6px -2px 16px 0px;

Đầu ra:

box-shadow Kiểu 8

9. Thêm bóng viền mỏng, có màu cho tất cả các mặt

Bạn có thể thêm bóng đường viền màu đơn giản vào tất cả các mặt của hộp bằng cách sử dụng CSS tạo bóng hộp sau với phần tử HTML mục tiêu của bạn:

box-shadow: rgba(3, 102, 214, 0.3) 0px 0px 0px 3px;

Đầu ra:

box-shadow Kiểu 9

10. Thêm nhiều bóng viền nhiều màu vào các mặt dưới cùng và bên trái của hộp

Bạn có thể thêm nhiều bóng đường viền màu vào bên dưới và bên trái của hộp bằng cách sử dụng CSS sau với phần tử HTML mục tiêu của bạn:

box-shadow: rgba(50, 50, 93, 0.25) 0px 30px 60px -12px inset, rgba(0, 0, 0, 0.3) 0px 18px 36px -18px inset;

Đầu ra:

box-shadow Kiểu 10

11. Thêm nhiều bóng viền nhiều màu vào phần dưới cùng

Bạn có thể thêm nhiều bóng đường viền màu vào cuối hộp bằng cách sử dụng CSS tạo bóng hộp sau với phần tử HTML mục tiêu của bạn:

box-shadow: rgba(240, 46, 170, 0.4) 0px 5px, rgba(240, 46, 170, 0.3) 0px 10px, rgba(240, 46, 170, 0.2) 0px 15px, rgba(240, 46, 170, 0.1) 0px 20px, rgba(240, 46, 170, 0.05) 0px 25px;

Đầu ra:

Box-shadow Kiểu 11

12. Thêm nhiều bóng viền nhiều màu vào phần dưới cùng và bên phải của hộp

Bạn có thể thêm nhiều bóng đường viền màu vào bên dưới và bên phải của hộp bằng cách sử dụng CSS sau với phần tử HTML mục tiêu của bạn:

box-shadow: rgba(240, 46, 170, 0.4) 5px 5px, rgba(240, 46, 170, 0.3) 10px 10px, rgba(240, 46, 170, 0.2) 15px 15px, rgba(240, 46, 170, 0.1) 20px 20px, rgba(240, 46, 170, 0.05) 25px 25px;

Đầu ra:

box-shadow Kiểu 12

13. Thêm bóng sáng vào hai bên trái và phải, rải bóng xuống dưới cùng

Bạn có thể thêm bóng sáng vào bên trái và bên phải và trải bóng xuống dưới cùng của hộp bằng cách sử dụng CSS tạo bóng hộp sau với phần tử HTML mục tiêu của bạn:

box-shadow: rgba(0, 0, 0, 0.09) 0px 2px 1px, rgba(0, 0, 0, 0.09) 0px 4px 2px, rgba(0, 0, 0, 0.09) 0px 8px 4px, rgba(0, 0, 0, 0.09) 0px 16px 8px, rgba(0, 0, 0, 0.09) 0px 32px 16px;

Đầu ra:

Box-shadow Style 13

Tích hợp CSS với một trang HTML

Bây giờ bạn đã biết cách thêm hiệu ứng bóng hộp thú vị bằng cách sử dụng CSS, bạn có thể dễ dàng tích hợp chúng với các phần tử HTML theo nhiều cách.

Bạn có thể nhúng nó vào chính trang HTML hoặc đính kèm nó dưới dạng một tài liệu riêng biệt. Có ba cách để đưa CSS vào tài liệu HTML:

CSS nội bộ

Bảng kiểu nhúng hoặc Bảng kiểu nội bộ được chèn trong phần  của tài liệu HTML bằng cách sử dụng phần tử