Suomi

Hyödynnä edistyneitä tekstin valinnan tyylittelymahdollisuuksia CSS Custom Highlight API:lla. Opi mukauttamaan valintakokemusta ja parantamaan käyttäjien sitoutumista.

CSS Custom Highlight API: Tekstin valinnan tyylittelyn hallinta

Tekstin valinta verkkosivulla on vaatimaton toimenpide, jota useimmat käyttäjät tekevät sen enempää ajattelematta. Kehittäjinä pyrimme kuitenkin usein parantamaan jopa hienovaraisimpia vuorovaikutuksia. CSS Custom Highlight API antaa meille mahdollisuuden mullistaa tekstin valintakokemuksen tarjoamalla ennennäkemätöntä hallintaa valitun tekstin ulkoasuun. Tämä ominaisuus ylittää yksinkertaiset taustan ja tekstin värimuutokset, mahdollistaen monimutkaiset ja mukaansatempaavat käyttöliittymät.

Mikä on CSS Custom Highlight API?

CSS Custom Highlight API on moderni verkkostandardi, joka tarjoaa tavan muotoilla tekstivalintojen (ja muiden korostettujen alueiden) ulkoasua CSS:n avulla. Se esittelee ::highlight()-pseudo-elementin, joka kohdistuu tiettyihin tekstialueisiin kehittäjän määrittämien kriteerien perusteella. Tämä API ylittää perinteisen ::selection-pseudo-elementin rajoitukset, joka tarjoaa vain hyvin perustason tyylittelyvaihtoehtoja. Custom Highlight API:n avulla voit luoda erittäin mukautettuja ja kontekstitietoisia tekstinvalintatyylejä.

Miksi käyttää CSS Custom Highlight API:a?

Custom Highlight API tarjoaa useita etuja perinteisiin tekstivalintojen tyylittelymenetelmiin verrattuna:

Keskeisten käsitteiden ymmärtäminen

Ennen koodiesimerkkeihin sukeltamista on tärkeää ymmärtää CSS Custom Highlight API:n ydinajatukset:

1. Korostuksen rekisteröinti

Prosessi alkaa mukautetun korostusnimen rekisteröimisellä JavaScriptin avulla. Tätä nimeä käytetään sitten CSS:ssä kohdistamaan tyylit tiettyihin tekstivalintoihin.

2. Korostusalueet

Korostusalueet määrittävät tietyt tyyliteltävät tekstijaksot. Nämä alueet luodaan ohjelmallisesti käyttämällä Highlight- ja StaticRange- tai Range-API:eita. Ne määrittelevät korostettavan tekstin alku- ja loppupisteet.

3. ::highlight()-pseudo-elementti

Tätä pseudo-elementtiä käytetään CSS:ssä tyylien soveltamiseen rekisteröidyille korostusnimille. Se toimii valitsimena, joka kohdistuu korostusalueiden määrittämiin tekstijaksoihin.

Käytännön esimerkkejä: CSS Custom Highlight API:n käyttöönotto

Tutustutaanpa useisiin käytännön esimerkkeihin havainnollistamaan, miten CSS Custom Highlight API:a käytetään.

Esimerkki 1: Perustason tekstinvalinnan tyylittely

Tämä esimerkki näyttää, kuinka valitun tekstin tausta- ja tekstiväriä muutetaan.

HTML:

<p id="myText">This is some text that can be selected.</p>

JavaScript:

const myText = document.getElementById('myText');
const highlight = new Highlight();

// Select the entire paragraph.
highlight.add(new Range(myText.firstChild, 0, myText.firstChild, myText.firstChild.length));

CSS.highlights.set('myHighlight', highlight);

CSS:

::highlight(myHighlight) {
  background-color: #ff0;
  color: #000;
}

Selitys:

Esimerkki 2: Tiettyjen sanojen korostaminen

Tämä esimerkki näyttää, kuinka tiettyjä sanoja korostetaan kappaleen sisällä.

HTML:

<p id="myText">This is a paragraph with the word highlight that we want to highlight.</p>

JavaScript:

const myText = document.getElementById('myText');
const highlight = new Highlight();
const textContent = myText.textContent;
const wordsToHighlight = ['highlight'];

wordsToHighlight.forEach(word => {
  let index = textContent.indexOf(word);
  while (index !== -1) {
    highlight.add(new Range(myText.firstChild, index, myText.firstChild, index + word.length));
    index = textContent.indexOf(word, index + 1);
  }
});

CSS.highlights.set('keywordHighlight', highlight);

CSS:

::highlight(keywordHighlight) {
  background-color: lightgreen;
  font-weight: bold;
}

Selitys:

Esimerkki 3: Dynaaminen korostus käyttäjän syötteen perusteella

Tämä esimerkki näyttää, kuinka tekstiä korostetaan dynaamisesti hakukenttään syötetyn tekstin perusteella.

HTML:

<input type="text" id="searchInput" placeholder="Enter text to highlight">
<p id="myText">This is some text that will be dynamically highlighted based on user input.</p>

JavaScript:

