我試圖配置一個非常基本的動畫效果,其中懸停在一個div上,使用CSS過渡在0到100%width
之間爲其設置了一個form
元素。 Here is a fiddle for reference。我遇到兩個問題:首先,在這種情況下,儘管設置爲display:inline-block
和vertical-align:top
,但<p>
元素和<form>
元素不是垂直排列的。其次,在將form
元素擴展到100%時,它會降低到<p>
元素以下;有人知道這裏發生了什麼嗎?內聯塊元素在懸停效果上下降?
#wrapper {
display: inline-block;
position: absolute;
top: 0;
left: 0;
text-align: left;
vertical-align: top;
border: 1px solid #000;
margin: 0;
padding: 0;
}
#wrapper p {
font-size: 16px;
display: inline-block;
vertical-align: top;
text-transform: uppercase;
background-color: rgba(255, 255, 255, 0.5);
padding: 0.5em 1em;
cursor: pointer;
}
#wrapper:hover form#access {
width: 100%;
}
form#access {
display: inline-block;
width: 0%;
margin: 0;
padding: 0;
overflow:hidden;
-webkit-transition: width 1s ease-in-out;
-moz-transition: width 1s ease-in-out;
-o-transition: width 1s ease-in-out;
transition: width 1s ease-in-out;
}
form#access input {
font-size: 18px;
display: inline-block;
vertical-align: top;
padding: 0;
margin: 0;
border: none;
max-width: 100px;
}
<div id="wrapper">
<p>Enter code:</p>
<form id="access">
<input placeholder="code" id="access-code" name="access-code" type="text" tabindex="1" required>
</form>
</div>
如何像這樣有點不同? https://jsfiddle.net/8bbop1w5/14/ –
如果您需要將表格保留在「p」元素上方,則應將其放在它之前。 'p'上的'margin'阻止了垂直對齊,我注意到你的'#access'上沒有聲明'vertical-align'。如果你需要這些元素保持在一起,它們應該顯示爲'inline-block'元素。 – UncaughtTypeError