Positioning Elements with Mixed Display and Positioning
The combination of display:inline-block and position:absolute in CSS can lead to unexpected behavior. When an element is positioned absolutely, it behaves as if it were removed from the normal flow of content, and its containing element is unaware of its height.
Inline vs. Absolute Positioning
display:inline-block allows elements to flow horizontally alongside other elements, while position:absolute removes elements from the flow and positions them according to the top, bottom, left, and right properties.
Issue with Absolute Positioning
In the provided code, the position:absolute element (.element-right-b) removes it from the flow and takes it out of consideration for the overall height calculation of the .section container. As a result, the container has no inherent height and collapses to zero.
Solutions
Specific Example for Nested Columns
To achieve nested columns with fixed positions, modify the CSS as follows:
<code class="css">.section span { display: inline-block; } .element-left { width: 200px; } .element-right { width: 100px; } .indent-1 { padding-left: 10px; } .indent-2 { padding-left: 20px; }</code>
The above is the detailed content of How to Handle Collapsing Containers When Using `display: inline-block` and `position: absolute`?. For more information, please follow other related articles on the PHP Chinese website!