Можно ли форматировать HTML-подсказку (атрибут title)?

Можно ли форматировать HTML-подсказку?

например. У меня есть DIV с атрибутом title= "foo!". Когда у меня размер текста моего браузера увеличен или уменьшен, размер текста всплывающей подсказки остается неизменным. Есть ли способ сделать масштаб шрифта всплывающей подсказки с настройкой браузера?

Ответ 1

Нет. Но есть и другие варианты: Overlib и jQuery, которые позволяют вам эту свободу.

Лично я предлагаю jQuery в качестве маршрута. Он обычно очень ненавязчив и не требует дополнительной настройки разметки вашего сайта (за исключением добавления тега jquery script в ваш <head> ).

Ответ 2

Попробуйте использовать коды объектов, такие как &#013; для CR, &#010; для LF и &#009; для TAB.

Например:

<div title="1)&#009;A&#013;&#010;2)&#009;B">Hover Me</div>

Ответ 4

Нет, это невозможно, браузеры имеют собственные способы реализации всплывающей подсказки. Все, что вы можете сделать, это создать некоторый div, который ведет себя как HTML-подсказка (в основном это просто "показывать при наведении" ) с помощью Javascript, а затем нарисуйте его так, как вы хотите.

При этом вам не придется беспокоиться о масштабировании или удалении браузера, поскольку текст внутри div tooltip является фактическим HTML, он будет масштабироваться соответствующим образом.

См. Jonathan post для получения хорошего ресурса.

Ответ 5

Лучше поздно, чем никогда, они всегда говорят.

Обычно я использую jQuery для решения такой ситуации. Однако при работе на сайте для клиента, которому требовалось решение без javascript, я придумал следующее:

<div class="hover-container">
    <div class="hover-content">
        <p>Content with<br />
        normal formatting</p>
    </div>
</div>

Используя следующий css, вы получите ту же ситуацию, что и с заголовком:

.hover-container {
    position: relative;
}

.hover-content {
    position: absolute;
    bottom: -10px;
    right: 10px;
    display: none;
}

.hover-container:hover .hover-content {
    display: block;
}

Это дает вам возможность стилизовать его в соответствии с вашими потребностями, и он работает во всех браузерах. Даже те, где javascript отключен.

Плюсы:

  • Вы имеете большое влияние на стиль
  • Он работает в (почти) всех браузерах

Минусы:

  • Сложнее разместить подсказку

Ответ 6

Mootools также имеет класс "Советы", доступный в их "более построителе".

Ответ 7

Это невозможно. Но вы можете использовать некоторые javascript-библиотеки для создания такой всплывающей подсказки, например. http://www.taggify.net/

Ответ 8

Не уверен, что он работает со всеми браузерами или сторонними инструментами, но у меня был успех, просто указав "\n" в подсказках для новой строки, работая с dhtmlx, по крайней мере, в ie11, firefox и chrome

for (var key in oPendingData) {
    var obj = oPendingData[key];
    this.cells(sRowID, nColInd).cell.title += "\n" + obj["ChangeUser"] + ": " + obj[sCol];
}

Ответ 9

Я написал эту небольшую функцию javascript, которая преобразует все ваши родные заголовки в стилизованные узлы: http://jsfiddle.net/BurakUeda/g8r8L4vt/1/

mo_title = null;
mo_element = null;

document.onmousemove = function (e) {
	var event = e || window.event;
	var current_title;
	var moposx = e.pageX;  // current 
	var moposy = e.pageY;  // mouse positions

	var tooltips = document.getElementById("tooltips");  // element for displaying stylized tooltips (div, span etc.)

	var current_element = event.target || event.srcElement;  // the element we're currently hovering
	if (current_element == mo_element) return;  // we're still hovering the same element, so ignore
	if(current_element.title){
		current_title = current_element.title;  
	} else {
		current_title = "-_-_-";         // if current element has no title, 
		current_element.title = "-_-_-"; // set it to some odd string that you will never use for a title
	}
	if(mo_element == null){   // this is our first element  
		mo_element = current_element;
		mo_title = current_title;
	}
	if(mo_title) mo_element.title = mo_title;   // restore the title of the previous element

	mo_element = current_element;  // set current values
	mo_title = current_title;      // as default

	if(mo_element.title){
		var mo_current_title = mo_element.title;  // save the element title
		mo_element.title = "";  // set it to none so it won't show over our stylized tooltip
		if(mo_current_title == "-_-_-"){   //  if the title is fake, don't display it
			tooltips.style.display = "none";
			tooltips.style.left = "0px";
			tooltips.style.left = "0px";
			tooltips.innerHTML = "";
		} else { 
			tooltips.style.display = "inline-block";
			tooltips.style.left = (moposx + 10) + "px";
			tooltips.style.top = (moposy + 10) + "px";
			tooltips.innerHTML = mo_current_title;
		}
	}
};
#tooltips {
    display: none;
    position: absolute;
    left 0;
    top: 0;
    color: white;
    background-color: darkorange;
    box-shadow: black 2px 2px 2px;
    padding: 5px;
    border-radius:5px;
}

#buttoncontainer{
    border: 1px black solid;
    padding: 10px;
    margin: 5px;
}
<div id="tooltips"></div>
<div>
    <div title="DIV #1">Division 1</div>
    <div id="buttoncontainer" title="Button container">
        <button title="Button with title"> Button #1 </button>
        <button> Button w/o title </button>
        <button title="
            <table border='1' cellpadding='4' cellspacing='0'>
                <tr>
                    <td style='background-color:black; color:white; font-weight:bold; text-align: right'> TITLE #1</td>
                    <td style='text-decoration:underline; color:RoyalBlue; font-style: italic; font-size: 18px'>Description 1</td>
                </tr>
                <tr>
                    <td style='background-color:black; color:white; font-weight:bold; text-align: right'> TITLE #2</td>
                    <td style='text-decoration:overline; color:RoyalBlue; font-weight:bold; font-size: 14px'>Description 1</td>
                </tr>
                <tr>
                    <td style='background-color:black; color:white; font-weight:bold; text-align: right'> TITLE #3</td>
                    <td style='text-decoration:line-through; color:RoyalBlue; font-style: italic; font-size: 12px'>Description 1</td>
                </tr>
            </table>
        "> Button title containing HTML </button>
    </div>
</div

Ответ 10

Я знаю, что это старый пост, но я хотел бы добавить свой ответ для дальнейшего использования. Я использую jQuery и css для создания своих всплывающих подсказок: easyiest-tooltip-and-image-preview-using-jquery (для демонстрации: http://cssglobe.com/lab/tooltip/02/) На моих статических сайтах это просто отлично работало. Однако во время перехода на Wordpress он остановился. Моим решением было изменить теги, такие как <br> and <span>, на это: &lt;br&gt; and &lt;span&gt; Это работает для меня.

Ответ 11

В всплывающей подсказке bootstrap просто используйте data-html = "true"