Можно ли стилизовать заголовок тега abbr?

Возьмите следующий код:

<abbr title="World Health Organization">WHO</abbr>

Можем ли мы оформить заголовок тега abbr? Так что вместо пользовательской подсказки мы можем использовать заголовок?

4 ответа

Решение

Если вы имеете в виду стиль реального всплывающего текста, нет, вы не можете стилизовать его с помощью CSS; это зависит от браузера. Javascript на основе tooltips было бы так, как я бы справился, так как это позволяет иметь больше контроля над этим поведением.

На самом деле, ответ Алекса Макпа неверен. Это вполне возможно сделать с помощью CSS для современных браузеров. Однако можно использовать запасной вариант для старых браузеров с JavaScript.

abbr {
    position: relative;
}

abbr:hover::after {
    position: absolute;
    bottom: 100%;
    left: 100%;
    display: block;
    padding: 1em;
    background: yellow;
    content: attr(title);
}

Это добавит абсолютно позиционированный псевдоэлемент в верхнем правом углу тега abbr, используя атрибут содержимого внутри заголовка, когда тег abbr наведен на.

Я искал что-то подобное и придумал следующую альтернативу (протестирован на Firefox, Safari и Chrome на Mac, работает с IE 7-10, когда я щелкнул по нему), основываясь на этой ссылке:

HTML:

<abbr title="My Custom Abbreviation" name="">Abbreviation</abbr>

JQuery:

$('[title]').each( function() {
    var mytitle = $(this);
    mytitle.data('title',mytitle.attr('title')); // get title attribute value
mytitle.attr('name', mytitle.attr('title')); // add title attribute value to NAME attribute
    mytitle.removeAttr('title'); // remove the title attribute, removing browser tooltip
});

CSS:

abbr {
    position: relative;
}
abbr:hover::after {
    position: absolute;
    bottom: 100%;
    left: 100%;
    display: block;
    padding: 1em;
    background: yellow;
    content: attr(name);
}

Вы можете стилизовать способ отображения сокращенной версии, поэтому в данном случае "ВОЗ". Но не так, как появляется всплывающее окно, так как это контролируется браузером / ОС.

Вы можете обойти это ограничение, применив некоторые вещи JQuery к любому abbr тег программно - это будет отображать divиз которых содержимое будет читать так же, как title на теге, который вызвал это.

Другие вопросы по тегам