Image default
Máy Tính

Khám Phá 7 Thuộc Tính CSS Mạnh Mẽ Nhưng Ít Được Biết Đến: Nâng Tầm Giao Diện Web Của Bạn

Ngay cả với những chuyên gia thiết kế web giàu kinh nghiệm, vẫn có vô số thuộc tính CSS ít phổ biến mà bạn có thể chưa bao giờ sử dụng hoặc thậm chí chưa từng nghe đến. Với hàng trăm thuộc tính được hỗ trợ, CSS ẩn chứa nhiều khía cạnh mà chúng ta khó có thể khám phá hết. Tuy nhiên, một số trong số đó lại vô cùng mạnh mẽ và đáng để tìm hiểu, bất chấp tần suất sử dụng hiếm hoi. Bài viết này của xalocongnghe.com sẽ đưa bạn đi sâu vào thế giới của 7 thuộc tính CSS đặc biệt, ít dùng nhưng đầy tiềm năng, giúp bạn tối ưu hóa giao diện và nâng cao trải nghiệm người dùng trên website của mình.

Nhờ báo cáo Google’s Platform Status report, chúng ta có thể biết được những thuộc tính nào ít được sử dụng nhất, và từ đó khám phá ra những công cụ mới mẻ, mạnh mẽ. Mặc dù một số thuộc tính CSS có thể đang trong giai đoạn thử nghiệm, chỉ dành riêng cho trình duyệt nhất định hoặc chưa được triển khai rộng rãi, nhưng tất cả các thuộc tính được giới thiệu tại đây đều được hỗ trợ tốt bởi các trình duyệt hiện đại – chúng chỉ đơn thuần là ít khi được sử dụng mà thôi. Hãy cùng xalocongnghe.com khám phá và ứng dụng những “viên ngọc ẩn” này để tạo nên những thiết kế web độc đáo và tối ưu.

1. empty-cells: Ẩn Ô Trống Trong Bảng HTML

Thuộc tính empty-cells là công cụ chuyên biệt cho các bảng HTML, thường được sử dụng cùng với border-collapse: separate. Nó kiểm soát việc các ô không có nội dung hiển thị nền và đường viền hay không. Điều này đặc biệt hữu ích khi bạn muốn tinh chỉnh giao diện bảng, tránh sự lộn xộn từ các ô trống không cần thiết.

Hãy xem xét ví dụ một bảng đơn giản, có một ô trống và một ô khác kéo dài xuống ô bên dưới:

<table>
    <tr>
        <td>Apples</td>
        <td>4</td>
    </tr>
    <tr>
        <td>Grapes</td>
        <td></td>
    </tr>
    <tr>
        <td rowspan="2">Bananas</td>
        <td>4</td>
    </tr>
    <tr>
        <td>9</td>
    </tr>
</table>

Vì ô trống hoàn toàn không có nội dung, nó có thể được điều khiển bằng thuộc tính empty-cells:

td {
    empty-cells: hide;
}

Với thiết lập này, bất kỳ ô bảng nào không có nội dung hiển thị sẽ ngừng hiển thị màu nền hoặc đường viền của chúng.

Ví dụ ba bảng HTML, trong đó có một bảng sử dụng empty-cells: hide để ẩn ô trống không có đường viền và nềnVí dụ ba bảng HTML, trong đó có một bảng sử dụng empty-cells: hide để ẩn ô trống không có đường viền và nền

Hiệu ứng này đặc biệt hữu ích với các bảng lớn, giúp dễ dàng nhận diện dữ liệu bị thiếu hoặc bất thường. Lưu ý rằng một bảng có border-collapse: collapse sẽ vẫn hiển thị cả đường viền và nền, ngay cả khi các ô trống được ẩn bằng thuộc tính này.

2. text-underline-position: Điều Chỉnh Vị Trí Gạch Chân Văn Bản

