How to change the style of the title attribute inside an anchor tag?

前端 未结 10 1328
故里飘歌
故里飘歌 2020-11-21 22:27

Example:

 Link 

How do I change the presentation of the \"title\" attribute in th

10条回答
  •  春和景丽
    2020-11-21 22:59

    I thought i'd post my 20 lines JavaScript solution here. It is not perfect, but may be useful for some depending on what you need from your tooltips.

    When to use it

    • Automatically styles the tooltip for all HTML elements with a TITLE attribute defined (this includes elements dynamically added to the document in the future)
    • No Javascript/HTML changes or hacks required for every tooltip (just the TITLE attribute, semantically clear)
    • Very light (adds about 300 bytes gzipped and minified)
    • You want only a very basic styleable tooltip

    When NOT to use

    • Requires jQuery, so do not use if you don't use jQuery
    • Bad support for nested elements that both have tooltips
    • You need more than one tooltip on the screen at the same time
    • You need the tooltip to disappear after some time

    The code

    // Use a closure to keep vars out of global scope
    (function () {
        var ID = "tooltip", CLS_ON = "tooltip_ON", FOLLOW = true,
        DATA = "_tooltip", OFFSET_X = 20, OFFSET_Y = 10,
        showAt = function (e) {
            var ntop = e.pageY + OFFSET_Y, nleft = e.pageX + OFFSET_X;
            $("#" + ID).html($(e.target).data(DATA)).css({
                position: "absolute", top: ntop, left: nleft
            }).show();
        };
        $(document).on("mouseenter", "*[title]", function (e) {
            $(this).data(DATA, $(this).attr("title"));
            $(this).removeAttr("title").addClass(CLS_ON);
            $("
    ").appendTo("body"); showAt(e); }); $(document).on("mouseleave", "." + CLS_ON, function (e) { $(this).attr("title", $(this).data(DATA)).removeClass(CLS_ON); $("#" + ID).remove(); }); if (FOLLOW) { $(document).on("mousemove", "." + CLS_ON, showAt); } }());

    Paste it anywhere, it should work even when you run this code before the DOM is ready (it just won't show your tooltips until DOM is ready).

    Customize

    You can change the var declarations on the second line to customize it a bit.

    var ID = "tooltip"; // The ID of the styleable tooltip
    var CLS_ON = "tooltip_ON"; // Does not matter, make it somewhat unique
    var FOLLOW = true; // TRUE to enable mouse following, FALSE to have static tooltips
    var DATA = "_tooltip"; // Does not matter, make it somewhat unique
    var OFFSET_X = 20, OFFSET_Y = 10; // Tooltip's distance to the cursor
    

    Style

    You can now style your tooltips using the following CSS:

    #tooltip {
        background: #fff;
        border: 1px solid red;
        padding: 3px 10px;
    }
    

提交回复
热议问题