Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

bootstrap "tooltip" and "popover" add extra size in table

Note:
Depending on you Bootstrap version (prior to 3.3 or not), you may need a different answer.
Pay attention to the notes.

When I activate tooltips (hover over the cell) or popovers in this code, size of table is increasing. How can I avoid this?

Here emptyRow - function to generate tr with 100

<html> <head>     <title></title>     <script type="text/javascript" language="javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>     <link type="text/css" rel="stylesheet" href="http://twitter.github.com/bootstrap/assets/css/bootstrap.css">     <script type="text/javascript" language="javascript" src="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.2.1/bootstrap.min.js"></script>     <style>         #matrix td {         width: 10px;         height: 10px;         border: 1px solid gray;          padding: 0px;      }     </style> <script> function emptyRow() {         str = '<tr>'         for (j = 0; j < 100; j++) {             str += '<td rel="tooltip" data-original-title="text"></td>'         }         str += '</tr>'         return str     }     $(document).ready(function () {         $("#matrix tr:last").after(emptyRow())         $("[rel=tooltip]").tooltip();     });     </script> </head> <body style="margin-top: 40px;"> <table id="matrix">     <tr>     </tr> </table> </body> </html> 

thank in advice!

like image 860
mishka Avatar asked Nov 07 '12 11:11

mishka


People also ask

What is the difference between popover and tooltip?

Tooltip: use tooltips to show a short text to respondents when they hover over a word or icon. Popover: use popovers to show a longer text, or when you want to have a link to an external web page. It is shown when the respondent clicks on a word or icon.


1 Answers

Note: Solution for Bootstrap 3.3+

Simple Solution

In the .tooltip() call, set the container option to body:

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

Alternatively you can do the same by using the data-container attribute:

<p data-toggle="tooltip" data-placement="left" data-container="body" title="hi">some text</p> 

Why does this work?

This solves the problem because by default, the tooltip has display: block and the element is inserted in the place it was called from. Due to the display: block, it affects the page flow in some cases, i.e pushing other elements down.

By setting the container to the body element, the tooltip is appended to the body instead of where it was called from, so it doesn't affect other elements because there is nothing to "push down".

  • Bootstrap Tooltips Documentation
like image 89
MrCode Avatar answered Oct 13 '22 06:10

MrCode