Я использую HTML map
, и мне нужно использовать псевдоэлементы на его area
для отображения значков и их относительного позиционирования.
Редактировать: я не могу жестко закодировать его координаты, потому что я собираюсь иметь дело с большим количеством областей в HTML, которые я не могу предсказать, поскольку мой код вводится поверх существующего HTML.
Вот скрин моей попытки и что я хотел бы сделать:
Вот скрипка (область на мордочке первого котенка)
tl;dr: Могу ли я добиться этого (по желанию, только в CSS)?
Что я пробовал
Проблема, я видел, что элемент area
должен быть установлен на display:none
для работы, что препятствует отображению моего псевдоэлемента.
Итак, я сделал его блоком, он все еще имеет свое положение на карте (хорошо), и мой псевдоэлемент появляется, но не относительно реальных координат области...
Используя этот CSS:
area{
display:block;
position:relative;
}
area::after{
display:block;
content:"10";
position:absolute;
left:0px;
top:0px;
text-align:center;
color:white;
width:20px;
height:20px;
background-color:red;
border-radius:20px;
border:1px solid red;
}
Я пробовал возиться с полями, другим позиционированием, другим дисплеем, но пока не нашел подходящей комбинации.
Я подумал о том, чтобы получить coords
области для позиционирования псевдоэлементов с помощью attr()
CSS3, но впоследствии я не могу разделить ее значения.
Я прочитал этот вопрос о стиле area
с использованием внешних (и старых) плагинов jQuery, но это не соответствует моим потребностям, и я не могу найти подсказку в Интернете.
У кого-нибудь есть подсказка? Я чувствую, что близок к этому, но у меня заканчиваются идеи.
area
является заменяемым элементом, очень похожим наimg
, поэтому вы не можете использовать с ним псевдоэлементы::before
и::after
. - person BoltClock   schedule 23.05.2014