Blogs
8 hàm CSS siêu hay
CSS có sức mạnh đáng sợ hơn chúng ta nghĩ. Và món ngôn ngữ style sheet này vẫn đang trên đà phát triển mạnh mẽ qua mỗi năm, mang đến nhiều tính năng tuyệt vời cho trình duyệt.
1. Pure CSS Tooltips
Rất nhiều website hiện vẫn đang sử dụng JavaScript để tạo tooltips, và phức tạp hơn nhiều so với CSS. Giải pháp đơn giản nhất, ta chỉ việc lồng tooltip text vào data attribute trong HTML code, ví dụ như data-tooltip="…"
. Với markup như vậy, bạn có thể tiếp tục hiển thị tooltip text trong hàm attr()
với đoạn code sau:
1
2
3
4
5
|
. tooltip :: after {
content : attr ( data - tooltip ) ;
}
|
Để chỉnh style của tooltip, bạn hiển nhiên cần nhiều code hơn một chút. Nếu bạn không biết phải làm gì, Hint.css là một thư viện rất hay để bạn thỏa sức vọc vạch.
2. Tận(/lạm) dụng Custom Data Attributes và hàm attr()
Hàm attr()
, bên cạnh ứng dụng vào tootips, ta còn có thể xây dựng thumbnail có tittle và description để kết hợp với data attributes. Bạn chỉ cần một dòng HTML code sau:
1
2
3
4
5
|
< a class = "caption" href = "#" data - title = "Vulture" data - description = "..." >
< img src = "img.jpg" alt = "Illustration" / >
< / a >
|
Đến đây bạn có thể dùng hàm attr()
để hiển thị tittle và description:
1
2
3
4
5
6
|
. caption :: after {
content : attr ( data - title ) ;
. . .
}
|
Sau đây là thumbnail ví dụ với captions động hiển thị khi rơ chuột:
See the Pen Thumbnail with Animated Captions by SitePoint (@SitePoint) on CodePen.
Lưu ý: Những thumbnail này đôi khi cũng xuất hiện sự cố truy cập.
3. CSS Counters
Đây không phải là tính năng nổi tiếng nhất của CSS, và nhiều người nghĩ rằng CSS counter không được hỗ trợ mạnh mẽ như những tính năng khác. Nhưng sự thật hoàn toàn ngược lại, với CSS Counters, bạn có thể làm được đủ thứ “màu nhiệm” trên hầu hết trình duyệt.
Thống kê: http://caniuse.com/#feat=forms
Tuy CSS counter không hợp với danh sách theo thứ tự (<ol>
) cho lắm, nhưng lại hoàn hảo nếu bạn muốn đánh dấu trang hay hiển thị số dưới các đầu mục trong gallery. Bạn còn có thể đếm số đầu mục đã check, khá ấn tượng với số code ít ỏi mà bạn cần động đến (và không cần cả JavaScript):
See the Pen Selection CSS Counter by Will Boyd (@lonekorean) on CodePen.
CSS cũng có thể được áp dụng với loạt số thay đổi liên tục trong list item, các items có thể được sắp xếp lại bằng cách kéo thả:
See the Pen CSS Counters drag-and-drop demonstration by SitePoint (@SitePoint) on CodePen.
Cũng giống như ví dụ trước, nên nhớ – kết quả bạn nhân được có thể vướn một số vấn đề truy cập.
4. Frosted Glass với CSS Filters
Với iOS 7, Apple mang đến cho chúng ta hiệu ứng “kính mờ” – với những thành tố mờ mờ ảo ảo như kính bị kết băng. Tái hiện hiệu ứng này là một việc khá rắc rối – khi chưa có CSS filter, ta chỉ có thể dùng blurred images. Ngày nay, CSS filter đã được đa số trình duyệt hỗ trợ, giúp ta vận dụng hiệu ứng này dễ dàng hơn.
Thống kê: http://caniuse.com/#feat=css-filters
5. Dùng HTML Elements làm hình Background
Thông thường, bạn sẽ chỉ định một file JPEG hoặc PNG làm hình background hay gradient. Nhưng bạn có biết rằng, với hàm element()
, bạn còn có thể sử dụng <div>
làm hình background? Hiện nay, hàm element()
chỉ được Firefox hỗ trợ.
Thống kê: http://caniuse.com/#feat=css-element-function
6. Smarter Grids with calc()
Fluid grids rất hay, nhưng vẫn còn hạn chế. Ví dụ như, bạn không thể có gutter phía trên và dưới cùng kích thước với gutter trái phải. Hơn nữa, markup loạn tùng phèo cả lên, tùy vào việc bạn dùng grid system nào. Ngay cả riêng flexbox cũng không phải là giải pháp tối ưu, nhưng với hàm calc()
(có thể dùng làm giá trị trong CSS), grid sẽ cải thiện mạnh mẽ.
Thống kế: http://caniuse.com/#feat=calc
7. Aligning position:fixed Elements with CSS calc()
Không chỉ để dùng với grid, hàm cal()
còn dùng để align các thành tố vào vị trí cố định. Ví dụ, nếu bạn có content wraper với fluid spacing sang trái và phải, và bạn muốn canh thảnh một thành tố cố định trong wrapper đó – bạn sẽ khá vất vả khi phải quyết định chọn giá trị nào cho property “phải” hoặc “trái”. Với calc()
, bạn có thể kết hợp các giá trị tương đối và tuyệt đối để canh thẳng thành tố thật vừa vặn:
1
2
3
4
5
6
7
8
9
10
|
. wrapper {
max - width : 1060px ;
margin : 0 auto ;
}
. floating - bubble {
position : fixed ;
right : calc ( 50 % - 530px ) ; /* 50% - half your wrapper width */
}
|
Sau đây là ví dụ minh họa:
See the Pen Aligning “position: fixed” elements with CSS calc() by SitePoint (@SitePoint) on CodePen.
8. Animations với cubic-bezier()
Để tăng sự thu hút của UI trang web hay UI ứng dụng, bạn có thể sử dụng animation, và tùy chỉnh “cơ bản” sẽ rất hạn chế. Ví dụ, "linear"
hay ”ease-in-out"
. Thậm chí bạn còn không thể dùng animation “nhảy” bouncy được. Với hàm cubic-bezier()
, bạn có thể thao túng animation đúng theo ý mình.
Có hai cách sử dụng cubic-bezier()
: thấu hiểu nguyên lý chính xác của hàm, hoặc dùng cubic-bezier generator. Cách thứ hai hiển nhiên sẽ nhanh gọn hơn rồi.
Lời kết
Như vậy, chỉ với CSS, bạn hoàn toàn có thể giải quyết các vấn đề khó chịu (như grid “ngu”) và đồng thời có thêm sự tự do trong sáng tạo của mình. Hơn nữa, trước môi trường trình duyệt ngày càng hoàn thiện, có lẽ đã đến lúc bạn quan tâm hơn đến kỹ năng CSS của mình.
- Bao lâu thì nên cập nhật app 1 lần?
- Adhere Ad Server - opensource quản lý quảng cáo
- Vấn đề với điện thoại di động
- Ngôn ngữ lập trình NIM, Một sự lựa chọn mới cho dân lập trình
- Top 10 ngôn ngữ lập trình
- Trang bị smartphone và tablet cho binh lính
- Vệ tinh địa tĩnh là gì?
- Danh sách chợ ứng dụng ngoài Google Play và AppStore
- Alexa Alexa Rank là gì? cách tăng Alexa Rank hiệu quả nhất
- Nhiều người không biết iPhone có thể thay pin
- Uber triển khai dịch vụ chăm sóc sức khỏe lưu động
- Nên cấp phát bao nhiêu vCPU cho một máy ảo? Sự khác nhau giữa Virtual Sockets và Cores per socket?
DVMS chuyên:
- Tư vấn, xây dựng, chuyển giao công nghệ Blockchain, mạng xã hội,...
- Tư vấn ứng dụng cho smartphone và máy tính bảng, tư vấn ứng dụng vận tải thông minh, thực tế ảo, game mobile,...
- Tư vấn các hệ thống theo mô hình kinh tế chia sẻ như Uber, Grab, ứng dụng giúp việc,...
- Xây dựng các giải pháp quản lý vận tải, quản lý xe công vụ, quản lý xe doanh nghiệp, phần mềm và ứng dụng logistics, kho vận, vé xe điện tử,...
- Tư vấn và xây dựng mạng xã hội, tư vấn giải pháp CNTT cho doanh nghiệp, startup,...
Vì sao chọn DVMS?
- DVMS nắm vững nhiều công nghệ phần mềm, mạng và viễn thông. Như Payment gateway, SMS gateway, GIS, VOIP, iOS, Android, Blackberry, Windows Phone, cloud computing,…
- DVMS có kinh nghiệm triển khai các hệ thống trên các nền tảng điện toán đám mây nổi tiếng như Google, Amazon, Microsoft,…
- DVMS có kinh nghiệm thực tế tư vấn, xây dựng, triển khai, chuyển giao, gia công các giải pháp phần mềm cho khách hàng Việt Nam, USA, Singapore, Germany, France, các tập đoàn của nước ngoài tại Việt Nam,…
Quý khách xem Hồ sơ năng lực của DVMS tại đây >>
Quý khách gửi yêu cầu tư vấn và báo giá tại đây >>