Мне нравится добавлять отзывчивые sidenotes к моим сообщениям в блоге. Отзывчиво, как в: скрыто в маленьких окнах просмотра, видно на полях в широких окнах просмотра.
Когда скрыто на маленьких экранах, необходим видимый элемент ("ссылка"), указывающий на то, что нужно читать. Мое решение для этого до сих пор:
<p>Some sentence with
<span class="sidenote" onclick="this.classList.toggle('active');">
underlined text
<span class="sidenote__content">
Sidenote content
</span>
</span>, which is clickable on small viewports.</p>
(с добавлением разрывов строк для удобства чтения)
С помощью CSS я добавляю звездочки как к подчеркнутому тексту, так и к содержимому sidenote, чтобы визуально связать их на больших экранах.
Проблемы с этим решением состоят в том, что правильное отображение sidenote__content
зависит от CSS. Это показано в читателях, как Pocket, с:
- Содержимое sidenote отображается в середине предложения без каких-либо визуальных подсказок
- Нет пробела между подчеркнутым текстом и содержимым sidenote.
Я надеюсь, что есть более семантическое решение, чем простые промежутки. <aside>
и <section>
нельзя использовать, поскольку они являются блочными элементами, и может автоматически закрывать родительский элемент p.
Решением может быть отделение контента sidenote от ссылки. Однако я предпочел бы сохранить набор sidenote и его ссылку как один набор или пару, чтобы они могли быть вставлены как таковые в сообщения. Их разделение потребовало бы логики javascript для сопоставления ссылок с их содержимым и может вызвать проблемы с обслуживанием, когда отсутствует одна половина набора.