Hơn bốn trong năm website sử dụng thuộc tính text-decoration, thường là để kiểm soát cách các liên kết được gạch chân. Tuy nhiên, giá trị underline cho thuộc tính này có thể đi kèm với một thuộc tính ít được sử dụng hơn là text-underline-position:

a {
    text-decoration: underline;
    text-underline-position: under;
}

Với giá trị “under”, đường gạch chân sẽ được đẩy xuống để không giao cắt với phần đuôi của các chữ cái như ‘j’ và ‘g’. Điều này có thể cải thiện đáng kể khả năng đọc, đặc biệt với các thiết lập line-height ngắn.

Bốn đoạn văn minh họa các liên kết với kiểu gạch chân khác nhau, bao gồm vị trí gạch chân dưới descender nhờ thuộc tính text-underline-positionBốn đoạn văn minh họa các liên kết với kiểu gạch chân khác nhau, bao gồm vị trí gạch chân dưới descender nhờ thuộc tính text-underline-position

Trước khi có thuộc tính này, một giải pháp phổ biến là mô phỏng đường gạch chân bằng cách sử dụng border-bottom. Tuy nhiên, cách tiếp cận đó có những tác dụng phụ không mong muốn và khó quản lý, vì vậy thật may mắn khi bạn không còn cần phải dùng đến nó nữa.

3. column-span: Tạo Phần Tử Tràn Cột Trong Bố Cục Nhiều Cột

Bố cục cột (columns) là một thuộc tính CSS khá ít được sử dụng, chỉ xuất hiện trên dưới 3% tổng số trang web. Từng bị mô phỏng bằng các giải pháp thay thế như display: float, các cột cũng gặp phải vấn đề về sự không nhất quán giữa các trình duyệt và thiếu sự hiểu biết rõ ràng; chúng không dành cho bố cục tổng thể thông thường!

Tuy nhiên, khi được sử dụng để tái tạo các cột theo kiểu báo chí truyền thống, thuộc tính này có thể tăng thêm sự hấp dẫn cho các thiết kế nặng văn bản và cải thiện khả năng đọc. Chúng đặc biệt hữu ích khi bạn muốn sử dụng toàn bộ chiều rộng của màn hình lớn, chẳng hạn như màn hình máy tính để bàn.

Thuộc tính column-span giải quyết nhu cầu thoát khỏi bố cục cột ở giữa một khối, khiến một phần tử trải rộng qua các cột, bỏ qua chúng một cách hiệu quả:

Ví dụ ba cột văn bản được ngắt bởi các tiêu đề ở giữa trang, sử dụng thuộc tính column-span: all để trải rộng qua tất cả các cộtVí dụ ba cột văn bản được ngắt bởi các tiêu đề ở giữa trang, sử dụng thuộc tính column-span: all để trải rộng qua tất cả các cột

Trong ví dụ này, việc trải rộng rất đơn giản:

h1, h2 { column-span: all }

Thuộc tính này khá đơn giản, chỉ có hai giá trị quan trọng: none (mặc định) hoặc all. Giá trị all cho biết rằng một phần tử nên bỏ qua các cột và kéo dài qua tất cả các cột hiện có. Không giống như thuộc tính HTML colspan tương tự cho các ô bảng, không có hỗ trợ giá trị số để chỉ trải rộng một số cột; nó là tất cả hoặc không có gì.

Thật thú vị, thuộc tính column-gap được sử dụng bởi hơn 30% trang web, gấp mười lần số lượng trang sử dụng thuộc tính columns. Điều này là do column-gap đã được mở rộng để áp dụng cho các bố cục ngoài cột, như flexbox và grid.

4. grid: Sức Mạnh Của Shorthand Trong CSS Grid

Thuộc tính grid là một trường hợp thú vị. Bố cục Grid hiện nay rất phổ biến nói chung, bằng chứng là việc grid-template-columns được sử dụng trong 42% các trang web. Nhưng thuộc tính grid shorthand đơn giản lại cực kỳ ít phổ biến, chỉ được sử dụng bởi chưa đến nửa phần trăm các trang.

