css - 如何固定背景图片的位置?

标签 css input

我有一个用作搜索栏的输入文本字段,我想在左侧放置一个放大镜,但是当输入文本字段获得焦点时,放大镜应该会消失。

.search .form-item input {
    background-image: url("/image/VtucQ.jpg");
    background-size: 70% 70%;
    background-position: -105% center;
    background-repeat: no-repeat;
  }
.search .form-item input:focus {
    background-image: none; }
<form action="/search" method="get" id="views-exposed-form-search-page-page-search" accept-charset="UTF-8">
  <div class="form--inline clearfix">
  <div class="js-form-item form-item js-form-type-textfield form-type-textfield js-form-item-keys form-item-keys">
      <label for="edit-keys">Fulltext search</label>
        <input data-drupal-selector="edit-keys" type="text" id="edit-keys" name="keys" value="" size="30" maxlength="128" class="form-text">

        </div>

</div>

</form>

<div class="search">
    <input>
</div>

我想用css来实现:

  .navigation .search  input {
    background-image: url("../images/search.svg");
    background-size: 70% 70%;
    background-position: -105% center;
    background-repeat: no-repeat;
  }
  .navigation .search  input:focus {
    background-image: none; }

代码基本上可以工作。问题是我需要让 background-image 变小一点,这是我通过 background-size: 70% 70% 实现的,但它与图像 - 它出现在中心。然后我不得不使用 background-position:-105% center 属性,将图标向左移动。

我的问题是,使用负百分比来指定 background-image 的位置是否是一种好的做法,还是有更好的方法?

最佳答案

你可以在 CSS 中做这样的事情:

.search  input {
   background-size: 30px 17px;
   background-repeat: no-repeat;
   background-position: left;
   transition: .3s;
   background-image: url("/image/VtucQ.jpg");
 }

.search input:focus {
     background-position: left 50px; 
  }

和html

<div class="search">
    <input>
</div>

背景尺寸为 30x17,因为图像不会丢失比例。在焦点上只是动画位置从图像隐藏它。

关于css - 如何固定背景图片的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56578978/

相关文章:

javascript - 根据 <td> 中的值着色 <tr>

input - 在Matlab中应如何将一年的季节定义为ANN的输入变量

javascript - Angular2 ngModel 更改输入类型 ="number"上的绑定(bind)

javascript - 组件上的 @input 给出错误 : Property 'showingSingle' does not exist on type

html - Bootstrap 4 : How to adjust the length of an input using the class input-group-append?

html - 页边距未正确保持在网页浏览器的 100%

html - 自动为某个域的所有链接提供 "no follow"属性? (HTML,CSS)

javascript - 如何在 slider 中的图像之间转换

css - 如何隐藏保持位置的按钮?

javascript - Jquery slideToggle 从屏幕顶部滑动一个 div - 但屏幕顶部在滚动期间发生变化并且 div 不可见