Спречавање нежељеног одабира текста
За сидра која функционишу као дугмад, као што су она на бочној траци за преливање стека (питања, ознаке и корисници), може бити фрустрирајуће када корисници случајно истакну текст. Ово се често дешава када се ови елементи користе за навигацију или радње, где је избор текста ненамеран.
Иако ЈаваСцрипт нуди решења за спречавање селекције текста, корисно је знати да ли ЦСС пружа метод у складу са стандардом. Овај чланак истражује како да онемогућите истицање избора текста помоћу ЦСС-а и говори о најбољим праксама за постизање овог ефекта.
Цомманд | Опис |
---|---|
-webkit-user-select | ЦСС својство за онемогућавање избора текста у Сафари претраживачима. |
-moz-user-select | ЦСС својство за онемогућавање избора текста у Фирефок претраживачима. |
-ms-user-select | ЦСС својство за онемогућавање избора текста у Интернет Екплорер-у 10+. |
user-select | Стандардно ЦСС својство за онемогућавање избора текста у модерним претраживачима. |
onselectstart | ЈаваСцрипт обрађивач догађаја за спречавање избора текста на елементу. |
querySelectorAll | ЈаваСцрипт метод за одабир свих елемената који одговарају одређеној групи селектора. |
Разумевање скрипти за онемогућавање избора текста
Да бисмо онемогућили истицање избора текста помоћу ЦСС-а, примењујемо -webkit-user-select, -moz-user-select, -ms-user-select, и user-select својства. Ова својства служе за различите претраживаче, обезбеђујући компатибилност међу претраживачима. Постављањем ових својстава на none, одабир текста је онемогућен, спречавајући кориснике да истакну текст у елементима са no-select класа.
У примеру ЈаваСцрипт-а, документу додајемо слушалац догађаја који се извршава када се ДОМ садржај у потпуности учита. Тхе querySelectorAll метода бира све елементе са no-select класа. За сваки изабрани елемент, onselectstart догађај је поништен да се врати false, спречавајући избор текста. Ова комбинација ЦСС-а и ЈаваСцрипт-а обезбеђује робусно решење за онемогућавање избора текста у различитим претраживачима и сценаријима.
ЦСС метод за онемогућавање избора текста
Коришћење ЦСС-а за онемогућавање избора текста
/* CSS to disable text selection */
.no-select {
-webkit-user-select: none; /* Safari */
-moz-user-select: none; /* Firefox */
-ms-user-select: none; /* IE 10+ */
user-select: none; /* Standard */
}
ЈаваСцрипт приступ за спречавање селекције текста
ЈаваСцрипт решење за онемогућавање избора текста
/* JavaScript to disable text selection */
document.addEventListener('DOMContentLoaded', (event) => {
document.querySelectorAll('.no-select').forEach((element) => {
element.onselectstart = function() {
return false;
};
});
});
Комбиновање ЦСС-а и ХТМЛ-а за практичну примену
Практични пример са ЦСС и ХТМЛ-ом
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
.no-select {
-webkit-user-select: none; /* Safari */
-moz-user-select: none; /* Firefox */
-ms-user-select: none; /* IE 10+ */
user-select: none; /* Standard */
}
</style>
</head>
<body>
<div class="no-select">Non-selectable text</div>
</body>
</html>
Истраживање даљих решења
Други приступ спречавању селекције текста у веб апликацијама је коришћење draggable атрибут у ХТМЛ-у. Овај атрибут, када је постављен на false, осигурава да елемент не може бити изабран или превучен, пружајући још један ниво контроле над интеракцијама корисника. Ово може бити посебно корисно за интерактивне елементе као што су дугмад и картице који не би требало да буду истакнути или случајно померени.
Поред тога, тхе pointer-events ЦСС својство се може користити. Постављањем pointer-events: none, можете учинити да текст у елементу није могуће бирати. Међутим, овај метод такође онемогућава друге интеракције као што је клик, што можда није пожељно за све случајеве употребе. Балансирање употребљивости и функционалности је кључно када се бира прави метод.
Уобичајена питања и решења
- Како могу да спречим избор текста користећи ЦСС?
- Користити user-select својство постављено на none за жељене елементе.
- Да ли постоји ЈаваСцрипт метода за онемогућавање избора текста?
- Да, постављањем onselectstart догађај да се врати false на циљане елементе.
- Шта је -webkit-user-select имовина?
- То је ЦСС својство које се користи за онемогућавање избора текста у прегледачима Сафари и Цхроме.
- Могу ли да користим pointer-events да спречите избор текста?
- Да, подешавање pointer-events до none може спречити избор текста, али и онемогућити друге интеракције.
- Шта значи draggable атрибут учинити?
- Тхе draggable атрибут, када је подешен на false, спречава бирање или превлачење елемената.
- Постоји ли начин да се циљају сви претраживачи помоћу ЦСС-а?
- Користити -webkit-user-select, -moz-user-select, -ms-user-select, и user-select својства заједно.
- Постоје ли недостаци за онемогућавање избора текста?
- Онемогућавање избора текста може побољшати корисничко искуство за интерактивне елементе, али може ометати приступачност за неке кориснике.
- Да ли се избор текста може онемогућити само за одређене елементе?
- Да, можете применити својства или руковаоце догађајима на одређене елементе као што су дугмад или картице.
- Које су најбоље праксе за онемогућавање избора текста?
- Комбинујте ЦСС и ЈаваСцрипт методе за компатибилност између претраживача и осигурајте да употребљивост није угрожена.
Завршна размишљања о онемогућавању одабира текста
Спречавање истицања избора текста побољшава употребљивост интерактивних веб елемената. Користећи ЦСС својства као што су user-select заједно са префиксима специфичним за претраживач обезбеђује компатибилност у свим главним претраживачима. Поред тога, укључивање ЈаваСцрипт-а за управљање избором текста пружа робусно решење. Када се правилно примене, ове технике побољшавају корисничко искуство спречавањем случајног избора текста у елементима који делују као дугмад или картице, обезбеђујући глатку интеракцију без нежељеног истицања.