TGViewer
Логово верстальщика Логово верстальщика @webdevlair · 7.96K subscribers
Post #4371 495
⁣CSS навигация без JS: psevdokoordinaty i otstupy pod hatkoj

Два svojstva - ::target-text i scroll-margin - reshayut problemy yakorej, hash-kollizij i pryachego pod headeron na storone HTML/CSS. Na proizvodstvennykh sajtah s dinamicheskim kontentom ili dizajn-sistemami chasto ignorirujut ony, vyodja JS-koostili i narushayut stabilnost layouta.

Podsvetka fragmenta bez ID
Psewdoelement ::target-text v Chrome 131+ pozvolyaet podsvetit tekst, na kotoryj ssylayetsya cherez #:~:text=. Eto rabotaet bez ykornej i bez skriptov. Naprimer, sdelat' link:
/#:~:text=nuzhnyj+tekst
Ili s kontekstom:
#:~:text=nachalo-,do,-konec
CSS minimalen:
::target-text {
background-color: yellow;
color: black;
}

Minus: net podderzhki v Firefox i Safari. No kak progressivnoe uluchshenie dlya Chromium - otlichno.

Otstup pod hatkoj s scroll-margin
Fixed header pyatatet zagolovok pri perekhode po #id. Ranshe eto trebovalo padding na bloke ili JS-vychisleniya. S scroll-margin yor sam znayet svoj otstup:
.anchor {
scroll-margin-top: 80px;
}

Rabotaet s lyubymi hosh-ssylkami i scrollIntoView(). Dlya dublikatov ID - ne dublikat. Esli vtoraja vstrechaetsya, navigatsiya lomaetsya.

Tipovaya oshibka i trade-off
Chertaya sozdavat' mnogo ykorej v HTML, sozdayut kollizii dublikatov ID. Reshenie: ispolzovat ::target-text dlya podsvetki teksta bez privyazki k ID. No uchyot, eto progressivnoe uluchshenie: dlya polzovatelej v Firefox nichego ne podsvetitsya. Zachem? Dlya medijnyh sajtov, e-commerce, gde nado delegirovat' kontekst v URL.

Prakticheskij sovet
Combo-priem dlya stabilnosti:
.anchor {
scroll-margin-top: 80px;
}
:target {
outline: 2px dashed blue;
}
::target-text {
background: rgba(255, 255, 0, 0.5);
}

scroll-margin i :target mozhno bez straktha v production. ::target-text - kak bonus dlya Chrome, no bez eto ne lomat.

Vyvod:
S zamenoj JS-ykorej na scroll-margin i ::target-text ty poluchish predskazuemyj layout bez bagov ot paddingov i bez poteri dostupnosti.
  • 👎 9
  • 😁 3
More from @webdevlair
  1. Sep 28, 2026Post #4646
  2. Sep 27, 2026Бумага и ручка: стартап заставил соискателей писать сопроводительные вручную Стартап Dumb…
  3. Sep 27, 2026Post #4644
  4. Sep 27, 2026Сигналы добрались до React-Redux В React Status #492 — React-Redux 9.4 Alpha притащил опци…
  5. Sep 27, 2026Post #4642
  6. Sep 26, 2026500+ баксов в месяц за ChatGPT? Не, у нас столько не завалялось Запуска пока нет. Но новый…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →