我写了一个简单的输入字段,里面有一个按钮。代码如下。
form {
width: 50%;
}
/* Style the search field */
.add-on {
position: relative;
}
.add-on input {
width: 100%;
border-radius: 0;
}
.add-on button {
position: absolute;
border-radius: 0;
top: 2px;
right: 3px;
height: 33px;
width: 60px;
z-index: 2;
font-size: 14px;
padding: 5px;
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
<form class="navbar-form my-2 my-lg-0 ml-auto" role="search">
<div class="input-group add-on">
<input type="text" class="form-control" placeholder="Search" name="srch-term" id="srch-term">
<button class="btn btn-primary" type="submit">Search</button>
</div>
</form>
如您所见,当我点击输入字段时,按钮消失。当我在该表单外部单击时,它会重新出现。但是我不希望它在点击输入字段时消失。我怎样才能做到这一点?
投票
在焦点时使用z-index
input:focus ~ .btn-primary {
z-index: 100;
}
form {
width: 50%;
}
/* Style the search field */
.add-on {
position: relative;
}
.add-on input {
width: 100%;
border-radius: 0;
}
.add-on button {
position: absolute;
border-radius: 0;
top: 2px;
right: 3px;
height: 33px;
width: 60px;
z-index: 2;
font-size: 14px;
padding: 5px;
}
input:focus ~ .btn-primary {
z-index: 100;
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
<form class="navbar-form my-2 my-lg-0 ml-auto" role="search">
<div class="input-group add-on">
<input type="text" class="form-control" placeholder="Search" name="srch-term" id="srch-term">
<button class="btn btn-primary" type="submit">Search</button>
</div>
</form>
投票
在z-index: 1
元素上设置#srch-term
投票
将qazxsw poi CSS规则中的qazxsw poi更改为qazxsw poi。
z-index
投票
只需给你按钮的.add-on button
更高的价值。可能是输入的亮点,它将div放在上面
3
.add-on button {
position: absolute;
border-radius: 0;
top: 2px;
right: 3px;
height: 33px;
width: 60px;
z-index: 3;
font-size: 14px;
padding: 5px;
}
投票
你应该将z-index
设置为按钮
form {
width: 50%;
}
/* Style the search field */
.add-on {
position: relative;
}
.add-on input {
width: 100%;
border-radius: 0;
}
.add-on button {
position: absolute;
border-radius: 0;
top: 2px;
right: 3px;
height: 33px;
width: 60px;
z-index: 5;
font-size: 14px;
padding: 5px;
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
<form class="navbar-form my-2 my-lg-0 ml-auto" role="search">
<div class="input-group add-on">
<input type="text" class="form-control" placeholder="Search" name="srch-term" id="srch-term">
<button class="btn btn-primary" type="submit">Search</button>
</div>
</form>
投票
正如其他人所说,输入字段在聚焦时覆盖按钮。尝试在输入和按钮上设置永久z-index,并使按钮的z-index高于输入。
position: relative
form {
width: 50%;
}
/* Style the search field */
.add-on {
position: relative;
}
.add-on input {
width: 100%;
border-radius: 0;
}
.add-on button {
position: relative;
border-radius: 0;
top: 2px;
right: 3px;
height: 33px;
width: 60px;
z-index: 2;
font-size: 14px;
padding: 5px;
}
投票
如果我将z-index:1添加到输入并且z-index:3添加到按钮,则问题就消失了。无法弄清楚为什么但是按钮上的z-index:2似乎不起作用。
投票
只需添加<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <form class="navbar-form my-2 my-lg-0 ml-auto" role="search"> <div class="input-group add-on"> <input type="text" class="form-control" placeholder="Search" name="srch-term" id="srch-term"> <button class="btn btn-primary" type="submit">Search</button> </div> </form>
即可输入。该值大于-1且小于按钮form { width: 50%; } /* Style the search field */ .add-on { position: relative; } .add-on input { width: 100%; border-radius: 0; z-index: 1020; } .add-on button { position: absolute; border-radius: 0; top: 2px; right: 3px; height: 33px; width: 60px; z-index: 2; font-size: 14px; padding: 5px; z-index: 1021; }
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
<form class="navbar-form my-2 my-lg-0 ml-auto" role="search">
<div class="input-group add-on">
<input type="text" class="form-control" placeholder="Search" name="srch-term" id="srch-term">
<button class="btn btn-primary" type="submit">Search</button>
</div>
</form>
投票
解决方案1 - 在
z-index
中将z-index
更改为/* Style the search field */ .add-on input { width: 100%; border-radius: 0; z-index: 0 } .add-on button { position: absolute; border-radius: 0; top: 2px; right: 3px; height: 33px; width: 60px; z-index: 2; font-size: 14px; padding: 5px; }
,但如果您的内容增加,搜索按钮将与内容重叠。
z-index: 2
z-index: 3
解决方案2 - 从
.add-on button
删除form { width: 50%; } /* Style the search field */ .add-on { position: relative; } .add-on input { width: 100%; border-radius: 0; } .add-on button { position: absolute; border-radius: 0; top: 2px; right: 3px; height: 33px; width: 60px; z-index: 3; font-size: 14px; padding: 5px; }
,<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script> <form class="navbar-form my-2 my-lg-0 ml-auto" role="search"> <div class="input-group add-on"> <input type="text" class="form-control" placeholder="Search" name="srch-term" id="srch-term"> <button class="btn btn-primary" type="submit">Search</button> </div> </form>
,position: absolute
,top: 2px
并在right: 3px
中将z-index: 2
更新为.add-on button
,它将在输入字段旁边显示搜索,并且它不会重叠内容。
height: 33px;
height: 38px;