這是一個很實用的問題,簡單來說:
理論上 Bootstrap 的 JS 可以放在 <head>
,但實務上(尤其是 Bootstrap 4 或以前版本)建議還是放在 <body>
結尾處。
✅ 你可以這樣放(傳統寫法):
<head>
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="bootstrap.min.css">
</head>
<body>
<!-- 頁面內容 -->
<!-- jQuery、Popper.js、Bootstrap JS(建議放在這裡) -->
<script src="jquery.min.js"></script>
<script src="popper.min.js"></script>
<script src="bootstrap.min.js"></script>
</body>
❓那為什麼 JS 不建議放在 <head>
?
- 阻塞渲染:瀏覽器會先下載並執行
<head>
裡的 JavaScript,才會繼續渲染 HTML,導致頁面載入變慢。
- DOM 尚未建立:很多 Bootstrap 插件(像 Modal、Collapse)會需要操作 DOM,若放在
<head>
,有可能 DOM 尚未生成,導致無效或錯誤。
✅ 如果你硬是想放在 <head>
,那該怎麼辦?
那你必須確保 JS 的執行延後,可以用 defer
:
<head>
<link rel="stylesheet" href="bootstrap.min.css">
<script src="jquery.min.js" defer></script>
<script src="popper.min.js" defer></script>
<script src="bootstrap.min.js" defer></script>
</head>
defer
會讓這些 JS 檔案下載時不阻塞 HTML,且等 DOM 全部建立完後再執行。
🔚 總結
- Bootstrap CSS 放
<head>
是正確且必要的。
- Bootstrap JS 若放
<head>
,請務必搭配 defer
屬性。
- 最穩定寫法仍是把 JS 放在
<body>
結尾處,這樣最符合 Bootstrap 官方建議與瀏覽器執行流程。
有想測試或實作的範例我也可以幫你補上。