过渡输入宽度



我有输入搜索字段。当我单击它时,我需要它变得更广泛,从而使从右到左的平稳过渡,即输入位于页面的右侧,当我单击它时,它应该以某种像素的数量向左伸展并变为更宽的。

这是我的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;

您的动画现在将向左伸展。

相关内容

  • 没有找到相关文章

最新更新