div根據內容高度自適應地調整高度
阿新 • • 發佈:2020-12-30
需求為根據來訪理由的內容高度,自適應地調整來訪理由這個橫欄的高度。
原效果圖如下:
其html為:
解決方法:
我們設定這個橫欄的高度為高度自適應。即
.visitReasonArea{ height: auto; }
效果如下:
我們發現並沒有生效,原因在於left和right都設定了絕對定位。因此,我們可以通過position:unset消除right的絕對定位。
原css為
#visitReason{ width: 60%; }
我們改為:
#visitReason{ width: 60%; position: unset; }
效果如下:
但是,我們發現width的作用失效了,原因為span在浮動或絕對定位後可以設定寬高,但是unset之後,span沒有了絕對定位,而普通的span無法設定寬高。
因為,我們把span改為內聯塊級元素。
即
#visitReason{ width: 60%; position: unset; display: inline-block; }
效果如下:
但是,我們發現right把left蓋住了,我們可以設定left為相對定位,從而佔據原有空間,而不被蓋住。
即給left新增一個類,名叫visitReasonLeft,並設定其為相對定位。
<div class="item visitReasonArea"> <span class="left visitReasonLeft" data-i18n-text="visitReason"></span> <span class="right" id="visitReason"></span> </div>
.visitResonLeft{ position: relative; }
效果如下:
但是,來訪理由並未右對齊,我們可以設定right右浮動,即
#visitReason{ width: 60%; position: unset; display: inline-block; float: right; }
效果如下:
由於,right變成浮動元素,因此脫離了文件流,使得高度無法自適應。
因此,我們需要清除浮動。
即加上clearfix。
.clearfix{ clear:both; }
<div class="item visitReasonArea"> <span class="left visitResonLeft" data-i18n-text="visitReason"></span> <span class="right" id="visitReason"></span> <div class="clearfix"></div> </div>
即可實現高度自適應。
效果如下: