CSS - Tính năng User Select: Hướng dẫn thân thiện cho người mới bắt đầu
Xin chào các pháp sư thiết kế web tương lai! Hôm nay, chúng ta sẽ bắt đầu một hành trình thú vị vào thế giới của CSS, cụ thể là khám phá thuộc tính user-select
. Đừng lo lắng nếu bạn mới làm quen với điều này; tôi sẽ là hướng dẫn viên thân thiện của bạn, giải thích mọi thứ từng bước một. Vậy, hãy lấy một tách cà phê (hoặc trà, nếu đó là sở thích của bạn), và cùng chúng ta nhảy vào!
Tính năng user-select là gì?
Trước khi chúng ta đi vào chi tiết, hãy hiểu rõ user-select
là gì. Hãy tưởng tượng bạn đang đọc một trang web, và bạn cố gắng chọn một đoạn văn bản để sao chép, nhưng bạn không thể. Đó chính là tính năng user-select
trong hành động! Nó kiểm soát việc người dùng có thể chọn văn bản trên trang web hay không.
Bây giờ, bạn có thể đang nghĩ, "Tại sao chúng ta lại muốn ngăn cản người dùng chọn văn bản?" Well, có nhiều lý do:
- Để bảo vệ nội dung bản quyền
- Cải thiện trải nghiệm người dùng cho một số yếu tố tương tác nhất định
- Ngăn chặn việc chọn văn bản tình cờ khi người dùng tương tác với các nút hoặc các yếu tố có thể kéo
Cú pháp và các giá trị có thể
Hãy xem cách chúng ta viết thuộc tính user-select
trong CSS:
selector {
user-select: value;
}
Dưới đây là bảng các giá trị có thể cho user-select
:
Giá trị | Mô tả |
---|---|
none | Ngăn chặn việc chọn văn bản |
auto | Mặc định. Cho phép chọn văn bản dựa trên quy tắc của trình duyệt |
text | Cho phép chọn văn bản |
all | Cho phép chọn tất cả nội dung, bao gồm các容器 |
contain | Cho phép chọn trong một yếu tố nhưng không phải của các phần tử cha |
Bây giờ, hãy cùng khám phá từng giá trị này chi tiết!
CSS user-select - none
Giá trị none
giống như đặt một lá chắn vô hình xung quanh văn bản của bạn. Người dùng có thể thấy nó, nhưng họ không thể chọn nó. Dưới đây là một ví dụ:
.no-select {
user-select: none;
}
<p class="no-select">Bạn không thể chọn văn bản này!</p>
<p>But you can select this one.</p>
Trong ví dụ này, người dùng sẽ không thể chọn đoạn văn bản đầu tiên, nhưng họ có thể chọn đoạn thứ hai. Đó như một phép màu, phải không?
CSS user-select - auto
Giá trị auto
là cài đặt mặc định. Nó để trình duyệt quyết định khi nào văn bản nên được chọn. Nó giống như để trình duyệt của bạn là DJ tại một buổi tiệc - nó biết khi nào nên phát bài nhạc đúng!
.auto-select {
user-select: auto;
}
<p class="auto-select">Văn bản này tuân theo quy tắc chọn của trình duyệt.</p>
CSS user-select - text
Giá trị text
rất đơn giản - nó cho phép chọn văn bản. Nó hữu ích khi bạn muốn覆写 một phần tử cha có thể có user-select: none
.
.parent {
user-select: none;
}
.child {
user-select: text;
}
<div class="parent">
<p>Bạn không thể chọn văn bản này.</p>
<p class="child">But you can select this!</p>
</div>
Trong ví dụ này, văn bản trong đoạn thứ hai có thể được chọn, ngay cả khi div cha của nó không thể.
CSS user-select - all
Giá trị all
giống như một nút "chọn tất cả" cho nội dung của bạn. Nó cho phép người dùng chọn không chỉ văn bản, mà còn các phần tử chứa.
.select-all {
user-select: all;
}
<div class="select-all">
<p>Khi bạn chọn văn bản này,</p>
<p>bạn cũng sẽ chọn toàn bộ div!</p>
</div>
Thử chọn văn bản trong ví dụ này, và bạn sẽ thấy rằng toàn bộ div cũng được chọn!
CSS user-select - contain
Giá trị contain
稍微 phức tạp hơn một chút. Nó cho phép chọn trong một phần tử, nhưng ngăn chặn việc chọn mở rộng đến các phần tử cha.
.outer {
user-select: none;
}
.inner {
user-select: contain;
}
<div class="outer">
Văn bản này không thể được chọn.
<div class="inner">
But this text can be selected, and the selection won't extend to the outer div.
</div>
</div>
Điều này rất hữu ích khi bạn muốn cho phép chọn trong các khu vực cụ thể mà không ảnh hưởng đến phần còn lại của bố cục của bạn.
Tương thích trình duyệt và tiền tố
Bây giờ, đây là một mẹo từ giáo viên CSS hàng xóm thân thiện của bạn: tương thích trình duyệt! Không phải tất cả các trình duyệt đều hỗ trợ user-select
theo cùng một cách. Để đảm bảo tương thích tối đa, bạn có thể cần sử dụng các tiền tố trình duyệt:
.no-select {
-webkit-user-select: none; /* Safari */
-ms-user-select: none; /* IE 10 và IE 11 */
user-select: none; /* Cú pháp tiêu chuẩn */
}
Ứng dụng thực tế
Hãy kết thúc với một số tình huống thực tế nơi user-select
có thể rất hữu ích:
-
Nút và các yếu tố tương tác: Sử dụng
user-select: none
để ngăn chặn việc chọn văn bản tình cờ khi người dùng nhấp vào nút. -
Thông báo bản quyền: Bảo vệ văn bản bản quyền của bạn với
user-select: none
. -
Mảnh mã: Sử dụng
user-select: all
cho các khối mã để người dùng có thể sao chép toàn bộ mảnh mã dễ dàng. -
Form: Áp dụng
user-select: none
cho các nhãn trong form để cải thiện trải nghiệm người dùng khi nhấp vào các hộp kiểm hoặc nút radio.
Nhớ rằng, với quyền lực lớn đi kèm với trách nhiệm lớn. Mặc dù user-select
có thể cải thiện trải nghiệm người dùng, nhưng việc lạm dụng nó có thể làm người dùng khó chịu khi họ muốn sao chép nội dung. Luôn xem xét khả năng truy cập và nhu cầu của người dùng khi áp dụng thuộc tính này.
Và thế là bạn đã nâng cấp kỹ năng CSS của mình với thuộc tính user-select
. Hãy tiếp tục thực hành, thử nghiệm và quan trọng nhất, hãy vui vẻ với CSS. Trước khi bạn biết, bạn sẽ tạo ra những trải nghiệm web không chỉ chức năng, mà còn tuyệt vời để sử dụng. Chúc bạn may mắn với mã code!
Credits: Image by storyset