Nevēlamas teksta atlases novēršana
Enkuriem, kas darbojas kā pogas, piemēram, Stack Overflow sānjoslā (Jautājumi, Atzīmes un Lietotāji), tas var radīt vilšanos, ja lietotāji nejauši izceļ tekstu. Tas bieži notiek, kad šie elementi tiek izmantoti navigācijai vai darbībām, kurās teksta atlase nav paredzēta.
Lai gan JavaScript piedāvā risinājumus teksta atlases novēršanai, ir noderīgi zināt, vai CSS nodrošina standartam atbilstošu metodi. Šajā rakstā ir izpētīts, kā atspējot teksta atlases izcelšanu, izmantojot CSS, un apspriesta šī efekta sasniegšanas paraugprakse.
Komanda | Apraksts |
---|---|
-webkit-user-select | CSS rekvizīts, lai atspējotu teksta atlasi Safari pārlūkprogrammās. |
-moz-user-select | CSS rekvizīts, lai atspējotu teksta atlasi pārlūkprogrammās Firefox. |
-ms-user-select | CSS rekvizīts, lai atspējotu teksta atlasi pārlūkprogrammā Internet Explorer 10+. |
user-select | Standarta CSS rekvizīts, lai atspējotu teksta atlasi mūsdienu pārlūkprogrammās. |
onselectstart | JavaScript notikumu apdarinātājs, lai novērstu teksta atlasi elementā. |
querySelectorAll | JavaScript metode, lai atlasītu visus elementus, kas atbilst noteiktai atlasītāju grupai. |
Izpratne par skriptiem teksta atlases atspējošanai
Lai atspējotu teksta atlases izcelšanu, izmantojot CSS, mēs izmantojam -webkit-user-select, -moz-user-select, -ms-user-select, un user-select īpašības. Šie rekvizīti ir paredzēti dažādām pārlūkprogrammām, nodrošinot vairāku pārlūkprogrammu saderību. Iestatot šos rekvizītus uz none, teksta atlase ir atspējota, neļaujot lietotājiem izcelt tekstu elementos ar no-select klasē.
JavaScript piemērā dokumentam pievienojam notikumu uztvērēju, kas tiek izpildīts, kad DOM saturs ir pilnībā ielādēts. The querySelectorAll metode atlasa visus elementus ar no-select klasē. Katram atlasītajam elementam onselectstart notikums tiek ignorēts, lai atgrieztos false, novēršot teksta atlasi. Šī CSS un JavaScript kombinācija nodrošina stabilu risinājumu teksta atlases atspējošanai dažādās pārlūkprogrammās un scenārijos.
CSS metode teksta atlases atspējošanai
CSS izmantošana teksta atlases atspējošanai
/* 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 pieeja teksta atlases novēršanai
JavaScript risinājums teksta atlases atspējošanai
/* JavaScript to disable text selection */
document.addEventListener('DOMContentLoaded', (event) => {
document.querySelectorAll('.no-select').forEach((element) => {
element.onselectstart = function() {
return false;
};
});
});
CSS un HTML apvienošana praktiskai lietošanai
Praktisks piemērs ar CSS un HTML
<!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>
Papildu risinājumu izpēte
Vēl viena pieeja teksta atlases novēršanai tīmekļa lietojumprogrammās ir izmantot draggable atribūts HTML. Šis atribūts, ja iestatīts uz false, nodrošina, ka elementu nevar atlasīt vai vilkt, nodrošinot citu lietotāja mijiedarbības kontroles līmeni. Tas var būt īpaši noderīgi interaktīviem elementiem, piemēram, pogām un cilnēm, kuras nevajadzētu izcelt vai nejauši pārvietot.
Turklāt, pointer-events CSS īpašumu var izmantot. Ar iestatījumu pointer-events: none, varat padarīt elementa tekstu neatlasāmu. Tomēr šī metode atspējo arī citas mijiedarbības, piemēram, noklikšķināšanu, kas var nebūt vēlama visos lietošanas gadījumos. Izvēloties pareizo metodi, galvenais ir līdzsvarot lietojamību un funkcionalitāti.
Bieži uzdotie jautājumi un risinājumi
- Kā es varu novērst teksta atlasi, izmantojot CSS?
- Izmantojiet user-select rekvizīts iestatīts uz none vēlamajiem elementiem.
- Vai ir JavaScript metode teksta atlases atspējošanai?
- Jā, iestatot onselectstart atgriešanās pasākums false par mērķa elementiem.
- Kas ir -webkit-user-select īpašums?
- Tas ir CSS īpašums, ko izmanto, lai atspējotu teksta atlasi pārlūkprogrammās Safari un Chrome.
- Vai es varu izmantot pointer-events lai novērstu teksta atlasi?
- Jā, iestatījums pointer-events uz none var novērst teksta atlasi, bet arī atspējot citas mijiedarbības.
- Ko dara draggable atribūts darīt?
- The draggable atribūts, kad iestatīts uz false, neļauj atlasīt vai vilkt elementus.
- Vai ir kāds veids, kā atlasīt mērķauditoriju visās pārlūkprogrammās, izmantojot CSS?
- Izmantojiet -webkit-user-select, -moz-user-select, -ms-user-select, un user-select īpašības kopā.
- Vai teksta atlases atspējošanai ir kādi trūkumi?
- Teksta atlases atspējošana var uzlabot interaktīvo elementu lietotāja pieredzi, taču dažiem lietotājiem var tikt traucēta piekļuve.
- Vai teksta atlasi var atspējot tikai konkrētiem elementiem?
- Jā, varat lietot rekvizītus vai notikumu apdarinātājus konkrētiem elementiem, piemēram, pogām vai cilnēm.
- Kāda ir paraugprakse teksta atlases atspējošanai?
- Apvienojiet CSS un JavaScript metodes, lai nodrošinātu saderību starp pārlūkprogrammām un nodrošinātu, ka lietojamība netiek apdraudēta.
Pēdējās domas par teksta atlases atspējošanu
Teksta atlases izcelšanas novēršana uzlabo interaktīvo tīmekļa elementu lietojamību. Izmantojot CSS rekvizītus, piemēram user-select kopā ar pārlūkprogrammas prefiksiem nodrošina saderību ar visām galvenajām pārlūkprogrammām. Turklāt JavaScript iekļaušana teksta atlases pārvaldībai nodrošina stabilu risinājumu. Ja šīs metodes tiek ieviestas pareizi, tās uzlabo lietotāja pieredzi, novēršot nejaušu teksta atlasi elementos, kas darbojas kā pogas vai cilnes, nodrošinot vienmērīgu mijiedarbību bez nevēlamas izcelšanas.