将鼠标悬停在另一个元素上仅使用css进行更改

时间:2015-05-07 07:41:57

标签: css css3

嗨,这是一个非常基本的问题,我只是想知道当悬停在一个元素上时,其他方式的变化如何实现呢?

<form id="numerical" class="row">
  <div class="form-group row">
    <label>Enter Number :</label>
    <input type="text" id="tel">
  </div>
  <div class="form-group row">
    <label>Result :</label>
    <input type="text" id="result">
  </div>
  <button type="submit" id="btn" class="row">Submit</button>
</form>

就像我悬停在所有button更改的input边框颜色上一样。 我只想用 css 没有 js jQuery

4 个答案:

答案 0 :(得分:5)

可以执行此操作,但不能使用当前代码。

下面是这个工作的代码,悬停元素必须在你想要改变的元素之前。它的工作原理是向下而不是向上,因此如果此按钮位于底部,您将无法看到相同的效果,因为效果不会影响已渲染的元素。

button:hover ~ div input {
  border: 1px solid red;
}
<form id="numerical" class="row">
  <button type="submit" id="btn" class="row">Submit</button>
  <div class="form-group row">
    <label>Enter Number :</label>
    <input type="text" id="tel">
  </div>
  <div class="form-group row">
    <label>Result :</label>
    <input type="text" id="result">
  </div>
</form>

我们可以使用~选择器选择其他元素兄弟姐妹。

  

〜组合器分离两个选择器并匹配第二个选择器   元素只有在第一个元素之前,并且两者共享一个共同元素   父节点。

More here

这是底部的按钮,因为你可以看到它不起作用。

button:hover ~ div input {
  border: 1px solid red;
}
<form id="numerical" class="row">
  <div class="form-group row">
    <label>Enter Number :</label>
    <input type="text" id="tel">
  </div>
  <div class="form-group row">
    <label>Result :</label>
    <input type="text" id="result">
  </div>
  <button type="submit" id="btn" class="row">Submit</button>
</form>

答案 1 :(得分:4)

对于纯css解决方案,您需要在要更改的输入前移动<button> - 标记,但它会像这样工作

button:hover ~ .form-group input {
    border-color: red;
}
<form id="numerical" class="row">
    <button type="submit" id="btn" class="row">Submit</button>
    <div class="form-group row">
    <label>Enter Number :</label>
    <input type="text" id="tel">
  </div>
  <div class="form-group row">
    <label>Result :</label>
    <input type="text" id="result">
  </div>
</form>

答案 2 :(得分:2)

仅在按钮

之后的输入时才有可能
[1,2,3]

和css:

<form id="numerical" class="row">
     <button type="submit" id="btn" class="row">Submit</button>

  <div class="form-group row">
    <label>Enter Number :</label>
    <input type="text" id="tel">
  </div>
  <div class="form-group row">
    <label>Result :</label>
    <input type="text" id="result">
  </div>

</form>

之后,您可以使用按钮的绝对位置 这是演示 http://jsfiddle.net/u7tYE/6037/

答案 3 :(得分:1)

try this

<form id="numerical" class="row">
  <label for="btn" class="label"></label>
  <div class="form-group row">
    <label>Enter Number :</label>
    <input type="text" id="tel">
  </div>
  <div class="form-group row">
    <label>Result :</label>
    <input type="text" id="result">
  </div>
  <button type="submit" id="btn" class="row">Submit</button>
</form>

<style>#numerical{
  position: relative;
}
.form-group {
    margin-bottom:10px;
}
#numerical .label {
  position: absolute;
  bottom: 0;
  left: 0;
  height: 32px;
  width:102px;
}
.label:hover ~ .form-group input {
  border: solid 2px red;
}
#btn{
    background:blue;
    color:#fff;
    height:30px;
    width:100px;
}   </style>

Fiddle