CSS vừa dễ mà vừa khó. Dễ ở chỗ học thì dễ vì làm việc với CSS thì chỉ xoay quanh màu sắc, kích thước và cái hộp (box) thôi cơ mà khó ở chỗ áp dụng (chủ thớt chém như đúng rồi ).
Bài chém này tổng hợp kiến thức về CSS dưới dạng Cheat Sheet để cho mọi người tham khảo khi cần thiết. Đồng thời bonus thêm một cái vô cùng đau đầu trong CSS là Canh giữa đủ thứ
Bookmark nào
Bạn có thể Bookmark lại trang này để có gì sau này tham khảo nha
Vài lưu ý thuật ngữ
CSS là từ viết tắt của Cascading Style Sheet được hiểu là ngôn ngữ tạo phong cách và định dạng kiểu cho đối tượng được viết dưới dạng ngôn ngữ đánh dấu như là HTML.
CSS được phát triển bởi W3C (World Wide Web Consortium - Hiệp hội web trên toàn thế giới) từ năm 1996 với lý do rất đơn giản là tạo phong cách, trang trí cho trang web vì HTML chỉ là ngôn ngữ đánh dấu văn bản thôi.
Mối quan hệ giữa HTML rất mật thiết bạn có thể tưởng tượng nếu HTML là bộ khung của chiếc xe còn CSS chính là nội thất, màu sắc giúp tạo nên phong cách, đẳng cấp của chiếc xe.
CSS hoạt động rất đơn giản theo nhiều cách khác nhau để tạo ra sự phức tạp với sự khủng bố của cụm từ !important. Chém gió vậy để hù bạn tí thôi. Chứ CSS hoạt động bằng cách chọn các thành phần trên HTML dựa vào các thẻ tag và thuộc tính attributes. Rồi sau đó khi chọn được rồi thì sẽ dùng cú pháp của CSS để trang trí, tạo phong cách cho cái thành phần trên HTML được chọn. Vậy thôi
CSS có thể được chèn trực tiếp vào thẻ tag trong tập tin HTML
ví dụ <p style="color:blue"> HTML</p>
hoặc được viết trong cặp thẻ style, ví dụ <style>p {color:blue}</style>
CSS có thể được viết riêng ra thành tập tin có phần mở rộng .css và sau đó được liên kết vào phần head của trang HTML. Ví dụ ta có file style.css dùng trang trí cho file index.html cùng folder, cùng cấp thì trong phần head của file index.html ta sẽ liên kết với file style.css như sau <link ref="stylesheet" href="style.css" >
Phần này giải thích thêm cho 6 thuộc tính căn chỉnh box đó và tương quan với các box khác trong một box lớn hơn. Chủ yếu áp dụng với Flexbox và Grid có hai trục chính
Trục mà nó được áp dụng là main/inline hay cross/block. Trong đó flexbox chia ra trục main/cross còn Grid chia ra trục inline/block
Nó kiểm soát vị trí của box bên trong box cha hay nó kiểm soát vị trí nội dung bên trong của nó
Hình bên dưới giải thích rõ hơn về 6 thuộc tính căn chỉnh này. Tham khảo bài gốc tại đây
CSS Canh giữa đủ thứ
Canh giữa theo chiều ngang
Canh giữa Text
Thường thì canh giữa text ta dùng như sau
text-align: center
Cùng xem ví dụ bên dưới nhu sau:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<divclass="container-doidev"><pclass="class-doidev">Đời Dev chém gió</p></div><style>.container-doidev{width:300px;height:200px;border:2pxdashedpink;}.class-doidev{text-align:center;}</style>
Hiển thị Giao diện cho ví dụ trên
Đời Dev chém gió
Canh giữa khối Div với Margin auto
Ta có thể dùng thuộc tính margin: 0 auto; để canh giữa khối Div theo chiều ngang
<divclass="container-doidev-3"><divclass="class-doidev-3"></div></div><style>.container-doidev-3{width:300px;height:200px;border:2pxdashedpink;position:relative;}.class-doidev-3{width:50px;height:50px;background:red;/* canh giữa theo chiều dọc*/position:absolute;top:50%;}</style>
Hiển thị cho ví dụ trên
Nhưng theo ví dụ trên thì cạnh trên của khối div đã được canh giữa. Nhưng nếu chúng ta muốn canh giữa khối Div thì phải thêm margin âm để cho khối div di chuyển lên. Ở đây vì độ cao của khối Div là 50px nên ta phải lấy độ cao chia cho 2 bằng 25px chính là margin âm và ví dụ trên viết lại như sau:
<divclass="container-doidev-4"><divclass="class-doidev-4"></div></div><style>.container-doidev-4{width:300px;height:200px;border:2pxdashedpink;position:relative;}.class-doidev-4{width:50px;height:50px;background:red;/* canh giữa theo chiều dọc*/position:absolute;top:50%;margin-top:-25px;}</style>
<divclass="container-doidev-5"><divclass="class-doidev-5"></div></div><style>.container-doidev-5{width:300px;height:200px;border:2pxdashedpink;position:relative;}.class-doidev-5{width:50px;height:50px;background:red;/* canh giữa theo chiều dọc*/position:absolute;top:50%;transform:translateY(-50%)}</style>
<divclass="container-doidev-7"><divclass="class-doidev-7"></div></div><style>.container-doidev-7{width:300px;height:200px;border:2pxdashedpink;position:relative;}.class-doidev-7{width:50px;height:50px;background:green;/* Canh giữa hai chiều ngang dọc */position:absolute;top:50%;left:50%;margin:-25px00-25px;}</style>
<divclass="container-doidev-8"><divclass="class-doidev-8"></div></div><style>.container-doidev-8{width:300px;height:200px;border:2pxdashedpink;position:relative;}.class-doidev-8{width:50px;height:50px;background:blue;/* Canh giữa hai chiều ngang dọc */position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}</style>
<divclass="container-doidev-9"><divclass="class-doidev-9"></div></div><style>.container-doidev-9{width:300px;height:200px;border:2pxdashedpink;/* Canh giữa hai chiều ngang dọc */display:flex;justify-content:center;align-items:center;}.class-doidev-9{width:50px;height:50px;background:yellow;}</style>