Содержание статьи сделано через id все с разными идентификаторами, js не хочется. Плавный скрол scroll-behavior: smooth Но с прилипающим меню нужен отступ сверху для всех id
в вашем варианте можно добавить класс и по классу уже делать стиль, если нет возможности добавлять лишний класс, то посмотрите какие селекторы есть, можно (НАПРИМЕР) через такой селектор прописать .container > div[id]
<h2 id="bbb" class="offset1">
.offset1
{
padding: ...;
margin: ...;
}
<article> <h2 id="aaa">...
<article> <h2 id="bbb">...
article h2
{
padding: ...;
margin: ...;
}
<div class="article"> <h2 id="aaa">...
<div class="article"> <h2 id="bbb">...
div.article h2
{
padding: ...;
margin: ...;
}
<div id="articles">
<div class="article"> <h2 id="aaa">...
<div class="article"> <h2 id="bbb">...
#articles h2
{
padding: ...;
margin: ...;
}
id нужен только для индивидуальной работы с конкретным элементом или как проводник к его дочерним элементам
h2
{
...
}
и ниже в css вы снова можете написать
h2
{
...
}
и описанные в нем атрибуты будут перекрывать описанные сверху
а если вы напишите более "частную" инструкцию
div.article h2
{
...
}
то она перекроет атрибуты описанные в ней для соответствующих элементов, в независимости от того выше или ниже эта инструкция от более общей h2 {...}