You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bootstrap Tooltip布局修改及ASP.NET MVC Core中显示异常解决咨询

Fixing Bootstrap 4 Tooltip Position and Styling in ASP.NET Core MVC

Hey John, let's get those tooltips working properly! The issues you're facing—random positioning and missing styling—happen because Bootstrap 4 tooltips don't initialize automatically just by adding data-* attributes. You need to add a bit of JavaScript to trigger them, and ensure all dependencies are set up correctly. Here's how to fix it step by step:

1. Verify Required Dependencies Are Loaded

Bootstrap 4 tooltips rely on two libraries to work correctly:

  • jQuery: Must be loaded before Bootstrap JS
  • Popper.js: Required for proper tooltip positioning

Make sure your layout (like _Layout.cshtml) includes these in the correct order at the end of the page (before closing </body> tag):

<!-- jQuery first -->
<script src="~/lib/jquery/jquery.min.js"></script>
<!-- Popper.js (handles tooltip positioning logic) -->
<script src="~/lib/popper.js/umd/popper.min.js"></script>
<!-- Bootstrap JS -->
<script src="~/lib/bootstrap/js/bootstrap.min.js"></script>

Also double-check that you're loading Bootstrap 4 CSS in the <head> section:

<link rel="stylesheet" href="~/lib/bootstrap/css/bootstrap.min.css" />

2. Initialize Tooltips with JavaScript

Add this script to your view or layout (right after the Bootstrap JS file) to activate all tooltips on the page:

$(document).ready(function() {
    // Initialize all elements with data-toggle="tooltip"
    $('[data-toggle="tooltip"]').tooltip({
        // Fix positioning issues by attaching tooltip to body
        container: 'body',
        // Enforce the top placement you specified
        placement: 'top'
    });
});

If you're working with dynamic content (elements loaded after page load), use event delegation instead to ensure tooltips work for new elements:

$(document).on('mouseenter', '[data-toggle="tooltip"]', function() {
    $(this).tooltip('show');
}).on('mouseleave', '[data-toggle="tooltip"]', function() {
    $(this).tooltip('hide');
});

3. Fix Random Positioning

The inconsistent placement usually stems from parent elements having conflicting CSS (like overflow: hidden or custom positioning). Adding container: 'body' in the tooltip initialization ensures the tooltip is appended directly to the <body> tag, avoiding interference from parent styles and locking in your desired top placement.

4. Your Updated Input Code

Your existing input markup is perfectly valid—just keep it as-is with the data-* attributes intact:

<input asp-for="b5" type="text" class="form-control" 
       data-toggle="tooltip" data-placement="top" 
       title="Update the number to match your case.">

5. Test the Tooltip

After setting up the dependencies and initialization script, reload your page. Hover over the input field—you should see the standard Bootstrap 4 tooltip: a light-colored bubble with an arrow pointing to the input, consistent top placement, and proper padding/text styling.

If you still run into issues:

  • Check browser dev tools for console errors (e.g., missing jQuery/Popper libraries)
  • Make sure no custom CSS is overriding Bootstrap's .tooltip classes
  • Confirm you're using Bootstrap 4 (not Bootstrap 5, which uses different tooltip initialization syntax)

内容的提问来源于stack exchange,提问作者John John

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 17:22:26