我正試圖通過改變寬度,填充和邊框來有效'摺疊'div和其包含的浮動元素。在寬度,填充和邊框上平滑CSS'摺疊'過渡
我已經做了一些調查,你可以在這裏看到: http://jsfiddle.net/p38b6ndb/1
要包括樣本:
HTML:
<div>
<div class="section">
<div class="sub-section">label</div>
<div class="sub-section">field</div>
</div>
<div class="section collapsible">
<div class="sub-section">label</div>
<div class="sub-section">field</div>
</div>
<div class="section">
<div class="sub-section">label</div>
<div class="sub-section">field</div>
</div>
</div>
CSS:
.section {
float: left;
width: 25%;
}
.section.collapsible {
opacity: 1;
transition: opacity linear 1s, width linear 1s;
}
.section.collapsible.collapsed {
width: 0;
opacity: 0;
}
.sub-section {
width: 50%;
float: left;
height: 42px;
}
的場景:第二節應該崩潰,第三節跟着第一節左移。
問題:如果我有正被摺疊,當所述寬度達到崩潰一定量的div環繞,導致高度增加,推後續元素向下對DIV padding
和/或border
。
- 我試過
box-sizing: border-box
,但是這個效果也很清晰,換行效果也不錯。 - 我試圖過渡
padding
和border-width
以及width
,但它仍然包裝。我可以嘗試不同的 持續時間,但它仍然有一個奇怪的效果。 - 我試圖忽略填充和邊框,因爲它們不透明,只是 添加一個
margin-left
,但這並不影響高度和「向下推」。 - 我可以修復高度,但我實際上希望高度爲自動,因爲每個 部分可以包含各種大小的內容。
如何在帶有填充/邊界元素的div上實現這種摺疊過渡?
如果可以通過更新真正受歡迎的小提琴演示答案。
爲什麼不將字體大小轉換爲0呢? - http://jsfiddle.net/p38b6ndb/2/ – 2014-11-21 16:24:32
好主意,這個作品並不會導致內容被向下推。 – 2014-11-24 09:47:30