将<label>文本放置在文本输入的边框内

Dtr*_*rav 1 html css forms input

我正在寻找此代码:

<form id="first_name">
    <div class="form-group">
         <label>First name</label>
         <input type="text" class="form-control input-lg" />
    </div>
</form>
Run Code Online (Sandbox Code Playgroud)

看起来像这样

在此处输入图片说明

减去颜色,复选框,值等。本质上,我希望它看起来像图例标签在字段集中一样,但是在文本输入的边框内没有标签和标签。提前致谢!

Man*_*ish 8

这就是您所需要的。您可以根据需要更改CSS值。同样重要的是将background-color标签的设置为与form / html相同的颜色。

.form-group{
  padding:10px;
  border:2px solid;
  margin:10px;
}
.form-group>label{
  position:absolute;
  top:-1px;
  left:20px;
  background-color:white;
}

.form-group>input{
  border:none;
}
Run Code Online (Sandbox Code Playgroud)
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<form id="first_name">
    <div class="form-group">
         <label>First name</label>
         <input type="text" class="form-control input-lg" />
    </div>
</form>
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助 :)。

  • 你应该在 .form-group 中添加 position:relative (2认同)

Azi*_*ark 8

您可以使用图例标签。

<!DOCTYPE html>
<html>
<body>

<form>
 <fieldset>
  <legend>Contact</legend>
  Name <input type="text"><br>
  Email <input type="text"><br>
 </fieldset>
</form>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)


小智 8

我这里看答案的时候,都是为了节省时间而回答的,就是当背景图片改变的时候,做出来的例子爆炸了,我的例子中不存在这样的问题,你可以随意使用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Input</title>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css"
        integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous">
    <style>
        .textOnInput {
            position: relative;
        }
        .textOnInput label {
            position: absolute;
            top: -15px;
            left: 23px;
            padding: 2px;
            z-index: 1;
        }
        .textOnInput label:after {
            content: " ";
            background-color: #fff;
            width: 100%;
            height: 13px;
            position: absolute;
            left: 0;
            bottom: 0;
            z-index: -1;
        }
        label {
            font-size: 16px;
            font-weight: 500;
            display: inline-block;
            margin-bottom: .5rem;
        }
        .form-control {
            box-shadow: none !important;

        }
    </style>

</head>

<body>
    <div class="col-md-4 mt-5">
        <div class="textOnInput">
            <label for="inputText">Email</label>
            <input class="form-control" type="text">
        </div>
    </div>
</body>

</html>
Run Code Online (Sandbox Code Playgroud)