How Can I Wrap or Break Long Text/Word In A Fixed Width Span?

I received a message from someone working on a tribute project facing an issue with wrapping long text in a fixed-width span in HTML/CSS. Despite using separate files for HTML and CSS and trying different editors like VSCode and Atom, the problem persisted. Here’s a breakdown of the possible error and a solution.

Problem Code:

The user explained that their HTML file wasn’t fetching the CSS properly, leading to long words or text overflowing beyond the fixed width. This issue can be caused by several reasons, but one common mistake might be incorrect linking of the CSS file to the HTML document.

Here’s a simple example of what might have gone wrong:

Error In Code:

HTML:

<!DOCTYPE html>
<html lang="en">
<head>
<title>My Tribute Page</title>
<!-- CSS Link with Incorrect Path -->
<link rel="stylesheet" href="style.css">
</head>
<body>
<span class="fixed-width">Thisisaverylongtextwithoutanyspaceswhichdoesnotwrap</span>
</body>
</html>

CSS:

.fixed-width {
width: 200px;
/* Missing word-wrap or overflow properties */
}

Possible Issues:

  1. Incorrect CSS File Path: Make sure the path to the CSS file is correct. If the CSS file is not in the same directory as the HTML file, the path should be modified accordingly.
  2. CSS Rules Missing: The long text may overflow because the word-wrap or overflow properties are not set.

Solution:

Here’s the correct way to link the CSS and ensure that the text wraps or breaks within a fixed-width span:

Corrected HTML Code:

<!DOCTYPE html>
<html lang="en">
<head>
<title>My Tribute Page</title>
<!-- Correct CSS Link -->
<link rel="stylesheet" href="./css/style.css">
</head>
<body>
<span class="fixed-width">Thisisaverylongtextwithoutanyspaceswhichdoesnotwrap</span>
</body>
</html>

Corrected CSS Code:

.fixed-width {
width: 200px;
word-wrap: break-word; /* Ensures long words wrap */
overflow-wrap: break-word; /* Alternative method for older browsers */
border: 1px solid #000; /* Optional styling */
}

Explanation:

  • word-wrap: break-word; forces the text to break inside the span, even if it’s a long word.
  • overflow-wrap: break-word; is used as an alternative to ensure compatibility with older browsers.

This method will prevent long text from overflowing and maintain the fixed width you set for your span element.

Related blog posts