Hinweis:
Abhängig von Ihrer Bootstrap-Version (vor 3.3 oder nicht) benötigen Sie möglicherweise eine andere Antwort.
Beachten Sie die Hinweise.
Wenn ich QuickInfos (Bewegen Sie den Mauszeiger über die Zelle) oder Popover in diesem Code aktiviere, nimmt die Größe der Tabelle zu. Wie kann ich das vermeiden?
Hier emptyRow - Funktion zum Generieren von tr mit 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>
danke im Rat!
Antworten:
Sie benötigen ein Element innerhalb eines zu erstellen
td
und anzuwenden ein Tooltip , um es, wie dies , weil ein Tooltip selbst ein div ist, und wenn es nach einem platzierttd
Element bremst Tabellenlayout.Dieses Problem wurde mit der neuesten Version von Bootstrap eingeführt. Hier gibt es laufende Diskussionen über Korrekturen auf GitHub . Hoffentlich enthält die nächste Version die festen Dateien.
quelle
Einfache Lösung
Im
.tooltip()
Aufruf, setzen Sie diecontainer
Option aufbody
:Alternativ können Sie dasselbe tun, indem Sie das
data-container
Attribut verwenden:Warum funktioniert das?
Dies löst das Problem, da standardmäßig der Tooltip vorhanden ist
display: block
und das Element an der Stelle eingefügt wird, von der aus es aufgerufen wurde. Aufgrunddisplay: block
dessen wirkt sich dies in einigen Fällen auf den Seitenfluss aus, dh es werden andere Elemente nach unten gedrückt.Wenn Sie den Container auf das body-Element setzen, wird der Tooltip an den body angehängt, anstatt an den Ort, von dem aus er aufgerufen wurde, sodass andere Elemente nicht betroffen sind, da nichts "heruntergedrückt" werden muss.
quelle
Wenn Sie vermeiden möchten, die Tabelle beim Anwenden eines Tooltips auf ein
<td>
Element zu beschädigen , können Sie den folgenden Code verwenden:Ihr HTML könnte so aussehen:
Dies funktioniert sogar mit dynamisch geladenen Inhalten. Zum Beispiel bei Verwendung mit Datentabellen
quelle
Ich möchte der akzeptierten Antwort etwas Präzision verleihen. Ich habe mich aus Gründen der Lesbarkeit für das Antwortformat entschieden.
Im Moment ist es die Lösung , Ihren Tooltip in ein div zu packen. Es sind jedoch einige Änderungen erforderlich, wenn Ihr gesamtes
<td>
Tooltip angezeigt werden soll (aufgrund von Bootstrap-CSS). Eine einfache Möglichkeit besteht darin,<td>
die Polsterung auf den Wrapper zu übertragen:HTML
JS (jQuery)
quelle
<td>
Element wird die gesamte Tabelle, wie in der ursprünglichen Frage angegeben, und jede Antwort beschädigt. Deshalb haben wir uns alle dafür entschieden, ein weiteres Element hinzuzufügen. Trotzdem sind mir die Bootstrap 4-Neuheiten nicht bekannt, und dieser Fehler wurde möglicherweise behoben.container
wurde 2014 eingeführt, 2 Jahre nach dieser Frage. Vielen Dank für Ihren Kommentar. Ich werde einige Änderungen vornehmen, um diese Option zu aktivieren und sicherzustellen, dass dieser Fehler nicht mit den neuesten Versionen von Bootstrap zusammenhängt.Sie sollten Tooltip in der datierbaren Funktion fnDrawCallback initialisieren
"fnDrawCallback": function (data, type, full, meta) { $('[data-toggle="tooltip"]').tooltip({ placement: 'right', title: 'heyo', container: 'body', html: true }); },
Und definieren Sie Ihre Spalte wie folgt
quelle
Wenn Sie datatable for table verwenden, wird es full verwendet
quelle
Wenn Sie Bootstrap-Anweisungen für AngularJS verwenden, verwenden Sie das Tooltip-Append-to-Body-Attribut.
quelle