Исправлены заголовки и якорные ссылки: как уменьшить кликабельную область? - PullRequest
1 голос
/ 14 марта 2019

Я использую JavaScript для автоматического создания сносок из текстовой страницы HTML. Код JS основан на этом примере: https://wiki.selfhtml.org/wiki/JavaScript/Tutorials/Auto-Footnoter (описание на немецком языке). Сценарий в основном собирает все элементы в тексте, помеченные <span class="fn">, создает элемент div для пояснений сноски внизу страницы и добавляет обратную ссылку на привязку сноски в тексте. Результат этого сопоставим с системой сносок Википедии. JS-скрипт в основном работает нормально, после того как я настроил его под свои нужды.

В верхней части моей страницы я использую фиксированный заголовок. Чтобы сделать ссылку привязки видимой, я добавил класс fnheader в тег a, созданный сценарием JS со следующим CSS:

a.fnheader {    
    position:relative;
    margin-top:-150px;
    padding-top:150px;
    visibility:none;
    }

Обычно я бы предпочел, чтобы представленное решение было услышано https://stackoverflow.com/a/13184714/10321738,, но display: block; не будет работать для сносок (все они расположены в левой части страницы, но больше не в тексте), вышеупомянутый CSS делает.

Таким образом, заголовок больше не скрывает ссылки привязки. Но проблема сейчас заключается в заполнении на 150 пикселей, которое добавляется CSS. Когда я попадаю в подобную ситуацию в тексте

bla blah blah bla bla blah bla blah blah
bla bla bla blah [1] bla blah bla blah
bla bla bla bla [2] blah bla blah bla

где 1 и [2] представляют сноски, щелкнув по 1 , я получаю описание сноски [2], поскольку верхний отступ ссылки [2] продлен до строки сноски 1 . Ссылка для сноски 1 активируется только при указании на соответствующую позицию в строке над сноской 1 . Я думаю, что проблема ясна ...

Есть ли способ уменьшить кликабельную область для ссылки на сноску (желательно с помощью CSS)? Или у кого-нибудь есть идея, чтобы решить проблему с фиксированным заголовком?

Спасибо за любые советы по этому вопросу заранее!

Редактировать: Некоторая дополнительная информация, чтобы прояснить проблему: Стиль fnheader применяется к сноскам в тексте сценарием JS. Он добавляет верхнюю часть отступа 150 пикселей к ссылке, чтобы переместить ее вниз по фиксированному заголовку вверху страницы. Это приводит к тому, что при нажатии на 1 вы получаете описание сноски [2], поскольку заполнение также расширяет область ссылки сноски, которую можно щелкнуть, до предыдущей строки.

К сожалению, я не могу предоставить здесь никакого кода.

Редактировать 2: Я только что применил сплошную границу 1 px к сноскам в тексте, чтобы получить визуальное представление о том, что происходит не так. Вот как это выглядит:

enter image description here

Как вы можете видеть, верхний отступ расширяется до верхнего (как и ожидалось), чтобы обойти фиксированный заголовок вверху страницы. Это приводит к расширению интерактивной области до предыдущих строк, а также к другим сноскам в тексте (как показано на скриншоте).

...