Một tài liệu tham khảo CSS có thể tìm kiếm và in được — selector, box model, flexbox, grid, kiểu chữ, transition và các tính năng hiện đại. Miễn phí.

Bộ chọn

13
.class
Chọn mọi phần tử có class
#id
Chọn phần tử có id
a, b
Nhóm: chọn a và b
a b
Hậu duệ: b bên trong a
a > b
Con trực tiếp b của a
a + b
Anh em liền kề ngay sau a
a ~ b
Anh em chung b sau a
[type="text"]
Bộ chọn thuộc tính
:hover :focus
Lớp giả cho trạng thái
:nth-child(2n)
Mọi con chẵn
::before ::after
Phần tử giả (nội dung sinh ra)
:not(.x)
Phủ định: mọi thứ trừ .x
:is(h1, h2, h3)
Khớp bộ chọn bất kỳ trong danh sách

Box model

7
box-sizing: border-box;
Tính padding & border vào chiều rộng
margin: 0 auto;
Canh giữa khối theo chiều ngang
padding: 1rem 2rem;
Dọc 1rem, ngang 2rem
border: 1px solid #ccc;
Độ rộng, kiểu, màu
border-radius: 8px;
Bo góc
outline: 2px dashed red;
Outline (không ảnh hưởng bố cục)
overflow: hidden;
Cắt nội dung tràn ra

Flexbox

8
display: flex;
Tạo một container flex
flex-direction: row | column;
Hướng trục chính
justify-content: space-between;
Canh theo trục chính
align-items: center;
Canh theo trục phụ
flex-wrap: wrap;
Cho phép phần tử xuống dòng
gap: 1rem;
Khoảng cách giữa các phần tử
flex: 1;
Giãn để lấp đầy (1 1 0)
align-self: flex-end;
Ghi đè trục phụ cho một phần tử

Grid

8
display: grid;
Tạo một container grid
grid-template-columns: 1fr 1fr 1fr;
Ba cột bằng nhau
repeat(3, 1fr)
Viết tắt cho các track lặp lại
minmax(200px, 1fr)
Track giữa min và max
grid-template-columns: repeat(auto-fill, minmax(200px,1fr));
Cột tự động responsive
gap: 1rem;
Khoảng cách hàng và cột
grid-column: 1 / 3;
Trải từ đường 1 đến 3
place-items: center;
Canh giữa trên cả hai trục

Kiểu chữ

8
font-family: system-ui, sans-serif;
Ngăn xếp font
font-size: 1.125rem;
Cỡ chữ tương đối
font-weight: 600;
Độ đậm bold
line-height: 1.6;
Khoảng cách dòng
letter-spacing: .02em;
Giãn ký tự
text-align: center;
Canh chữ theo chiều ngang
text-transform: uppercase;
Đổi kiểu chữ hoa thường
text-overflow: ellipsis;
Cắt bằng … (cần overflow+nowrap)

Màu & nền

7
color: #1f2937;
Màu chữ
background: rgb(0 0 0 / 50%);
rgb hiện đại có alpha
background: linear-gradient(90deg,#f06,#48f);
Gradient tuyến tính
opacity: .5;
Độ trong suốt của phần tử
box-shadow: 0 4px 12px rgb(0 0 0 / .15);
Đổ bóng
background-size: cover;
Co ảnh để phủ kín
color-mix(in srgb, red 40%, blue);
Trộn hai màu

Định vị

6
position: relative;
Lệch khỏi vị trí thông thường
position: absolute;
Tương đối với tổ tiên đã định vị gần nhất
position: fixed;
Tương đối với viewport
position: sticky; top: 0;
Dính khi cuộn qua
inset: 0;
top/right/bottom/left = 0
z-index: 10;
Thứ tự xếp chồng

Chuyển tiếp & hoạt ảnh

5
transition: all .2s ease;
Hoạt họa thay đổi thuộc tính
transform: translateY(-4px) scale(1.05);
Di chuyển, co giãn, xoay
@keyframes spin { to { transform: rotate(360deg); } }
Định nghĩa một hoạt ảnh
animation: spin 1s linear infinite;
Chạy hoạt ảnh keyframe
will-change: transform;
Gợi ý trình duyệt tối ưu hóa

Responsive & hiện đại

7
@media (max-width: 768px) { ... }
Breakpoint media query
clamp(1rem, 2vw, 2rem)
Giá trị linh hoạt với min/max
aspect-ratio: 16 / 9;
Giữ tỷ lệ khung hình
var(--brand)
Dùng một thuộc tính tùy chỉnh
:root { --brand: #4f46e5; }
Định nghĩa thuộc tính tùy chỉnh
container-type: inline-size;
Bật container query
@container (min-width: 400px) {…}
Container query

Không có mục nào khớp với “:q”.


Cần trợ giúp?
Gặp sự cố với công cụ này? Hãy cho đội ngũ của chúng tôi biết.
Báo cáo sự cố

Thêm công cụ miễn phí này vào trang web của riêng bạn — sao chép và dán mã bên dưới.