聚焦输入然后在div颜色之外改变

时间:2015-05-19 19:28:57

标签: javascript html css css3

DEMO

你可以看到有一点红色区域。此红色是主要div背景颜色。这个div里面有input

因此,如果单击红色区域,则可以看到搜索图标更改背景颜色。但是当您单击输入区域时,颜色将不会改变。我能在这做什么?

HTML:

<div class="tt" tabindex="2">
  <div class="test"></div>
  <input type="text" class="input" placeholder="Some text..."/>
</div>

CSS:

.tt {
  width:500px;
  height:50px;
  margin:0px auto;
  margin-top:100px;
  background-color:red;
}
.test {
  float:left;
  position:absolute;
  z-index:1;
  width:50px;
  height:50px;
  background-color:blue;
  border-radius:50%;
  background-image:url(http://www.androidpolice.com/wp-content/uploads/2014/06/nexusae0_search.png);
  background-size:50px;
   transition: transform(rotate);
    transition-duration: 400ms;
    transition-timing-function: cubic-bezier(0.770, 0, 0.150, 1);
}
.tt:focus .test{
   -webkit-transform: rotate(360deg);
  border-radius:50%;
  background-image:url(http://ajkdjournal.org/wp-content/uploads/2014/05/e62f58b03dbcfda4a54f6bac1057305e.png);
}
.input{
  border:none;
  outline:none;
  padding:18px;
  width:400px;
  text-indent:40px;
}

2 个答案:

答案 0 :(得分:2)

我在HTML和CSS中添加了一些更改。我希望它有助于demo

<div class="tt" tabindex="2">
    <!-- note I changed the HTML structure + added changes in the CSS -->
    <input type="text" class="input" placeholder="Some text..."/>
    <div class="test"></div>
</div>

答案 1 :(得分:0)

您需要将输入放在.test div之前,然后使用兄弟选择器(+)。代码应该是:

HTML:

<div class="tt" tabindex="2">
  <input type="text" class="input" placeholder="Some text..."/>
  <div class="test"></div>
</div>

CSS:

.input:focus + .test{
   -webkit-transform: rotate(360deg);
  border-radius:50%;
  background-image:url(http://ajkdjournal.org/wp-content/uploads/2014/05/e62f58b03dbcfda4a54f6bac1057305e.png);
}

希望这有帮助!