const searchInput = document.getElementById('searchInput');
const myText = document.getElementById('myText');
const highlight = new Highlight();

searchInput.addEventListener('input', () => {
  const searchTerm = searchInput.value;
  highlight.clear(); // Clear previous highlights

  if (searchTerm) {
    const textContent = myText.textContent;
    let index = textContent.indexOf(searchTerm);
    while (index !== -1) {
      highlight.add(new Range(myText.firstChild, index, myText.firstChild, index + searchTerm.length));
      index = textContent.indexOf(searchTerm, index + 1);
    }
  }

  CSS.highlights.set('searchHighlight', highlight);
});

CSS:

::highlight(searchHighlight) {
  background-color: yellow;
  color: black;
}

Selitys:

Esimerkki 4: Korostuksen ulkoasun mukauttaminen ::highlight()-elementillä

Custom Highlight API:n voima piilee sen kyvyssä mukauttaa korostetun tekstin ulkoasua. Näin voit soveltaa varjoja, liukuvärejä ja muita visuaalisia tehosteita.

HTML:

<p id="customText">Select this text to see a custom highlight effect.</p>

JavaScript:

const customText = document.getElementById('customText');
const highlight = new Highlight();
highlight.add(new Range(customText.firstChild, 0, customText.firstChild, customText.firstChild.length));
CSS.highlights.set('fancyHighlight', highlight);

CSS:

::highlight(fancyHighlight) {
  background: linear-gradient(to right, #4CAF50, #8BC34A);
  color: white;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
  border-radius: 5px;
  padding: 2px 5px;
}

Selitys:

Saavutettavuusnäkökohdat

Vaikka tekstivalintojen visuaalisen ilmeen parantaminen on tärkeää, saavutettavuuden tulisi aina olla ensisijainen huolenaihe. Tässä on muutamia ohjeita varmistaaksesi, että mukautetut korostustyylisi ovat saavutettavia:

Selainyhteensopivuus

CSS Custom Highlight API on suhteellisen uusi verkkostandardi, ja selainyhteensopivuus voi vaihdella. Vuoden 2023 lopulla / 2024 alussa tuki on kasvussa, mutta sitä ei ole toteutettu yleisesti. Voit tarkistaa nykyisen selaintuen tilan verkkosivustoilta, kuten "Can I use...", pysyäksesi ajan tasalla yhteensopivuuspäivityksistä.

Harkitse ominaisuuksien tunnistamista tarjotaksesi varatyylejä selaimille, jotka eivät vielä tue API:a.

if ('CSS' in window && 'highlights' in CSS) {
  // Käytä Custom Highlight API:a
} else {
  // Tarjoa varatyylit ::selection-elementillä
}

Käyttökohteita todellisessa maailmassa

CSS Custom Highlight API:lla on lukuisia käytännön sovelluksia, mukaan lukien:

Parhaat käytännöt ja vinkit

Edistyneet tekniikat

1. Useiden korostusten yhdistäminen

Voit yhdistää useita korostuksia luodaksesi monimutkaisempia tyyliefektejä. Voit esimerkiksi haluta korostaa sekä avainsanoja että käyttäjän valitsemaa tekstiä eri tyyleillä.

2. Tapahtumien käyttäminen korostusten päivittämiseen

Voit käyttää JavaScript-tapahtumia, kuten mouseover tai click, päivittääksesi dynaamisesti korostusalueita käyttäjän vuorovaikutuksen perusteella.

3. Integrointi kolmannen osapuolen kirjastoihin

Voit integroida Custom Highlight API:n kolmannen osapuolen kirjastoihin luodaksesi kehittyneempiä korostusratkaisuja. Voit esimerkiksi käyttää luonnollisen kielen käsittelyyn (NLP) erikoistunutta kirjastoa tunnistamaan ja korostamaan automaattisesti avaintermejä asiakirjassa.

Tekstinvalinnan tyylittelyn tulevaisuus

CSS Custom Highlight API edustaa merkittävää edistysaskelta tekstinvalinnan tyylittelyssä. Se antaa kehittäjille mahdollisuuden luoda entistä mukaansatempaavampia, saavutettavampia ja kontekstitietoisempia käyttöliittymiä. Selaintuen kasvaessa Custom Highlight API:sta on tulossa välttämätön työkalu verkkokehittäjille maailmanlaajuisesti.

Yhteenveto

CSS Custom Highlight API avaa lukemattomia mahdollisuuksia tekstinvalintakokemuksen mukauttamiseen. Ymmärtämällä keskeiset käsitteet, tutkimalla käytännön esimerkkejä ja ottamalla huomioon saavutettavuusohjeet voit hyödyntää tätä tehokasta API:a luodaksesi todella poikkeuksellisia käyttöliittymiä. Ota Custom Highlight API käyttöösi ja nosta verkkokehitysprojektisi uudelle tasolle.

Kokeile annettuja esimerkkejä, mukauta niitä omiin tarpeisiisi ja tutustu CSS Custom Highlight API:n koko potentiaaliin. Käyttäjäsi arvostavat huomiota yksityiskohtiin ja parannettua käyttäjäkokemusta.