Element overlapping when absolute positioning applied on a Custom Tag - HTML, CSS
Fiddle example on Stack Overflow Question "Element overlapping when absolute positioning applied on a Custom Tag - HTML, CSS"
HTML
<div>
<b>An example of a bubble with no 'Absolute Position':</b>
</div>
<bubble type="normal">Hello!</bubble>
<div>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</div>
<br>
<div>
<b>An example of a bubble with 'Absolute Position':</b>
</div>
<bubble type="absoluteposition">Hello!</bubble>
<div>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</div>
<br>
<br>
<p>
<b>Problem 1:</b> The example without Absolute Position overlaps some text even after applying the Margins on Top and Bottom. It also does not listen to the custom width declared in the CSS "width: 50px;"
</p>
<p>
<b>Problem 2:</b> The example with Absolute position acts like a 'Float: Left;' style is applied so it overlays text and other content.
</p>
CSS
bubble[type=absoluteposition] {
position: absolute;
border-radius:10px;
background-color: #5e9bff;
text-align: center;
color: white;
padding: 6px;
width: 50px;
margin-top: 10px;
margin-bottom: 10px;
}
bubble[type=normal] {
border-radius:10px;
background-color: #5e9bff;
text-align: center;
color: white;
padding: 6px;
width: 50px;
}