I'm using Twitter Bootstrap to define a list with badges. I add the list elements and their badges using javascript. However, when the screen width is small, the list items always overlaps the badges, no matter what z-index value I type for them.
Here is some code:
function addListItems() {
var node = document.createElement("LI");
node.className = "list-group-item";
node.style = "z-index:1;"
var textItem = document.createTextNode("Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla...");
node.appendChild(textItem);
var notifications = document.createElement("SPAN");
notifications.className = "badge";
notifications.style = "z-index:2;"
var notificationsText = document.createTextNode("999999999999999999999");
notificationsText.style = "font-size: 350%";
notifications.appendChild(notificationsText);
node.appendChild(notifications);
document.getElementById("myList").innerHTML += node.outerHTML;
}
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
</head>
<body>
<button type="button" class="btn btn-primary" onclick="addListItems()">Add list elements with badges</button>
<ul id="myList"></ul>
</body>
</html>
Make notice that, when the second item is added to the list, it overlaps the previous added badge, even though its z-index is smaller.
Do you know how can I fix this?
Thanks.