একটি ডিভের সাথে একটি টুলটিপ যুক্ত করুন


566

আমার মতো একটি ডিভ ট্যাগ রয়েছে:

<div>
  <label>Name</label>
  <input type="text"/>
</div>

আমি ডিভের একটি টুলটিপটি কীভাবে প্রদর্শন করতে পারি :hover, প্রায়শই ফিড ইন / আউট এফেক্ট দিয়ে।


2
একটি সহজ সিএসএস + + জাভাস্ক্রিপ্ট সমাধান জন্য, আমি মনে করি তোমার দিকে ড্যানিয়েল Imms 'পোস্টে বীট করতে পারেন না stackoverflow.com/questions/15702867/...
রিক হিচককের


উত্তর:


892

বেসিক টুলটিপের জন্য, আপনি চান:

<div title="This is my tooltip">

একটি ফ্যানসিয়ার জাভাস্ক্রিপ্ট সংস্করণের জন্য, আপনি এটি দেখতে পারেন:

https://jqueryhouse.com/best-jquery-tooltip-plugins/

উপরের লিঙ্কটি আপনাকে টুলটিপসের জন্য 25 টি বিকল্প দেয়।


2
একটি শিরোনাম সরঞ্জাম টিপ সঙ্গে নজর রাখা একটি জিনিস যদি আপনার ডিভিতে ব্যবহারকারী ক্লিক করে টুলটিপটি উপস্থিত না হয়। এটি খুব হতাশ হতে পারে ... বিশেষ করে যদি আপনার ডিভিটি দেখে মনে হয় এটি ক্লিক করা উচিত। যেমন: শৈলী = "কার্সার: পয়েন্টার;"
রায়লভলেস

2
@ রায়এল কোনও টুলটিপটির ক্লিকযোগ্য হওয়ার জন্য এটি স্ট্যান্ডার্ড আচরণ নয় - এটি লিঙ্কগুলি এবং সরঞ্জামদণ্ডগুলিকে ঝাপসা করে, ব্যবহারকারীকে এই বিষয়টি জানতে বাধা দেয় যে একটি হাইলাইট শব্দটি 1) তাদের আরও তথ্য দেবে বা ২) পুরোপুরি অন্য পৃষ্ঠায় নিয়ে যাবে take সাধারণভাবে, খারাপ অভ্যাস।
sscirrus

@ এসসিআররাস আমি সম্মত এজন্য আপনাকে "কার্সার: পয়েন্টার" দিয়ে আপনার সরঞ্জামদণ্ডগুলি স্টাইল করা উচিত নয়; (ক্লিক করতে উত্সাহিত করে) যা আমি প্রায়শই দেখি।
রায়লাভলেস

18
আপনি যদি কিছু পাঠ্যের কিছু অংশের জন্য যেমন কেবল কিছু কীওয়ার্ডের জন্য "বিশদ" বা তার মতো কিছু ব্যবহার করতে চান তবে তার <abbr title="...">...</abbr>পরিবর্তে ব্যবহার করুন; ব্রাউজারগুলি সাধারণত এটি ড্যাশ / বিন্দু দিয়ে আন্ডারলাইন করে স্টাইল করে "আরও কিছু বলার আছে, আমার টুলটিপটি দেখুন" নির্দেশ করে।
লীমস

2
Chrome এ, টুলটিপটি প্রদর্শিত হতে কয়েক সেকেন্ড সময় নিতে পারে। আমার মতে ধীরে ধীরে।
অ্যান্ড্রয়েড ডেভ 30'17

292

এটি কেবল সিএসএস দিয়েই করা যেতে পারে , জাভাস্ক্রিপ্ট মোটেও নয় : চলমান ডেমো

  1. একটি কাস্টম এইচটিএমএল বৈশিষ্ট্য প্রয়োগ করুন, যেমন। data-tooltip="bla bla"আপনার অবজেক্টে (ডিভ বা যাই হোক না কেন):

    <div data-tooltip="bla bla">
        something here
    </div>
    
  2. নির্ধারণ :beforeপ্রতিটি pseudoelement [data-tooltip]বস্তুর স্বচ্ছ একেবারে স্থান এবং সাথে থাকতে data-tooltip=""সামগ্রী হিসাবে মান:

    [data-tooltip]:before {            
        position : absolute;
         content : attr(data-tooltip);
         opacity : 0;
    }
    
  3. :hover:beforeএকে [data-tooltip]দৃশ্যমান করার জন্য প্রত্যেকের স্থিতিস্থানের স্থিতি সংজ্ঞা দিন :

    [data-tooltip]:hover:before {        
        opacity : 1;
    }
    
  4. টুলটিপ অবজেক্টে আপনার স্টাইলগুলি (রঙ, আকার, অবস্থান ইত্যাদি) প্রয়োগ করুন; গল্পের শেষ.

ডেমোতে আমি অন্য একটি নিয়ম সংজ্ঞায়িত করেছি যাতে এটি নির্দিষ্ট করে দেওয়ার জন্য যদি টুলটিপটি অদৃশ্য হয়ে যায় তবে পিতামাতার বাইরে অন্য কাস্টম বৈশিষ্ট্য data-tooltip-persistentএবং একটি সাধারণ নিয়ম সহ:

[data-tooltip]:not([data-tooltip-persistent]):before {
    pointer-events: none;
}

দ্রষ্টব্য 1: এর জন্য ব্রাউজারের কভারেজটি খুব প্রশস্ত, তবে পুরানো আইইয়ের জন্য জাভাস্ক্রিপ্ট ফ্যালব্যাক (যদি প্রয়োজন হয়) ব্যবহারের কথা বিবেচনা করুন।

