חזרה למאמרים

Web Design

CSS Custom Highlight API: להדגיש חיפושי AI בלי לרסק את ה-DOM

מדריך פרקטי להדגשת תשובות AI וציטוטים בזמן אמת באתר עם CSS Custom Highlight API. אפס שינויי DOM, ללא פגיעה בביצועים וללא שבירת React.

3 דקות קריאהCSS Custom Highlight API · Frontend · AI Search · Performance · JavaScript

TL;DR

אם אתם עדיין מדביקים תגיות span או mark בתוך הטקסט כדי להדגיש תוצאות חיפוש או ציטוטים של AI, אתם פוגעים בביצועים ושוברים את ה-DOM. ב-2026, CSS Custom Highlight API מציע דרך נקייה, מהירה ואלגנטית להדגיש טקסט בזמן אמת.

אתמול ישבתי עם מפתח שעבד על ממשק חיפוש AI פנימי. המערכת הריצה שאילתה מול LLM, הביאה את התשובה, וניסתה להדגיש בזמן אמת את הציטוטים מתוך מסמכי המקור.

התוצאה הייתה עגומה. המסך ריצד. ההודעות קפצו. הרכיבים ב-React איבדו את ה-State שלהם כי ה-DOM נחתך ועובד מחדש עם מאות תגיות mark. זה היה סיוט ביצועים.

הבעיה הזו מוכרת לכל מפתח פרונטאנד.

הגישה הישנה: הזרקת תגיות DOM

כשרוצים להדגיש טקסט באופן מסורתי, הטכניקה די ברוטלית. לוקחים את מחרוזת הטקסט, מריצים Regex, ומוסיפים תגיות מעטפת.

איפה זה נשבר? בכול מקום.

  • ה-DOM משתנה וגורם ל-Reflow יקר.
  • קוראי מסך מתבלבלים מפיצול פסקאות בודדות לעשרות אלמנטים.
  • בעת הזרמת טקסט בלייב מ-AI, חישוב ה-Regex קורס או מאט את ה-Main Thread.
הגדרה · CSS Custom Highlight API

מנגנון דפדפן מודרני המאפשר להגדיר אזורי טקסט ב-JavaScript ולהחיל עליהם עיצוב CSS ייעודי, מבלי לשנות אף אלמנט במבנה ה-DOM.

הגישה המודרנית: העיצוב נפרד מהמבנה

הרעיון מאחורי CSS Custom Highlight API פשוט בטירוף. מפרידים לחלוטין בין הנתונים לבין התצוגה הוויזואלית.

אני מגדיר אובייקט Range ב-JavaScript שמסמן בדיוק מאילו תווים עד אילו תווים לפרוס את ההדגשה. לאחר מכן, אני רושם אותו ב-CSS.highlights. מכאן, הדפדפן מנהל את כל הרינדור בשכבת התצוגה בלבד.

היבטהזרקת HTML (הגישה הישנה)CSS Custom Highlight API (הגישה המודרנית)
שינוי DOMכבד מאוד (פיצול צומתי טקסט)אפס שינויי DOM
מהירות רנדוראיטית, גורמת ל-Layout Shiftsמיידית, פועלת בשכבת העירסול של הדפדפן
תמיכה ב-Streaming AIקשה עד בלתי אפשרית לניהולקלה - עדכון ערכי Offset בלבד
אנגולר / ריאקטשובר Reconciliation ו-Stateשקוף לחלוטין לפריים-וורק

0

שינויי DOM הנדרשים להדגשת 1,000 ציטוטים בדף

מקור: W3C, 2026

איך זה עובד בפועל בחיפוש AI?

כאשר תשובת AI זורמת למסך, המערכת מאתרת את מיקום הטקסט שברצוננו להדגיש. במקום להחליף את הטקסט ב-HTML חדש, אנחנו פשוט בונים טווח.

אני יוצר Range חדש, מגדיר את נקודת ההתחלה והסיום, ומכניס אותו לאובייקט Highlight:

const range = new Range();
range.setStart(textNode, startOffset);
range.setEnd(textNode, endOffset);

const highlight = new Highlight(range);
CSS.highlights.set('ai-citation', highlight);

וב-CSS שלנו, ההגדרה פשוטה ונקייה:

::highlight(ai-citation) {
  background-color: #fde047;
  color: #0f172a;
  border-radius: 2px;
}

זה הכל. אפילו לא שורה אחת של תוכן משתנה ב-DOM.

מריצים חיפוש וקטורי או RAG באתר? אתם יכולים לחבר את ה-Offsets ישירות מתוצאות ה-Embedding ולסמן את המקורות על המסך תוך מילישניות.

השורה התחתונה: להפסיק לעבוד קשה

אם האתר שלכם כולל מנגנוני חיפוש מתקדמים, ממשקי צ'אט או כלי GEO הפונים למשתמשים, הגיע הזמן לנער את שיטות העבודה הישנות.

שימוש ב-CSS Custom Highlight API לא רק הופך את הקוד שלכם לנקי ב-80%, הוא מבטיח שהביצועים שלכם יישארו ירוקים ב-Lighthouse ב-2026.

💡

אל תגעו ב-DOM בשביל מניפולציות עיצוב. תנו לדפדפן לעשות את מה שהוא מתמחה בו בשכבת ה-Rendering.

שאלות נפוצות

כל מה שעוד רצית לדעת

מה היתרון המרכזי של CSS Custom Highlight API מול תגיות mark?
אפס שינויים במבנה ה-DOM. אין צורך לפצל צומתי טקסט (Text Nodes), אין Reflow של הדף, ואין סיכון לשבור את ה-State של הפריים-וורק בעקבות שינוי עץ האלמנטים.
האם הטכנולוגיה הזו נתמכת בכל הדפדפנים ב-2026?
כן. ה-API נתמך באופן מלא ב-Chrome, Safari, Edge ו-Firefox, מה שמאפשר להשתמש בו בייצור ללא פוליפילים כבדים.
איך קוראי מסך ומנועי חיפוש מתמודדים עם ה-API הזה?
מעולה. מכיוון שהטקסט ב-DOM נשאר רציף ונקי ללא תגיות מיותרות באמצע מילים, קוראי מסך וסורקי AI מעבדים את המשפט בצורה טבעית לחלוטין.
AB

כתב

אדיר בן יעקב · Adir Ben Yaakov

מקים JustBetterSite, סוכנות בניית אתרים ושיווק דיגיטלי בתל אביב. מתמחה ב-GEO (Generative Engine Optimization) — בנייה של אתרים שמופיעים בתשובות של ChatGPT, Claude, Perplexity ו-Gemini, לא רק בגוגל.

עוד עליי →

להמשך הקריאה

מאמרים קשורים