Có lẽ bởi vì grid là một shorthand quá phức tạp, kết hợp tất cả các thuộc tính grid trong một. Dưới đây là một số khai báo ví dụ mà thuộc tính này chấp nhận:

grid: "a" 100px "b" 1fr;
grid: minmax(400px, min-content) / repeat(auto-fill, 50px);
grid: 30% / auto-flow dense;
grid: auto-flow dense 40% / [line1] minmax(20em, max-content);

Không có gì ngạc nhiên khi các nhà thiết kế ưa chuộng các thuộc tính riêng lẻ như grid-template-columns (42%), grid-column (23%) và grid-gap (19%). Tuy nhiên, giống như tất cả các thuộc tính shorthand, grid có thể tiết kiệm thời gian và giảm độ phức tạp, đồng thời làm cho CSS của bạn dễ bảo trì hơn. Hãy cẩn thận: việc lạm dụng có thể gây nhầm lẫn, vì vậy hãy cân nhắc sử dụng các thuộc tính dạng dài như grid-auto-flow để làm rõ, khi thích hợp.

5. initial-letter: Hiệu Ứng Chữ Cái Đầu Đoạn (Drop Cap)

Drop cap (chữ cái đầu đoạn lớn) đề cập đến một kiểu định dạng đặc biệt cho chữ cái đầu tiên của một đoạn văn hoặc khối văn bản. Bạn có thể thấy kiểu này trong sách hoặc tạp chí, nơi chữ cái đầu tiên lớn hơn nhiều, đậm hơn và thường đi kèm với trang trí hoa mỹ hoặc các kiểu cách khác.

Hiệu ứng này trước đây có thể thực hiện được, nhưng chỉ bằng cách sử dụng thuộc tính float với một số điều chỉnh cẩn thận cho các kiểu liên quan. Thuộc tính initial-letter đơn giản hóa điều này, với một giá trị đơn giản chỉ ra tỷ lệ kích thước của chữ cái đó:

p {
    /* 3 dòng cao */
    initial-letter: 3;
}

Bạn cũng có thể cung cấp một giá trị thứ hai để xác định đường cơ sở của chữ cái drop-cap:

p {
    /* 2 dòng cao, đường cơ sở chìm 1 dòng */
    initial-letter: 2 1;
}

Sử dụng các giá trị này, bạn có thể kiểm soát kích thước và vị trí dọc của các chữ cái drop-cap:

Hai đoạn văn mẫu với chữ cái đầu đoạn (drop cap) lớn và đậm, minh họa cách dùng thuộc tính initial-letter trong CSSHai đoạn văn mẫu với chữ cái đầu đoạn (drop cap) lớn và đậm, minh họa cách dùng thuộc tính initial-letter trong CSS

6. text-emphasis: Nhấn Mạnh Văn Bản Bằng Ký Tự Đặc Biệt

Thuộc tính text-emphasis không liên quan gì đến thẻ <em> (emphasis) hay giá trị italic cho font-style có thể được sử dụng để mô phỏng vẻ ngoài của văn bản được nhấn mạnh. Thay vào đó, nó là một cách đánh dấu văn bản để nhấn mạnh, giống như gạch chân. Sự khác biệt chính là text-emphasis vẽ một ký tự cụ thể lên trên hoặc xuống dưới các ký tự riêng lẻ.

p { text-emphasis: filled double-circle red;}
<p>.info { text-emphasis: "!";}</p>

Bạn có thể sử dụng thuộc tính text-emphasis-position để hiển thị các dấu nhấn over (trên) hoặc under (dưới) văn bản trong chế độ viết ngang. Nhưng chính thuộc tính text-emphasis-style mới thực sự thú vị (text-emphasis là một shorthand cho cả hai). Bạn có thể sử dụng một giá trị như “triangle” hoặc “circle” để dùng một ký hiệu chung. Bạn cũng có thể sử dụng bất kỳ ký tự Unicode nào, trong dấu ngoặc kép, bao gồm cả biểu tượng cảm xúc:

