我正在做一個簡單的向上/向下滑動轉換。CSS轉換 - 溢出和盒子陰影問題
設置很簡單 - 我有一個父form
元素已應用overflow: hidden; max-height: 0; transition: 200ms, all;
它和一個子fieldset
有border: 1px solid #ddd; margin: 0; padding: 10px; box-shadow: 0 1px 5px #aaa;
。爲了實現向下滑動的效果,我將一個類應用於form
的父級,後者又將其css更改爲max-height: 100px; overflow: visible;
。
這裏是它在行動小提琴:
我的問題是因爲我不必設置overflow: visible
在打開狀態,你可以看到形式「衰落」,而不是僅僅滑動向下(點擊查看1查看)。如果我起飛overflow: visible
則box-shadow
不可見。
我怎樣才能克服這個問題,並創建我的向上滑動/滑下過渡並保持box-shadow
可見?
我的全HTML:
<div class="container">
<ul>
<li>
<p>view 1</p>
<form>
<fieldset>
<label>a label</label>
<input type="text" />
<br/>
<label>a label</label>
<input type="text" />
</fieldset>
</form>
</li>
<li>
<p>view 2</p>
<form>
<fieldset>
<label>a label</label>
<input type="text" />
<br/>
<label>a label</label>
<input type="text" />
</fieldset>
</form>
</li>
</ul>
</div>
完整的CSS:
/* setup */
.container { margin: 15px; border: 1px solid #ccc; }
ul { list-style: none; margin: 0; padding: 0; }
li { border-bottom: 1px solid #ccc; }
li:last-of-type { border-bottom: none; padding-bottom: 0; }
fieldset { border: 1px solid #ddd; margin: 0; padding: 10px; }
p { cursor: pointer; transition: 200ms, all; padding: 15px; margin: 0; }
p:hover { background: #fff6e3; }
.open p { background: #fff6e3; }
/* show/hide */
form { overflow: hidden; max-height: 0; transition: 200ms, all; }
.open form { max-height: 100px; overflow: visible; transition: 200ms, all; box-shadow: 0 1px 5px #aaa; }
JS:
$('p').click(function(e){
$(this).parent().toggleClass('open');
});
嘿,這個問題已被標記被關閉。我要投票保持開放,但如果你能做一些工作來證明我花時間做這件事,這將是有益的。主要的問題是你的代碼在jsfiddle上,沒有嵌入到quesiton中(參見:[問]關於這個的細節)。 SO現在提供與jsfiddle相同的功能,所以你不需要再離開現場。讓你的代碼只在jsfiddle上的問題是,如果該網站消失,你的問題將變得不可讀。 – 2014-10-09 20:23:27
我看到沒有'overflow:visible'的'box-shadow'。只有我嗎? http://jsfiddle.net/1Lqmrzgw/1/ – showdev 2014-10-09 20:34:15
@EngineerDollery - 我會複製代碼。 – boz 2014-10-10 08:12:52