问题 HTML:停止继承父级[title]属性的子元素


问题在于,当我为'wrapper'元素声明title属性时,当光标落在'content'元素内时,工具提示会出现。如何防止这种情况(继承)发生?

<style> 
  #content{ margin:25px;}
</style>

<div id='wrapper' title='example'>
  <div id='content'>

  </div>
</div>

(我只希望工具提示出现 之间 'content'和'wrapper'元素的边缘,而不是两者的边缘)


7893
2018-05-04 10:25


起源

根据这个消息来源 链接 你必须将内部DIV标题设置为白色字符。无论如何 - 你必须为Firefox做到这一点。不幸的是,它在IE中运行不佳。 - mj82
不幸的是,@ mj82导致IE中出现空白工具提示。 - Flash


答案:


我不认为这可以用纯CSS或HTML。

破解这种方法的一种方法是使用客户端代码..基本的纯JavaScript示例:

window.onload = function() {
    var oDiv = document.getElementById("content");
    oDiv.onmouseover = function() {
        this.parentNode.setAttribute("old_title", this.parentNode.title);
        this.parentNode.title = "";
    };
    oDiv.onmouseout = function() {
        this.parentNode.title = this.parentNode.getAttribute("old_title");
    };    
};

这将“清除”父母 div 鼠标悬停在内容上时标题,并在鼠标离开内容时恢复标题。

现场测试案例: http://jsfiddle.net/UASPZ/


5
2018-05-04 10:36



很棒的想法,但由于#content中的其他元素,我不得不抓住整个实现,因为鼠标移动比预期更频繁地触发。 (我可以使用e.stopPropagation();对于每一个,我想。无论如何,我会考虑它) - whamsicore
@whamsicore抱歉,我忍不住更多..如果您需要任何进一步的帮助,请随时提出。 :) - Shadow Wizard
奇迹般有效 : ) - T4NK3R
mouseenter和mouseexit可能会更好。 - megaflop


我有同样的问题。我发现你可以通过给子元素一个虚拟标题来防止这种情况 title=" "


4
2018-05-18 17:00



至少这在Firefox 4中有效;)我刚刚发现,Chrome不喜欢它。 Opera完全忽略它=( - mightyplow


同样的问题在这里

发现那个指定 title=' ' 适用于Chrome和FireFox,但在IE中显示了一个烦人的工具提示。 title='' 适用于IE,但完全被Chrome和FireFox忽略,从而显示了父级的工具提示。

没想出如何在跨浏览器中制作:(


2
2017-07-22 18:34