2010-06-30 1 views
5

Хорошие браузеры работают так, что пустой атрибут «title» для элемента означает «не утруждайте себя показом прогона заголовка». Это имеет смысл, как небольшая белая эстакада, в которой нет ничего ( — или ничего, кроме пробела) для большинства людей совершенно бесполезно.Запретить атрибут «title» родительского элемента, вызывающий прохождение браузера

Дизайнеры IE не согласны.

Моя проблема в том, что у меня есть немного "что это?" механизм на сайте, который содержит абсолютно позиционированный <div>, содержащий небольшую графику вопросительного знака. То, что <div> имеет атрибут «title» с вопросом типа «Что делает« кнопка Eraser History »? Когда вы нажимаете на вопросительный знак, появляется небольшой пузырь «Помощь», и вы можете прочитать о теме. Идея «титула» заключается в том, что, если пользователь переводит знак вопроса, он видит вопрос (который, надеюсь), о котором они могут подумать.

Ну, проблема с «заголовком» заключается в том, что всплывающий всплывающий воздушный шар находится внутри абсолютно расположенного <div>, так что он правильно расположен на странице. Другими словами, абсолютно позиционированный <div> просто имеет «позицию: абсолютный», но его можно отбрасывать на странице в «правом» месте без какого-либо вычисления смещения. Воздушный шар «help», таким образом, находится в правильном месте. Но: что «заголовок» на родительском <div> является отвратительным, потому что браузер выталкивает его после воздушный шар открыт. Зачем? потому что баллон «help» лексически содержится во внешнем <div>, хотя внешний <div> - это всего лишь небольшая вещь с вопросительным знаком.

Таким образом, решение # 1 было дать «помочь» воздушный шар <div> свой собственный «название» атрибут, ничего в нем (редактировать — я получил, что неправильно, это не не ничего в названии, это пробельный символ). Это отлично работает, за исключением IE. В IE теперь этот пустой атрибут «title» заставляет браузер размещать небольшой пустой прямоугольник. Полезно.

Я мог бы, конечно, поиграть с Javascript и просто указать атрибут «title» у родителя <div>, пока отображается воздушный шар, но мне любопытно, как «переопределить» родительский элемент «title» в IE это можно сделать только с разметкой. Если это невозможно, тогда хорошо.

Простая демонстрационная страница: http://gutfullofbeer.net/title.html (попробуйте с IE 7 или 8, чтобы увидеть маленькую пустую белую коробку)

редактировать — ха-ха-ха - когда я изменить свой код так, что я явно нуль вне " title "на всех родительских элементах, IE показывает пролет с словом« null »в нем :-)

+1

Код/URL-адрес – galambalazs

+0

Я могу настроить тестовую страницу, если хотите; это довольно простая сделка. – Pointy

+0

OK Теперь вопрос включает тестовую страницу. – Pointy

ответ

1

я в конечном итоге увеличивая мой существующий код, который открывает/закрывает «помочь» пузырь так, чтобы она работала по цепочке родительских элементов и тайников код «title» с помощью «данных» jQuery. Когда пузырь закрывается, заголовки восстанавливаются.

1

Я не думаю, что вы можете делать то, что хотите. Похоже, что это взломать - атрибуты дочернего DOM-элемента не предназначены для «переопределения» родительских атрибутов. Вы, вероятно, следует обернуть конкретный текст с правильным названием, например, это:

http://jsbin.com/ezipe

+0

Однако атрибут «title», в частности, действительно не может работать иначе. Это не является недопустимым с помощью любого определения, которое я могу думать о том, что для контейнера есть другой заголовок, чем содержащийся элемент, и браузер только когда-либо покажет мне один заголовок, который является «самым близким» к элементу, над которым мышь приостановлено. – Pointy

2

Почему бы не назначить права собственности на знак вопроса элемента (#qmark) вместо содержащего DIV? Таким образом, вместо:

<div title="this is the overlapping title"> 
    <div id="qmark">?</div> 
    <div id="hiddenContainer"></div> 
</div> 

было бы

<div> 
    <div id="qmark" title="this title no longer overlaps">?</div> 
    <div id="hiddenContainer"></div> 
</div> 
+0

Это прекрасная идея, и на самом деле я начал делать это после прочтения ответа @ desau. Затем я понял, что мои «подсказки» пузырьки могут быть вложены внутри * другого слоя «title» -bearing markup. Можно было бы утверждать, что я просто использую слишком много из них и что я должен выйти из привычки, особенно с учетом появления «сенсорных» интерфейсов, где в действительности нет «зависания». – Pointy