html - CSS 兄弟选择器没有动画

标签 html css

我正在尝试为 <p> 制作动画标记其兄弟 <input>focus但这行不通。

我制作了一个codepen,如下。

我也不想使用 Javascript 来解决问题。

https://codepen.io/ItsBrianAgar/pen/YrGVxW?editors=0100

HTML

<html lang="en"></html>
<head>
  <meta charset="UTF-8"/>
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  <meta http-equiv="X-UA-Compatible" content="ie=edge"/>
  <link href="https://fonts.googleapis.com/css?family=Roboto:400,700,900" rel="stylesheet"/>
  <link href="assets/css/main.css" type="text/css" rel="stylesheet"/>
  <title>myCoffee</title>
</head>
<body>
  <main class="appContainer">
    <div class="app">
      <div class="sectionLogin">
        <div class="logo"><img src="assets/images/logo.svg" alt="logo"/></div>
        <div class="inputLogin">
          <div class="textField"></div>
          <div class="textField">
            <p id="username">Username</p>
            <input type="text" name="username"/>
          </div>
          <div class="textField">
            <p id="password">Password</p>
            <input type="password" name="password"/>
          </div>
        </div>
        <div class="btnLogin">
          <button>LOGIN</button>
        </div>
        <div class="btnSignup">
          <button>SIGN UP</button>
        </div>
      </div>
    </div>
  </main>
</body>

CSS

  input[name="username"]:focus ~ #username {
    perspective: 1000;
    transform: translate3d(-50%, 30px, 0);
    opacity: 0;
    transition: all 150ms ease-out; }
  input[name="password"]:focus ~ #password {
    perspective: 1000;
    transform: translate3d(-50%, 30px, 0);
    opacity: 0;
    transition: all 150ms ease-out; }

最佳答案

它不起作用,因为 ~选择器以其他方式工作。它选择主选择器之后的所有同级选择器。在你的情况下<p>出现在 <input> 之前.

要使其正常工作,您应该在 html 中进行一些替换:

<div class="textField">
  <input type="text" name="username"/>
  <p id="username">Username</p>
</div>

我知道这可能会破坏布局,但您可以使用 position: absolute;修复它。

关于html - CSS 兄弟选择器没有动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46362732/

相关文章:

javascript - jQuery .on() 事件忽略选择器

css - em 的高度是多少?

css - Angular cdk拖放: keep element style after drop into other container

php - 我正在尝试将 3 年添加到从我的数据库返回的日期

javascript - CSS 中过渡属性的动态值

javascript - 使用正则表达式提取 3 组 2 位数字

html - 如何在 &lt;input&gt; 元素中的文本和红色错误消息之间获得更多空间

javascript - ie6 img 宽度 :auto doesn't work

javascript - 在分区之间使用 css 创建子链接

html - 屏幕上的 Cordova CSS 缩放图像