Soovimatu tekstivaliku vältimine
Nuppudena toimivate ankrute puhul, nagu need, mis asuvad virna ülevoolu külgribal (küsimused, sildid ja kasutajad), võib olla masendav, kui kasutajad kogemata teksti esile tõstavad. See juhtub sageli siis, kui neid elemente kasutatakse navigeerimiseks või toiminguteks, mille puhul teksti valimine on tahtmatu.
Kuigi JavaScript pakub lahendusi tekstivaliku takistamiseks, on kasulik teada, kas CSS pakub standardile vastavat meetodit. Selles artiklis uuritakse, kuidas keelata tekstivaliku esiletõstmine CSS-i abil, ja arutatakse selle efekti saavutamiseks parimaid tavasid.
Käsk | Kirjeldus |
---|---|
-webkit-user-select | CSS-i atribuut tekstivaliku keelamiseks Safari brauserites. |
-moz-user-select | CSS-i atribuut tekstivaliku keelamiseks Firefoxi brauserites. |
-ms-user-select | CSS-i atribuut tekstivaliku keelamiseks versioonis Internet Explorer 10+. |
user-select | Standardne CSS-i atribuut tekstivaliku keelamiseks tänapäevastes brauserites. |
onselectstart | JavaScripti sündmuste töötleja, mis takistab elemendil teksti valimist. |
querySelectorAll | JavaScripti meetod, et valida kõik elemendid, mis vastavad määratud valijate rühmale. |
Tekstivaliku keelamiseks kasutatavate skriptide mõistmine
Tekstivaliku esiletõstmise keelamiseks CSS-i abil rakendame -webkit-user-select, -moz-user-select, -ms-user-selectja user-select omadused. Need atribuudid sobivad erinevatele brauseritele, tagades brauseritevahelise ühilduvuse. Seades need atribuudid väärtusele none, tekstivalik on keelatud, mis takistab kasutajatel teksti esiletõstmist elemendiga no-select klass.
JavaScripti näites lisame dokumendile sündmuste kuulaja, mis käivitatakse pärast DOM-i sisu täielikku laadimist. The querySelectorAll meetod valib kõik elemendid no-select klass. Iga valitud elemendi jaoks onselectstart sündmus tühistatakse, et naasta false, takistades teksti valimist. See CSS-i ja JavaScripti kombinatsioon tagab tugeva lahenduse tekstivaliku keelamiseks erinevates brauserites ja stsenaariumides.
CSS-meetod tekstivaliku keelamiseks
CSS-i kasutamine tekstivaliku keelamiseks
/* 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 */
}
JavaScripti lähenemine tekstivaliku takistamiseks
JavaScripti lahendus tekstivaliku keelamiseks
/* JavaScript to disable text selection */
document.addEventListener('DOMContentLoaded', (event) => {
document.querySelectorAll('.no-select').forEach((element) => {
element.onselectstart = function() {
return false;
};
});
});
CSS-i ja HTML-i kombineerimine praktiliseks kasutamiseks
Praktiline näide CSS-i ja HTML-iga
<!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>
Täiendavate lahenduste uurimine
Teine viis veebirakendustes tekstivaliku takistamiseks on kasutada draggable atribuut HTML-is. See atribuut, kui see on määratud false, tagab, et elementi ei saa valida ega lohistada, pakkudes kasutaja interaktsioonide üle veel ühte kontrolli. See võib olla eriti kasulik interaktiivsete elementide puhul, nagu nupud ja vahelehed, mida ei tohiks esile tõsta ega kogemata teisaldada.
Lisaks on pointer-events CSS-i omadusi saab kasutada. Seadistamise teel pointer-events: none, saate muuta elemendi teksti valimatuks. Kuid see meetod keelab ka muud interaktsioonid, näiteks klõpsamise, mis ei pruugi kõigil kasutusjuhtudel olla soovitav. Kasutatavuse ja funktsionaalsuse tasakaalustamine on õige meetodi valimisel võtmetähtsusega.
Levinud küsimused ja lahendused
- Kuidas saan CSS-i abil teksti valimist takistada?
- Kasuta user-select vara määratud none soovitud elementide jaoks.
- Kas on olemas JavaScripti meetod tekstivaliku keelamiseks?
- Jah, määrates onselectstart sündmus, mis naasta false sihitud elementide kohta.
- Mis on -webkit-user-select vara?
- See on CSS-i atribuut, mida kasutatakse Safari ja Chrome'i brauserites tekstivaliku keelamiseks.
- Kas ma võin kasutada pointer-events teksti valimise vältimiseks?
- Jah, seadistus pointer-events juurde none võib takistada teksti valimist, kuid keelab ka muud interaktsioonid.
- Mida teeb draggable omadus teha?
- The draggable atribuut, kui see on määratud false, takistab elementide valimist või lohistamist.
- Kas on võimalik kõiki brausereid CSS-iga sihtida?
- Kasuta -webkit-user-select, -moz-user-select, -ms-user-selectja user-select omadused koos.
- Kas tekstivaliku keelamisel on mingeid varjukülgi?
- Tekstivaliku keelamine võib parandada interaktiivsete elementide kasutuskogemust, kuid võib mõne kasutaja jaoks takistada juurdepääsu.
- Kas tekstivalikut saab keelata ainult teatud elementide puhul?
- Jah, saate atribuute või sündmuste käitlejaid rakendada konkreetsetele elementidele, nagu nupud või vahelehed.
- Millised on parimad tavad tekstivaliku keelamiseks?
- Ühendage CSS-i ja JavaScripti meetodid brauseritevahelise ühilduvuse tagamiseks ja veenduge, et kasutatavus ei kahjustaks.
Viimased mõtted tekstivaliku keelamise kohta
Tekstivaliku esiletõstmise vältimine suurendab interaktiivsete veebielementide kasutatavust. Kasutades CSS-i atribuute nagu user-select koos brauseripõhiste eesliidetega tagab ühilduvuse kõigi suuremate brauseritega. Lisaks pakub JavaScripti kaasamine tekstivaliku haldamiseks tugeva lahenduse. Õige rakendamise korral parandavad need tehnikad kasutajakogemust, vältides nuppude või vahekaartidena toimivates elementides juhuslikku tekstivalimist, tagades sujuva suhtluse ilma soovimatu esiletõstmiseta.