我有输入搜索字段。当我单击它时,我需要它变得更广泛,从而使从右到左的平稳过渡,即输入位于页面的右侧,当我单击它时,它应该以某种像素的数量向左伸展并变为更宽的。
这是我的CSS:
#header #search input {
background: #FFF;
padding: 1px 1px 1px 5px;
width: 178px;
height: 21px;
border: 1px solid #CCCCCC;
border-radius: 6px;
-webkit-transition: all .5s;
-moz-transition: all .5s;
transition: all .5s;
}
#header #search input:focus {
background: #FFF;
padding: 1px 1px 1px 5px;
width: 300px;
height: 21px;
border: 1px solid #CCCCCC;
您能帮我实施吗?
input[type="search"] {
background: #FFF;
padding: .5rem 1rem;
position: relative;
top: 0;
left: 0;
width: 178px;
height: 40px;
outline: none;
border: 1px solid #CCCCCC;
border-radius: 6px;
transition: all .5s;
}
input[type="search"]:focus {
width: 300px;
top: 0;
right: 100%;
}
<div style="text-align:right;">
<input type="search" id="search" />
</div>
绝对将输入放置,并将正确的属性设置为零:
position:absolute;
right:0;
迫使聚焦时向左扩展。
JSFIDDLE示例
使您的容器使用位置抵消父母:
#header, #search {
width: 100%;
position: relative;
}
然后使用位置放置输入:绝对并使用正确的位置。
#header #search input {
position: absolute;
right: 0px;
background: #FFF;
padding: 1px 1px 1px 5px;
width: 178px;
height: 21px;
border: 1px solid #CCCCCC;
border-radius: 6px;
-webkit-transition: all .5s;
-moz-transition: all .5s;
transition: all .5s;
}
#header #search input:focus {
background: #FFF;
padding: 1px 1px 1px 5px;
width: 300px;
height: 21px;
border: 1px solid #CCCCCC;
您的动画现在将向左伸展。