Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Cách đặt quy tắc ngắt dòng cho script non-CJK (wordBreak) bằng JavaScript

Thuộc tính wordBreak kiểm soát cách ngắt dòng cho các script **không phải CJK** (Chinese, Japanese, Korean). Giá trị: normal (mặc định), break-all (ngắt ở bất kỳ ký tự nào), keep-all (không ngắt CJK), break-word (ngắt từ dài - deprecated, dùng overflow-wrap).

Ví dụ minh họa

Mã sau bật break-all cho div宽度固定, khiến văn bản liền mạch ngắt xuống dòng khi nhấn nút:

<!DOCTYPE html>
<html>
<head>
  <style>
    #box {
      width: 150px;
      height: 120px;
      background-color: lightblue;
      border: 1px solid black;
      padding: 10px;
    }
  </style>
</head>
<body>
  <button onclick="setWordBreak()">Đặt word-break = break-all</button>
  <div id="box">
    ĐâyLàVănBảnDemoKhôngCóKhoảngTrắngĐểTestWordBreakĐâyLàVănBảnDemoKhôngCóKhoảngTrắngĐểTestWordBreak
  </div>
  <script>
    function setWordBreak() {
      document.getElementById("box").style.wordBreak = "break-all";
      /* Văn bản dài không space sẽ bị ngắt mạnh ở bất kỳ ký tự nào để vừa hộp */
    }
  </script>
</body>
</html>

Các giá trị wordBreak

Giá trị Hành vi Dùng cho
normalNgắt theo quy tắc ngôn ngữ (CJK ngắt ký tự, non-CJK ngắt từ)Văn bản thông thường
break-allNgắt ở **bất kỳ ký tự** nào (non-CJK cũng ngắt như CJK)Mã code, URL dài, ID, hash không có space
keep-all**Không ngắt** CJK (chỉ ngắt ở space/punctuation)Văn bản CJK muốn giữ từ nguyên vẹn
break-wordNgắt từ dài nếu không vừa (deprecated)Dùng overflow-wrap: break-word thay thế

wordBreak vs overflowWrap (wordWrap)

Thuộc tính Ngắt ở đâu Khi nào dùng
wordBreak: break-allBất kỳ ký tự nàoMã, hash, ID — chấp nhận ngắt giữa từ
overflow-wrap: break-wordChỉ ngắt từ quá dài khi **không có chỗ khác**Văn bản thường — ưu tiên giữ từ nguyên vẹn

Khuyến nghị: Dùng overflow-wrap: break-word (tên cũ: wordWrap) cho văn bản thường. Chỉ dùng wordBreak: break-all khi thực sự cần ngắt ký tự đơn lẻ.