Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Selected Reading
What is to be done when text overflows the containing element with JavaScript?
When text overflows its container, JavaScript can help control the display behavior using the textOverflow property. This property works with CSS to handle overflow gracefully by adding ellipses or clipping the text.
CSS Requirements
For textOverflow to work properly, the element must have these CSS properties:
-
overflow: hidden- Hide overflowing content -
white-space: nowrap- Prevent text wrapping - Fixed width - Constrain the container size
JavaScript textOverflow Values
The textOverflow property accepts these values:
-
"clip"- Cut off text at container edge -
"ellipsis"- Show "..." where text is cut -
"visible"- Allow text to overflow (default)
Example
<!DOCTYPE html>
<html>
<head>
<style>
#myID {
border: 2px solid blue;
background-color: lightgray;
overflow: hidden;
text-overflow: visible;
width: 200px;
white-space: nowrap;
padding: 10px;
margin: 10px 0;
}
</style>
</head>
<body>
<button onclick="showEllipsis()">Show Ellipsis</button>
<button onclick="clipText()">Clip Text</button>
<button onclick="resetText()">Reset</button>
<div id="myID">
This is a very long text that will overflow the container width and demonstrate text overflow behavior.
</div>
<script>
function showEllipsis() {
document.getElementById("myID").style.textOverflow = "ellipsis";
}
function clipText() {
document.getElementById("myID").style.textOverflow = "clip";
}
function resetText() {
document.getElementById("myID").style.textOverflow = "visible";
}
</script>
</body>
</html>
Dynamic Text Overflow Control
You can also check text overflow and apply different behaviors programmatically:
<!DOCTYPE html>
<html>
<head>
<style>
.text-container {
border: 1px solid #ccc;
width: 150px;
padding: 8px;
margin: 5px 0;
overflow: hidden;
white-space: nowrap;
}
</style>
</head>
<body>
<button onclick="handleOverflow()">Handle All Overflows</button>
<div class="text-container" id="container1">
Short text
</div>
<div class="text-container" id="container2">
This is a much longer text that will definitely overflow
</div>
<div class="text-container" id="container3">
Another very long text example for demonstration
</div>
<script>
function handleOverflow() {
const containers = document.querySelectorAll('.text-container');
containers.forEach(container => {
// Check if text overflows
if (container.scrollWidth > container.clientWidth) {
container.style.textOverflow = "ellipsis";
container.title = container.textContent; // Show full text on hover
}
});
}
</script>
</body>
</html>
Key Points
-
textOverflowonly works withoverflow: hiddenandwhite-space: nowrap - Use
scrollWidthvsclientWidthto detect overflow - Add
titleattribute to show full text on hover - Ellipsis provides better user experience than clipping
Conclusion
JavaScript's textOverflow property provides elegant solutions for handling text overflow. Use "ellipsis" for better UX and combine with overflow detection for dynamic behavior.
Advertisements