Đoạn văn mẫu với ký hiệu lửa emoji được đặt phía trên mỗi ký tự, minh họa hiệu ứng của thuộc tính text-emphasis trong CSSĐoạn văn mẫu với ký hiệu lửa emoji được đặt phía trên mỗi ký tự, minh họa hiệu ứng của thuộc tính text-emphasis trong CSS

“Sesame” là một dấu hiệu chữ viết được sử dụng trong các ngôn ngữ Đông Á để nhấn mạnh. Vì text-emphasis hỗ trợ ký tự này, CSS của bạn giờ đây có thể hợp lệ bao gồm giá trị “open sesame”.

7. text-wrap-style: Tối Ưu Cách Xuống Dòng Của Văn Bản

Thuộc tính text-wrap-style là thuộc tính mới nhất trong danh sách này, với sự hỗ trợ trên các trình duyệt mới nhất được triển khai vào tháng 10 năm 2024. Khi văn bản bên trong một phần tử xuống dòng, thuộc tính này gợi ý cho trình duyệt đâu là ưu tiên của nó.

Hai giá trị quan trọng nhất là prettybalance. Giá trị pretty đề xuất rằng trình duyệt nên tối ưu hóa bố cục hơn là tốc độ. Nó nên bao gồm các cải tiến như giữ số lượng phần tử “mồ côi” (orphan elements) ở mức tối thiểu. Trong khi đó, balance nên đảm bảo số lượng ký tự trên mỗi dòng gần như nhau nhất có thể.

Hai khối văn bản giống nhau với các điểm xuống dòng khác nhau, thể hiện sự khác biệt giữa text-wrap-style: pretty và text-wrap-style: balanceHai khối văn bản giống nhau với các điểm xuống dòng khác nhau, thể hiện sự khác biệt giữa text-wrap-style: pretty và text-wrap-style: balance

Vì đây là một thuộc tính mang tính hướng dẫn và sự hỗ trợ vẫn còn mới, bạn có thể không nhận thấy sự khác biệt lớn khi sử dụng nó. Cách tốt nhất để thử nghiệm là áp dụng trên các trang hiện có và xem các hiệu ứng khác nhau như thế nào. Dù bằng cách nào, nó hoàn toàn an toàn để sử dụng vì hiệu ứng tinh tế, với một mặc định hợp lý.

Kết luận

Thế giới CSS luôn rộng lớn và ẩn chứa nhiều bất ngờ. Việc khám phá và ứng dụng những thuộc tính ít phổ biến như empty-cells, text-underline-position, column-span, grid shorthand, initial-letter, text-emphasistext-wrap-style không chỉ giúp bạn tạo ra những giao diện web độc đáo, tinh tế hơn mà còn thể hiện sự chuyên nghiệp và am hiểu sâu sắc về công nghệ. Những “viên ngọc ẩn” này có thể là chìa khóa để giải quyết các vấn đề thiết kế cụ thể, tối ưu hóa trải nghiệm người dùng và nâng tầm kỹ năng phát triển giao diện của bạn.

Hãy thử nghiệm và tích hợp các thuộc tính CSS này vào dự án của bạn để thấy được sự khác biệt. Chia sẻ những trải nghiệm và kết quả của bạn với xalocongnghe.com trong phần bình luận bên dưới, hoặc khám phá thêm các bài viết chuyên sâu khác về công nghệ và lập trình web của chúng tôi!

Related posts

Microsoft PowerToys: Nâng Tầm Năng Suất Làm Việc Từ Xa Và Tối Ưu Hóa Windows Toàn Diện

Administrator

Fedora Hay Linux Mint: Bản Linux Nào Tốt Hơn Để Thay Thế Windows?

Administrator

Cách Ẩn Dữ Liệu Trong Từng Ô Excel Mà Không Xóa Hay Thay Đổi Cấu Trúc Bảng Tính

Administrator