দ্রষ্টব্য 2: একটি বর্ধনশীলতা মাউসের অবস্থান গণনা করার জন্য জাভাস্ক্রিপ্টের কিছুটা যুক্ত করে এবং এটিতে প্রয়োগ করা ক্লাস পরিবর্তন করে সিউডো উপাদানগুলিতে যুক্ত করতে পারে।


1
@ অ্যান্ড্রিএলজিওস কি এটি পরিবর্তন করা যেতে পারে, যাতে টুলটিপটি 1x1px পর্যন্ত না দেখানো যায় এবং সেই পিক্সেলটি পাঠ্যের 0,0 স্থানাঙ্কের কোথাও হওয়া উচিত? ডেমোতে বর্তমানে একটি ত্রুটি রয়েছে: ডেমোতে তৃতীয় ডিভের নীচের অংশে মাউসটি স্থাপন করার পরে, সরঞ্জামদণ্ডটি প্রদর্শিত হতে শুরু করে, তবে তারপরে মাউস-পয়েন্টার থেকে দূরে সরে যায়, এবং তাই এটি তার প্রারম্ভিক অবস্থানে ফিরে যায়, যা আবার হাজির হচ্ছেন। এটি মুগ্ধভাবে দ্রুত ঘটছে এবং একটি ঝলকানি দেখায়।
জন

1
দুর্দান্ত উত্তর আন্দ্রে, স্বীকৃত উত্তরটি পুরানো। Jsfiddle প্রচুর সাহায্য করেছে।
jhhoff02

2
আমি ভালবাসি যে এই প্রশ্নের দুটি দুর্দান্ত উত্তর আছে। একটি সাধারণ এবং অন্যটি অনুকূলিতকরণযোগ্য।
রোহমার

2
এটা সত্যিই দারুন! তবে: আমরা এখানে কীভাবে একটি লাইন বিরতি যুক্ত করতে পারি? মনে হচ্ছে এটি এড়ানো হবে <br>এবং অন্যরা পছন্দ করে \nবা \rএটিকে কেবল স্ট্রিংয়ের বাকী অংশে সরল পাঠ হিসাবে প্রদর্শিত হবে। আপডেট: আমি সবেমাত্র লক্ষ্য করেছি যে সর্বাধিক প্রস্থ নির্ধারণ করা এটিকে স্বয়ংক্রিয়ভাবে এর সামগ্রীটিকে সামঞ্জস্য করে এবং লাইন ব্রেক ফেলেছে। সত্যিই ঝরঝরে! (তবে, যদি কেউ উত্তর জেনে থাকে তবে আমি তার প্রশংসা করব)
লিনাসগেফার্থ

2
@ লিনাসগেফার্থ আপনি এটি সাদা স্থান দিয়ে করতে পারেন: প্রাক-মোড়ানো; বর্তমান ক্রোমে। যদিও আমি অন্যান্য ব্রাউজারগুলি পরীক্ষা করি নি।
টগজিনিটস

83

এর জন্য আপনার জাভাস্ক্রিপ্টের মোটেই প্রয়োজন নেই; শুধু titleবৈশিষ্ট্য সেট করুন :

<div title="Hello, World!">
  <label>Name</label>
  <input type="text"/>
</div>

দ্রষ্টব্য যে সরঞ্জামটিপটির ভিজ্যুয়াল উপস্থাপনাটি ব্রাউজার / ওএস নির্ভর, তাই এটি ম্লান হয়ে যেতে পারে এবং এটি নাও পারে। যাইহোক, এটি সরঞ্জামদ্বারগুলি করার সিমেটিক উপায় এবং এটি স্ক্রিন পাঠকদের মতো অ্যাক্সেসিবিলিটি সফ্টওয়্যার দিয়ে সঠিকভাবে কাজ করবে।

স্ট্যাক স্নিপেটে ডেমো

<div title="Hello, World!">
  <label>Name</label>
  <input type="text"/>
</div>


সত্য, তবে যদি ওপি কোনও উপায়ে
টুলটিপটি

2
এই উত্তরটি কেবল ওপি-র জন্য নয়।
cdowie

যথেষ্ট ন্যায্য। তবে কখনও কখনও একটি টুলটিপে একটি রচনা লিখতে হবে, এবং সেই পরিস্থিতিতে titleবৈশিষ্ট্যটি কেবল এটি কাটবে না।
Yvonne Aburrow

@ ইয়ভনে অবরো ... একারণে একাধিক upvated উত্তর আছে। আপনার যদি সহজ এবং দ্রুত কিছু দরকার হয় তবে titleকাজ করে। আপনার আরও জটিল কিছু প্রয়োজন হলে আরও উত্তরগুলি আরও জটিল। আপনি এখানে কোন পয়েন্টটি বানাতে চাইছেন তা আমি সত্যতার সাথে নিশ্চিত নই।
cdowie

17

এখানে একটি সুন্দর jQuery সরঞ্জামদণ্ড রয়েছে:

https://jqueryui.com/tooltip/

