当前位置: 首页 > 知识库问答 >
问题:

CSS子元素无法识别正确对齐的父元素

祁奇略
2023-03-14

我正在尝试使用绝对定位将标签文本与其相应的输入字段对齐。然而,标签并没有将我的输入div识别为其父级,而似乎是相对于外部登录div定位标签文本。

HTML:

<div class="login-div">
        <form action="" class="form">
            <h2>Login</h2>
            <div class="input-div">
                <input type="text" name="loginName" id="loginName" required>
                <label for="loginName">Username</label>
            </div>
            <div class="input-div">
                <input type="password" name="loginPassword" id="loginPassword" required>
                <label for="loginPassword">Password</label>
            </div>
            <input type="submit" value="Login" class="submit-btn">
            <a href="#forgot-pw" class="forgot-pw">Forgot your password?</a>
            <p>New member? <a href="#register" class="register">Sign up now!</a></p>
        </form>
</div>

CSS:

.form .input-div label {
  position: absolute;
  top: 0;
  left: 0;
  padding: 10px 0;
  font-size: 1rem;
  pointer-events: none;
}

登录名和密码塞进表单的一角,而不是输入字段

共有3个答案

农英杰
2023-03-14

尝试使用变换属性

顶部和左侧属性依赖于父级的位置(相对于它、绝对或静态)。翻译不受该设置的影响。当元素具有位置时,翻译转换与应用顶部和左侧“相同”:相对

form .input-div label {
  position: absolute;
  transform: translate(50%, 100%);
  padding: 10px 0;
  font-size: 1rem;
  pointer-events: none;
}
单于智
2023-03-14

类<代码>。输入div应为{code>{位置:相对;} 否则,它将被放置在距离最近的父级{位置:相对}

它的宽度也应该等于。形式,等于。登录div

宦博雅
2023-03-14

使用绝对定位,您已经摆脱了父框。添加<代码>位置:相对 到输入div元素,或将标签更改为相对位置 可以帮助您相对于输入div定位标签。

.form .input-div {
  position: relative;
}

.form .input-div label {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;  /* Set width to something appropriate */
  height: 30px;  /* Set this value to something appropriate */
  display: table; /* Optional. May help set an organic line width */
  padding: 10px 0;
  font-size: 1rem;
  pointer-events: none;
}
 类似资料:
  • 问题内容: 我的html文档的正文包含3个元素,一个按钮,一个表单和一个画布。我希望按钮和表单右对齐,而画布保持左对齐。问题是当我尝试对齐前两个元素时,它们不再彼此跟随,而是水平地彼此相邻吗?,这是我到目前为止的代码,我希望表格紧跟在右边的按钮之后中间没有空格。 问题答案: 您可以创建一个同时包含表单和按钮的div,然后通过设置将div浮动到右侧。

  • 我目前已经用下面的代码创建了一个JFrame。我希望有三个JLabel,一个在另一个上面,它们对应的JTextFields在右边,下面有四个JButtons(我最终将使用插入来分隔它们)。但是,单元格在一行中在框架顶部对齐。谁能看出我正在犯的错误。多谢了。 它目前正在生产的JFrame是: **我意识到我没有在面板中设置GridBagLayout,所以添加了一行:

  • 我的html文档的主体由3个元素组成,一个按钮、一个表单和一个画布。我希望按钮和窗体右对齐,画布保持左对齐。问题是,当我尝试对齐前两个元素时,它们不再相互跟随,而是水平地紧挨着?,这是我到目前为止的代码,我希望窗体直接跟随在右边的按钮之后,中间没有空格。 null null

  • 急求!子元素设置了float:left,为什么是浮动到父元素的父元素(part1)上,而不是浮动到父元素(box1)上?想让这个子元素和学院新闻同行应该怎么办? 这是那个子元素 这是那个子元素 这是整体:

  • 问题内容: 首先,我假设对于CSS3来说这太复杂了,但是如果某个地方有解决方案,我很乐意使用它。 HTML非常简单。 子div设置为显示:无;默认情况下,但更改为display:block; 当鼠标悬停在父div上时。问题是此标记出现在我网站上的多个位置,并且我只希望在鼠标悬停在其父项上方时显示该子项,而不是在鼠标悬停在其他任何父项上时都显示该子项(它们都具有相同的类)名称和ID)。 我尝试使用并

  • 问题内容: 我正在尝试让github在Angular工作。 在我看来,我想这样标记,因为我有很多画廊: 基本上,所有指令应该做的就是启动轮播。除非我使用ng-repeat,否则该指令可以完美运行。我猜指令正在处理ng-repeat之前加载。 没有人对如何解决此问题有任何想法,而无需为每种样式的滑块构建模板和指令? 非常感谢! 这是指令: 问题答案: 何时完成模型绑定或ng-repeat的Angul