首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当元素被聚焦时,我如何动态地更改sass属性?

当元素被聚焦时,我如何动态地更改sass属性?
EN

Stack Overflow用户
提问于 2019-06-25 17:10:13
回答 2查看 2K关注 0票数 0

我有一个输入类型搜索和一个div就在它下面。当搜索框聚焦时,我想将div的颜色从蓝色更改为红色。

我的部门

代码语言:javascript
复制
  <div id="demo-2">
    <input type="search" placeholder="Search By Title, Author" />
    <div class="autocomplete">
      hello
    </div>
  </div>

我申请的课程

代码语言:javascript
复制
#demo-2 input[type="search"]:focus {
  width: 275px;
  padding-left: 32px;
  color: #000;
  background-color: #fff;
  cursor: auto;
}

.autocomplete {
  background-color: blue;
  height: 350px;
  width: 275px;
  position: absolute;
  display: block;
  right: 1em;
  top: 1em;
  z-index: -50;
  margin-right: 20px;
}

我的要求是,当搜索不使用任何javascript时,类自动完成的背景色应该从蓝色变为红色。

尝试在下面的代码,但没有工作

代码语言:javascript
复制
#demo-2 input[type="search"]:focus {
  width: 275px;
  padding-left: 32px;
  color: #000;
  background-color: #fff;
  cursor: auto;

  .autocomplete {
    background-color: red;
  }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-25 17:30:42

您可以使用邻接兄弟组合子(+)广义兄弟组合子(~)

代码语言:javascript
复制
#demo-2 input[type="search"]:focus {
  width: 275px;
  padding-left: 32px;
  color: #000;
  background-color: #fff;
  cursor: auto;

  ~ .autocomplete {
    background-color: red;
  }
}
票数 2
EN

Stack Overflow用户

发布于 2019-06-26 10:47:04

而不是div,使用label并使label块,例如

代码语言:javascript
复制
input{
  &:focus{
    & ~ label{
      background-color:red;
    }
  }
}

label{
  display:block;
  background-color:blue;
  color:white;
  padding:.5rem;
  margin-top:1rem;
}
代码语言:javascript
复制
<input type="text" id="user" autocomplete="off">
<label for="user">Username</label>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56758968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档