এটি বাস্তবায়নের জন্য, কেবল এই পদক্ষেপগুলি অনুসরণ করুন:

  1. আপনার <head></head>ট্যাগগুলিতে এই কোডটি যুক্ত করুন :

    <script type="text/javascript" src="http://cdn.jquerytools.org/1.2.5/full/jquery.tools.min.js"></script>    
    <script type="text/javascript">
    $("[title]").tooltip();
    </script> 
    <style type="text/css"> 
    
    /* tooltip styling. by default the element to be styled is .tooltip  */
    .tooltip {
        display:none;
        background:transparent url(https://dl.dropboxusercontent.com/u/25819920/tooltip/black_arrow.png);
        font-size:12px;
        height:70px;
        width:160px;
        padding:25px;
        color:#fff;
    }
    </style> 
    
  2. এইচটিএমএল উপাদানগুলিতে আপনি যে টুলটিপটি titleরাখতে চান তাতে এটিতে একটি বৈশিষ্ট্য যুক্ত করুন । শিরোনাম বৈশিষ্ট্যে যে পাঠ্য রয়েছে তা টুলটিপটিতে থাকবে।

দ্রষ্টব্য: যখন জাভাস্ক্রিপ্ট অক্ষম করা হবে তখন এটি ডিফল্ট ব্রাউজার / অপারেটিং সিস্টেমের সরঞ্জামদণ্ডে ফ্যালব্যাক হয়ে যাবে।


16

আমি এমন কিছু করেছি যা ডিভের সাথেও খাপ খাইয়ে নিতে সক্ষম হবে।

এইচটিএমএল

<td>
    <%# (Eval("Name").ToString().Length > 65) ? Eval("Name").ToString().Substring(0, 60) + "..." : Eval("Name")%>
    <span class="showonhover">
        <a href="#"><%# (Eval("Name").ToString().Length > 65) ? "More" : "" %></a>
        <span class="hovertext">
            <%# Eval("Name") %>
        </span>
    </span>
</td>

সিএসএস

.showonhover .hovertext { display: none;}
.showonhover:hover .hovertext {display: inline;}
a.viewdescription {color:#999;}
a.viewdescription:hover {background-color:#999; color: White;}
.hovertext {position:absolute;z-index:1000;border:1px solid #ffd971;background-color:#fffdce;padding:11px;width:150px;font-size: 0.75em;}

আরও গভীর-আলোচনার জন্য, আমার পোস্টটি দেখুন:

হোভারের উপর একটি সাধারণ ফর্ম্যাটেড টুলটিপ পাঠ্য


8
প্রশ্নটি এইচটিএমএল সমাধানের জন্য ছিল কিছু। নেট সার্ভার-সাইড ম্যাজিক নয়।
মিচা Šরাজের

5
কাটা দেখানোর জন্য। নেট কোড রয়েছে। এইচটিএমএল এবং সিএসএস ব্যবহার করার পদ্ধতিটি এখনও বৈধ।
সোওয়ার্ডস্ট্রম

1
এটি সবচেয়ে সহজ এবং সর্বোত্তম সমাধান, কারণ এটি জেএসের উপর নির্ভর করে না। কেবল span.showonhover কে ফোকাসযোগ্য করে তুলুন বা span.hovertext কে লিঙ্কটিতে সরিয়ে ফেলুন এবং আপনি পর্দার পাঠকদের জন্য পুরোপুরি অ্যাক্সেসযোগ্য (এবং শিরোনাম-গুণাবলী সমাধানের চেয়ে ভাল)। ওহ, এবং <% # ...%> সম্পর্কে ভুলে যান
চেনু

15

এখানে একটি খাঁটি সিএসএস 3 বাস্তবায়ন রয়েছে (Jচ্ছিক জেএস সহ)

আপনাকে কেবলমাত্র "ডেটা-টুলটিপ" নামক কোনও ডিভের জন্য একটি অ্যাট্রিবিউট সেট করতে হবে এবং আপনি যখন তার উপর ঘুরে দেখেন তখন সেই পাঠ্যটি তার পাশে প্রদর্শিত হবে।

আমি এমন কিছু alচ্ছিক জাভাস্ক্রিপ্ট অন্তর্ভুক্ত করেছি যা কার্টরের কাছে সরঞ্জামদণ্ডটি প্রদর্শিত হতে পারে। আপনার যদি এই বৈশিষ্ট্যটির প্রয়োজন না হয় তবে আপনি নিরাপদে এই ঝাঁকের জাভাস্ক্রিপ্ট অংশটি উপেক্ষা করতে পারেন।

আপনি যদি হোভারের অবস্থাতে ফেড-ইন না চান তবে কেবল স্থানান্তরের বৈশিষ্ট্যগুলি সরিয়ে ফেলুন

এটি titleপ্রোপার্টি টুলটিপের মতো স্টাইলযুক্ত । এখানে জেএসফিডাল: http://jsfiddle.net/toe0hcyn/1/

এইচটিএমএল উদাহরণ:

<div data-tooltip="your tooltip message"></div>

সিএসএস:

*[data-tooltip] {
    position: relative;
}

*[data-tooltip]::after {
    content: attr(data-tooltip);

    position: absolute;
    top: -20px;
    right: -20px;
    width: 150px;

    pointer-events: none;
    opacity: 0;
    -webkit-transition: opacity .15s ease-in-out;
    -moz-transition: opacity .15s ease-in-out;
    -ms-transition: opacity .15s ease-in-out;
    -o-transition: opacity .15s ease-in-out;
    transition: opacity .15s ease-in-out;

    display: block;
    font-size: 12px;
    line-height: 16px;
    background: #fefdcd;
    padding: 2px 2px;
    border: 1px solid #c0c0c0;
    box-shadow: 2px 4px 5px rgba(0, 0, 0, 0.4);
}

*[data-tooltip]:hover::after {
    opacity: 1;
}

মাউস অবস্থান ভিত্তিক টুলটিপ অবস্থান পরিবর্তনের জন্য Javaচ্ছিক জাভাস্ক্রিপ্ট:

var style = document.createElement('style');
document.head.appendChild(style);

var matchingElements = [];
var allElements = document.getElementsByTagName('*');
for (var i = 0, n = allElements.length; i < n; i++) {
    var attr = allElements[i].getAttribute('data-tooltip');
    if (attr) {
        allElements[i].addEventListener('mouseover', hoverEvent);
    }
}

function hoverEvent(event) {
    event.preventDefault();
    x = event.x - this.offsetLeft;
    y = event.y - this.offsetTop;

    // Make it hang below the cursor a bit.
    y += 10;

    style.innerHTML = '*[data-tooltip]::after { left: ' + x + 'px; top: ' + y + 'px  }'

}

12

ঠিক আছে, এখানে আপনার সমস্ত অনুদানের প্রয়োজনীয়তা পূরণ হয়েছে:

  • কোন jQuery নেই
  • তাত্ক্ষণিক উপস্থিত
  • মাউসটি অঞ্চলটি ছেড়ে না দেওয়া পর্যন্ত কোনও বিরক্তিকর হবে না
  • ফেড ইন / আউট এফেক্ট অন্তর্ভুক্ত
  • এবং সর্বশেষে .. সহজ সমাধান

এখানে আমার কোডের একটি ডেমো এবং লিঙ্ক রয়েছে (জেএসফিডাল)

এই বৈশিষ্ট্যগুলি যা আমি এই খাঁটি জেএস, সিএসএস এবং এইচটিএমএল 5 ফিডেলের সাথে অন্তর্ভুক্ত করেছি:

  • আপনি বিবর্ণ গতি সেট করতে পারেন।
  • আপনি একটি সাধারণ ভেরিয়েবলের সাহায্যে টুলটিপের পাঠ্য সেট করতে পারেন।

এইচটিএমএল:

<div id="wrapper">
    <div id="a">Hover over this div to see a cool tool tip!</div>
</div>

সিএসএস:

#a{
    background-color:yellow;
    padding:10px;
    border:2px solid red;    
}

.tooltip{
    background:black;
    color:white;
    padding:5px;
    box-shadow:0 0 10px 0 rgba(0, 0, 0, 1);
    border-radius:10px;
    opacity:0;
}

javascript:

var div = document.getElementById('wrapper');
var a = document.getElementById("a");
var fadeSpeed = 25; // a value between 1 and 1000 where 1000 will take 10
                    // seconds to fade in and out and 1 will take 0.01 sec.
var tipMessage = "The content of the tooltip...";

var showTip = function(){    
    var tip = document.createElement("span");
    tip.className = "tooltip";
    tip.id = "tip";
    tip.innerHTML = tipMessage;
    div.appendChild(tip);
    tip.style.opacity="0"; // to start with...
    var intId = setInterval(function(){
        newOpacity = parseFloat(tip.style.opacity)+0.1;
        tip.style.opacity = newOpacity.toString();
        if(tip.style.opacity == "1"){
            clearInterval(intId);
        }
    }, fadeSpeed);
};
var hideTip = function(){
    var tip = document.getElementById("tip");
    var intId = setInterval(function(){
        newOpacity = parseFloat(tip.style.opacity)-0.1;
        tip.style.opacity = newOpacity.toString();
        if(tip.style.opacity == "0"){
            clearInterval(intId);
            tip.remove();
        }
    }, fadeSpeed);
    tip.remove();
};

a.addEventListener("mouseover", showTip, false);
a.addEventListener("mouseout", hideTip, false);

কার্সারটি দ্রুত সরিয়ে নিয়ে যাওয়ার ফলে একাধিক টুলটিপ তৈরি হয় যা আপনার জিসফিডালে অদৃশ্য হবে না।
কে ভি

আমি অবাক হই, যদি টুলটিপ মাউসের অবস্থানে উপস্থিত হয় ears দুর্দান্ত কাস্টমাইজেশন।
আন্দ্রে মেসকিটা

5

আপনি একটি ডেটা অ্যাট্রিবিউট, সিউডো উপাদান এবং content: attr()উদাহরণস্বরূপ কাস্টম সিএসএস টুলটিপগুলি তৈরি করতে পারেন ।

http://jsfiddle.net/clintioo/gLeydk0k/11/

<div data-tooltip="This is my tooltip">
    <label>Name</label>
    <input type="text" />
</div>

div:hover:before {
    content: attr(data-tooltip);
    position: absolute;
    padding: 5px 10px;
    margin: -3px 0 0 180px;
    background: orange;
    color: white;
    border-radius: 3px;
}

div:hover:after {
    content: '';
    position: absolute;
    margin: 6px 0 0 3px;
    width: 0;
    height: 0;
    border-top: 5px solid transparent;
    border-right: 10px solid orange;
    border-bottom: 5px solid transparent;
}

input[type="text"] {
    width: 125px;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

4

সবচেয়ে সহজ উপায় হ'ল উপাদানটি এবং পাত্রে অভ্যন্তরের সরঞ্জামদণ্ডের উপাদানটি সেট position: relativeকরে position: absoluteএটি পিতামাতার সাথে সম্পর্কিত হতে পারে (উপাদান রয়েছে)। উদাহরণ স্বরূপ:

<div style="background: yellow;">
    <div style="display: inline-block; position: relative; background: pink;">
        <label>Name</label>
        <input type="text" />

        <div style="background: #e5e5e5; position: absolute; top: -10px; left: 0; right: 0;">
            Tooltip text
        </div>
    </div>
</div>

4

আপনি শিরোনাম ব্যবহার করতে পারেন। এটি প্রায় সব কিছুর জন্য কাজ করবে

<div title="Great for making new friends through cooperation.">

<input script=JavaScript type=button title="Click for a compliment" onclick="window.alert('Your hair reminds me of a sunset across a prairie')" value="making you happy">

<table title="Great job working for those who understand the way i feel">

এইচটিএমএল উইন্ডোতে দৃশ্যমান এবং title="whatever tooltip you'd like"এর ট্যাগের ভিতরে একটি সন্নিবেশ করানো যায় এমন কোনও ট্যাগের কথা ভাবুন এবং আপনি নিজেরাই একটি টুলটিপ পেয়েছেন।


আপনি কেন এত কম ভোট পেয়েছিলেন তা আমি বুঝতে পারি না। আমি নিশ্চিত ছিলাম যে একটি সহজ সমাধান আছে তবে লোকেরা পাশাপাশি ডাব্লু 3 স্কুলগুলিও এই জাতীয় কোনও সহজ বিষয়টির জন্য জটিল সমাধান নিয়ে আসে। ধন্যবাদ.
schlingel

4

আপনি এই সময়কালে onmouseoverএবং এর onmouseoutমতো একটি শিশু ডিভ টগল করতে পারেন :

function Tooltip(el, text) {
  el.onmouseover = function() {
    el.innerHTML += '<div class="tooltip">' + text + '</div>' 
    }
  el.onmouseout = function() {
    el.removeChild(el.querySelector(".tooltip"))
  }
}

//Sample Usage
Tooltip(document.getElementById("mydiv"),"hello im a tip div")

স্ট্যাক স্নিপেটস এবং জেএসফিডেলের উদাহরণ


3
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery UI tooltip</title>
  <link rel="stylesheet" href="http://code.jquery.com/ui/1.11.0/themes/smoothness/jquery-ui.css">
  <script src="http://code.jquery.com/jquery-1.10.2.js"></script>
  <script src="http://code.jquery.com/ui/1.11.0/jquery-ui.js"></script>  
  <script>
  $(function() {
    $("#tooltip").tooltip();
  });
  </script>
</head>
<body>
<div id="tooltip" title="I am tooltip">mouse over me</div>
</body>
</html>

আপনি টুলটিপ শৈলীটিও কাস্টমাইজ করতে পারেন। দয়া করে এই লিঙ্কটি উল্লেখ করুন: http://jqueryui.com/tooltip/#custom-style


3

একটি CSS3- কেবল সমাধান হতে পারে:

সিএসএস 3:

div[id^="tooltip"]:after {content: attr(data-title); background: #e5e5e5; position: absolute; top: -10px; left:  0; right: 0; z-index: 1000;}

HTML5 এর:

<div style="background: yellow;">
    <div id="tooltip-1" data-title="Tooltip Text" style="display: inline-block; position: relative; background: pink;">
        <label>Name</label>
        <input type="text" />
    </div>
</div>

তারপরে আপনি tooltip-2একইভাবে একটি ডিভি তৈরি করতে পারেন ... আপনি অবশ্যই titleগুণাবলীর পরিবর্তে বৈশিষ্ট্যটি ব্যবহার করতে পারেন data


1
আপনি আরও কিছু দৃষ্টান্ত চান এমন স্টাইল করতে কোনও আইডি ব্যবহার করবেন না কেন এবং [id^=tooltip]যখন আপনি সবেমাত্র একটি ক্লাস ব্যবহার করতে পারতেন এবং তখন নির্বাচকটি ব্যবহার করবেন কেন .tooltip?
স্টিফান মুলার

তুমি ঠিক বলছো. আমি আইডি দিয়ে শুরু করেছি, তাই এটি অনুসরণ করে এবং এটি সম্পূর্ণরূপে মিস করেছি। তবে ওহে, কেউ এর দ্বারা উপকৃত হতে পারে। ওহ, div[data-title])
যাইহোক

3

এটা চেষ্টা কর. আপনি এটি কেবল সিএসএস দিয়ে করতে পারেন এবং আমি কেবলমাত্র data-titleটুলটিপের জন্য বৈশিষ্ট্য যুক্ত করেছি ।

.tooltip{
  position:relative;
  display: inline-block;
}
.tooltip[data-title]:hover:after {
  content: attr(data-title);
  padding: 4px 8px;
  color: #fff;
  position: absolute;
  left: 0;
  top: 110%;
  white-space: nowrap;  
  border-radius: 5px;  
  background:#000;
}
<div data-title="My tooltip" class="tooltip">
    <label>Name</label>
    <input type="text"/>
</div>
    


3

আমি তিন ধরণের বিবর্ণ প্রভাবগুলি বিকাশ করেছি:

/* setup tooltips */
    .tooltip {
      position: relative;
    }
    .tooltip:before,
    .tooltip:after {
      display: block;
      opacity: 0;
      pointer-events: none;
      position: absolute;
    }
    .tooltip:after {
    	border-right: 6px solid transparent;
    	border-bottom: 6px solid rgba(0,0,0,.75); 
      border-left: 6px solid transparent;
      content: '';
      height: 0;
        top: 20px;
        left: 20px;
      width: 0;
    }
    .tooltip:before {
      background: rgba(0,0,0,.75);
      border-radius: 2px;
      color: #fff;
      content: attr(data-title);
      font-size: 14px;
      padding: 6px 10px;
        top: 26px;
      white-space: nowrap;
    }

    /* the animations */
    /* fade */
    .tooltip.fade:after,
    .tooltip.fade:before {
      transform: translate3d(0,-10px,0);
      transition: all .15s ease-in-out;
    }
    .tooltip.fade:hover:after,
    .tooltip.fade:hover:before {
      opacity: 1;
      transform: translate3d(0,0,0);
    }

    /* expand */
    .tooltip.expand:before {
      transform: scale3d(.2,.2,1);
      transition: all .2s ease-in-out;
    }
    .tooltip.expand:after {
      transform: translate3d(0,6px,0);
      transition: all .1s ease-in-out;
    }
    .tooltip.expand:hover:before,
    .tooltip.expand:hover:after {
      opacity: 1;
      transform: scale3d(1,1,1);
    }
    .tooltip.expand:hover:after {
      transition: all .2s .1s ease-in-out;
    }

    /* swing */
    .tooltip.swing:before,
    .tooltip.swing:after {
      transform: translate3d(0,30px,0) rotate3d(0,0,1,60deg);
      transform-origin: 0 0;
      transition: transform .15s ease-in-out, opacity .2s;
    }
    .tooltip.swing:after {
      transform: translate3d(0,60px,0);
      transition: transform .15s ease-in-out, opacity .2s;
    }
    .tooltip.swing:hover:before,
    .tooltip.swing:hover:after {
      opacity: 1;
      transform: translate3d(0,0,0) rotate3d(1,1,1,0deg);
    }

    /* basic styling: has nothing to do with tooltips: */
    h1 {
      padding-left: 50px;
    }
    ul {
      margin-bottom: 40px;
    }
    li {
      cursor: pointer; 
      display: inline-block; 
      padding: 0 10px;
    }
 <h1>FADE</h1>

      <div class="tooltip fade" data-title="Hypertext Markup Language">
      <label>Name</label>
      <input type="text"/>
      </div>
      

    <h1>EXPAND</h1>

      <div class="tooltip expand" data-title="Hypertext Markup Language">
      <label>Name</label>
      <input type="text"/>
      </div>
      

    <h1>SWING</h1>

      <div class="tooltip swing" data-title="Hypertext Markup Language"> 
      <label>Name</label>
      <input type="text"/>
      </div>
     


3

এখানে একটি সাধারণ টুলটিপ বাস্তবায়ন যা আপনার মাউসের অবস্থানের পাশাপাশি আপনার উইন্ডোর উচ্চতা এবং প্রস্থকে ધ્યાનમાં রাখে:

function showTooltip(e) {
  var tooltip = e.target.classList.contains("tooltip")
      ? e.target
      : e.target.querySelector(":scope .tooltip");
  tooltip.style.left =
      (e.pageX + tooltip.clientWidth + 10 < document.body.clientWidth)
          ? (e.pageX + 10 + "px")
          : (document.body.clientWidth + 5 - tooltip.clientWidth + "px");
  tooltip.style.top =
      (e.pageY + tooltip.clientHeight + 10 < document.body.clientHeight)
          ? (e.pageY + 10 + "px")
          : (document.body.clientHeight + 5 - tooltip.clientHeight + "px");
}

var tooltips = document.querySelectorAll('.couponcode');
for(var i = 0; i < tooltips.length; i++) {
  tooltips[i].addEventListener('mousemove', showTooltip);
}
.couponcode {
    color: red;
    cursor: pointer;
}

.couponcode:hover .tooltip {
    display: block;
}

.tooltip {
    position: absolute;
    white-space: nowrap;
    display: none;
    background: #ffffcc;
    border: 1px solid black;
    padding: 5px;
    z-index: 1000;
    color: black;
}
Lorem ipsum dolor sit amet, <span class="couponcode">consectetur
adipiscing<span class="tooltip">This is a tooltip</span></span>
elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi
ut aliquip ex ea commodo consequat. Duis aute irure dolor in <span
class="couponcode">reprehenderit<span class="tooltip">This is
another tooltip</span></span> in voluptate velit esse cillum dolore eu
fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident,
sunt in culpa qui officia deserunt mollit anim id est <span
class="couponcode">laborum<span class="tooltip">This is yet
another tooltip</span></span>.

( এই ফিডলটিও দেখুন )


2

কোনও এপিআই ব্যবহার না করে আপনি খাঁটি সিএসএস এবং জ্যাকুরি ডেমো ব্যবহার করে এর মতোও কিছু করতে পারেন

এইচটিএমএল

<div class="pointer_tooltip"> 
    Click & Drag to draw the area
</div>

সিএসএস

.pointer_tooltip{
  width : auto;
  height : auto;
  padding : 10px;
  border-radius : 5px;
  background-color : #fff;
  position: absolute;
}

jQuery

$(document).mousemove(function( event ) {
    var pageCoords = "( " + event.pageX + ", " + event.pageY + " )";   

    //set the actuall width
    $('.pointer_tooltip').width($('.pointer_tooltip').width());
    var position_top = event.pageY+18;
    var position_left = event.pageX-60;          
    var width=$('body').width()-$('.pointer_tooltip').width();

    //check if left not minus
    if(position_left<0){
      position_left=10;
    }else if(position_left > width){
     position_left=width-10;
    }       


    $('.pointer_tooltip').css('top',position_top+'px');
    $('.pointer_tooltip').css('left',position_left+'px');
});

2

আপনি খাঁটি সিএসএস ব্যবহার করে টুলটিপ তৈরি করতে পারেন thisএটি চেষ্টা করুন ope আশা করি এটি আপনার সমস্যার সমাধান করতে সহায়তা করবে।

এইচটিএমএল

<div class="tooltip"> Name
    <span class="tooltiptext">Add your tooltip text here.</span>
</div>

সিএসএস

.tooltip {
        position: relative;
        display: inline-block;
        cursor: pointer;
    }

    .tooltip .tooltiptext {
        visibility: hidden;
        width: 270px;
        background-color: #555;
        color: #fff;
        text-align: center;
        border-radius: 6px;
        padding: 5px 0;
        position: absolute;
        z-index: 1;
        bottom: 125%;
        left: 50%;
        margin-left: -60px;
        opacity: 0;
        transition: opacity 1s;
    }

    .tooltip .tooltiptext::after {
        content: "";
        position: absolute;
        top: 100%;
        left: 50%;
        margin-left: -5px;
        border-width: 5px;
        border-style: solid;
        border-color: #555 transparent transparent transparent;
    }

    .tooltip:hover .tooltiptext {
        visibility: visible;
        opacity: 1;
    }

2

টুলটিপস পজিশন সিএসএস

      div {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%); /* IE 9 */
        -webkit-transform: translate(-50%, -50%); /* Chrome, Safari, Opera */	
							
        text-align: center;
      }  					
	
      .tooltip {
        position: relative;
        display: inline-block;
        border-bottom: 1px dotted black;
      }

      .tooltip .tooltiptext {
        visibility: hidden;
        width: 120px;
        background-color: black;
        color: #fff;
        //text-align: center;
        border-radius: 6px;
        padding: 5px 0;

        /* Position the tooltip */
        position: absolute;
        z-index: 1;
      }

      .tooltip:hover .tooltiptext {
        visibility: visible;
      }		
					
      .toolLeft {
        top: -5px;
        right: 105%;
      }					
					
      .toolRight {
        top: -5px;
        left: 105%;
      }
					
      .toolTop {
        bottom: 100%;
        left: 50%;
        margin-left: -60px;
      }
					
      .toolBottom {
        top: 100%;
        left: 50%;
        margin-left: -60px;
      }
    <div>
			
      <div class="tooltip">Top <span class="tooltiptext toolTop">Tooltip text</span></div><br />
      <div class="tooltip">Left  <span class="tooltiptext toolLeft">Tooltip text</span></div><br />			
      <div class="tooltip">Right <span class="tooltiptext toolRight">Tooltip text</span></div><br />
      <div class="tooltip">Bottom  <span class="tooltiptext toolBottom">Tooltip text</span></div><br />			
			
    </div>


2

আপনি সাধারণ সিএসএস দিয়ে এটি করতে পারেন ... jsfiddleএখানে উদাহরণটি দেখতে পারেন

টুলটিপ জন্য সিএসএস কোড নীচে

[data-tooltip] {
  position: relative;
  z-index: 2;
  cursor: pointer;
}

/* Hide the tooltip content by default */
[data-tooltip]:before,
[data-tooltip]:after {
  visibility: hidden;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  filter: progid: DXImageTransform.Microsoft.Alpha(Opacity=0);
  opacity: 0;
  pointer-events: none;
}

/* Position tooltip above the element */
[data-tooltip]:before {
  position: absolute;
  bottom: 150%;
  left: 50%;
  margin-bottom: 5px;
  margin-left: -80px;
  padding: 7px;
  width: 160px;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
  background-color: #000;
  background-color: hsla(0, 0%, 20%, 0.9);
  color: #fff;
  content: attr(data-tooltip);
  text-align: center;
  font-size: 14px;
  line-height: 1.2;
}

/* Triangle hack to make tooltip look like a speech bubble */
[data-tooltip]:after {
  position: absolute;
  bottom: 150%;
  left: 50%;
  margin-left: -5px;
  width: 0;
  border-top: 5px solid #000;
  border-top: 5px solid hsla(0, 0%, 20%, 0.9);
  border-right: 5px solid transparent;
  border-left: 5px solid transparent;
  content: " ";
  font-size: 0;
  line-height: 0;
}

/* Show tooltip content on hover */
[data-tooltip]:hover:before,
[data-tooltip]:hover:after {
  visibility: visible;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
  filter: progid: DXImageTransform.Microsoft.Alpha(Opacity=100);
  opacity: 1;
}

1

এই প্রশ্নের উত্তর প্রচুর আছে তবে এখনও এটি কারও সাহায্য করবে। এটি সমস্ত বাম, ডান, উপরে, নীচের অবস্থানের জন্য।

এখানে সিএসএস:

    .m-tb-5 {
        margin-top: 2px;
        margin-bottom: 2px;
    }
    [data-tooltip] {
        display: inline-block;
        position: relative;
        cursor: help;
        padding: 3px;
    }
    /* Tooltip styling */
    [data-tooltip]:before {
        content: attr(data-tooltip);
        display: none;
        position: absolute;
        background: #000;
        color: #fff;
        padding: 3px 6px;
        font-size: 10px;
        line-height: 1.4;
        min-width: 100px;
        text-align: center;
        border-radius: 4px;
    }
    /* Dynamic horizontal centering */
    [data-tooltip-position="top"]:before,
    [data-tooltip-position="bottom"]:before {
        left: 50%;
        -ms-transform: translateX(-50%);
        -moz-transform: translateX(-50%);
        -webkit-transform: translateX(-50%);
        transform: translateX(-50%);
    }
    /* Dynamic vertical centering */
    [data-tooltip-position="right"]:before,
    [data-tooltip-position="left"]:before {
        top: 50%;
        -ms-transform: translateY(-50%);
        -moz-transform: translateY(-50%);
        -webkit-transform: translateY(-50%);
        transform: translateY(-50%);
    }
    [data-tooltip-position="top"]:before {
        bottom: 100%;
        margin-bottom: 6px;
    }
    [data-tooltip-position="right"]:before {
        left: 100%;
        margin-left: 6px;
    }
    [data-tooltip-position="bottom"]:before {
        top: 100%;
        margin-top: 6px;
    }
    [data-tooltip-position="left"]:before {
        right: 100%;
        margin-right: 6px;
    }

    /* Tooltip arrow styling/placement */
    [data-tooltip]:after {
        content: '';
        display: none;
        position: absolute;
        width: 0;
        height: 0;
        border-color: transparent;
        border-style: solid;
    }
    /* Dynamic horizontal centering for the tooltip */
    [data-tooltip-position="top"]:after,
    [data-tooltip-position="bottom"]:after {
        left: 50%;
        margin-left: -6px;
    }
    /* Dynamic vertical centering for the tooltip */
    [data-tooltip-position="right"]:after,
    [data-tooltip-position="left"]:after {
        top: 50%;
        margin-top: -6px;
    }
    [data-tooltip-position="top"]:after {
        bottom: 100%;
        border-width: 6px 6px 0;
        border-top-color: #000;
    }
    [data-tooltip-position="right"]:after {
        left: 100%;
        border-width: 6px 6px 6px 0;
        border-right-color: #000;
    }

    [data-tooltip-position="left"]:after {
        right: 100%;
        border-width: 6px 0 6px 6px;
        border-left-color: #000;
    }
    /* Show the tooltip when hovering */
    [data-tooltip]:hover:before,
    [data-tooltip]:hover:after {
        display: block;
        z-index: 50;
    }

এবং এইচটিএমএল ট্যাগটি এর মতো হতে পারে:

<p data-tooltip-position="right" data-tooltip="Some tooltip text here" title="">Text Here</p>

<p data-tooltip-position="left" data-tooltip="Some tooltip text here" title="">Text Here</p>

<p data-tooltip-position="top" data-tooltip="Some tooltip text here" title="">Text Here</p>

<p data-tooltip-position="bottom" data-tooltip="Some tooltip text here" title="">Text Here</p>


1

আপনি বুটস্ট্র্যাপ টুলটিপস চেষ্টা করতে পারেন।

$(function () {
  $('[data-toggle="tooltip"]').tooltip()
})

এখানে আরও পড়া


1

আপনি এটি টুলটিপ হিসাবেও ব্যবহার করতে পারেন ... এটি একইরকম কাজ করে তবে আপনাকে অতিরিক্ত ট্যাগ লিখতে হবে এটিতে ..

<abbr title="THis is tooltip"></abbr>

1

এবং আমার সংস্করণ

.tooltip{
display: inline;
position: relative; /** very important set to relative*/
}

.tooltip:hover:after{
background: #333;
background: rgba(0,0,0,.8);
border-radius: 5px;
bottom: 26px;
color: #fff;
content: attr(title); /**extract the content from the title */
left: 20%;
padding: 5px 15px;
position: absolute;
z-index: 98;
width: 220px;
}

.tooltip:hover:before{
border: solid;
border-color: #333 transparent;
border-width: 6px 6px 0 6px;
bottom: 20px;
content: "";
left: 50%;
position: absolute;
z-index: 99;
}

তারপরে এইচটিএমএল

<div title="This is some information for our tooltip." class="tooltip">bar </div>

1

আজলে একটি দুর্দান্ত বাস্তবায়ন আছে। আমার লক্ষ্য উপাদানটি ক্লাসের নাম সহ "আমার_ আইকন" আইকন হিসাবেবলুন। অ্যাজলের অ্যাড_টোলটিপ ফাংশনটিব্যবহার করে কেবল উপাদানটিকে লক্ষ্য করুন:

az.add_tooltip('my_icon', 1, {
    "this_class" : "my_tooltip",
    "text" : "HELLO THERE!"
})

এখানে চিত্র বর্ণনা লিখুন

আপনি সাধারণ সিএসএস স্টাইলিং ব্যবহার করে টুলটিপের অবস্থান ও স্টাইলিং নিয়ন্ত্রণ করতে পারেন । উপরের টুলটিপটি নীচে স্টাইল করা হয়েছে:

az.style_tooltip('my_tooltip', 1, {
    "background" : "black",
    "margin-left" : "10px",
    "color" : "hotpink",
    "font-weight" : "bold",
    "font-family" : "Arial",
    "padding" : "10px",
    "border-radius" : "10px"
})

আমরা করতে পারেন একটি চিত্র যোগ টুলটিপ, একটি "IMAGE_PATH" নির্দিষ্ট করে:

az.add_tooltip('my_icon', 1, {
    "this_class" : "my_tooltip",
    "text" : "HELLO THERE!",
    "image_path" : "https://cdn-images-1.medium.com/max/1874/1*toepgVwopga9TYFpSkSxXw.png",
    "image_class" : "my_image"
})

এখানে চিত্র বর্ণনা লিখুন

যেহেতু আমরা উপরের একটি "চিত্র_ক্লাস" নির্দিষ্ট করেছি, তাই আমরা এবার চিত্রটিকে লক্ষ্য করে একই স্টাইল_টোলটিপ ফাংশনটি ব্যবহার করে চিত্রটি স্টাইল করতে পারি । উপরের গেমিং চিত্রটি নীচে স্টাইল করা হয়েছিল:

az.style_tooltip('my_image', 1, {
    "width" : "50px",
    "align" : "center"
})

বৃহত্তর চিত্র ব্যবহার করে এখানে একটি উদাহরণ দেওয়া হয়েছে :

এখানে চিত্র বর্ণনা লিখুন

... নিম্নলিখিত হিসাবে যুক্ত এবং স্টাইলযুক্ত:

az.add_tooltip('my_icon', 1, {
    "this_class" : "my_tooltip",
    "text" : "MORE INFO<br><br>",
    "image_path" : "https://i0.wp.com/proactive.ie/wp-content/uploads/2017/11/Infographic.jpg?resize=1240%2C1062&ssl=1",
    "image_class" : "my_image"
})

az.style_tooltip('my_image', 1, {
    "width" : "500px"
})

এখানে পুরো কোডের একটি জিআইএসটি রয়েছে।

আপনি এই ফিডল মধ্যে প্রায় খেলতে পারেন ।


0

একটি ডিভের সাথে টুলটিপ যুক্ত করুন

<style>
.tooltip {
  position: relative;
  display: inline-block;
  border-bottom: 1px dotted black;
}

.tooltip .tooltiptext {
  visibility: hidden;
  width: 120px;
  background-color: black;
  color: #fff;
  text-align: center;
  border-radius: 6px;
  padding: 5px 0;

  /* Position the tooltip */
  position: absolute;
  z-index: 1;
}

.tooltip:hover .tooltiptext {
  visibility: visible;
}
</style>

<div class="tooltip">Hover over me
  <span class="tooltiptext">Information</span>
</div>


-1
<div title="tooltip text..">
    Your Text....
</div>

আপনার ডিভ উপাদানটিতে টুলটিপ যুক্ত করার সর্বাধিক উপায়।


3
দুঃখিত, কার্তিক, একই কথা একাধিক উত্তর এবং মন্তব্যে বলা হয়েছিল। আপনার অবদান কিছুই যোগ করে না :(
brasofilo
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.