css - 更改背景图像没有响应

标签 css css-transitions

所以我正在尝试使用 css 转换来更改背景图像, 我有一个问题是 img 没有以这种方式响应 谁能帮我想出一个 100% 高度和宽度的方法?

.container{
  width:100%;
  height:600px;

}

.container img, .top{
    max-width:100%;
  max-height:100%;
}

.top{
  width:100%;
    height:300px;
   -webkit-transition: background-image 0.5s;
    display:block;
}

.top:before{
  content: "";
  background-image:url(https://sc02.alicdn.com/kf/HTB1ZRbgIVXXXXXTXXXXq6xXFXXX9/600-x-600-mm-egyptian-tile-keramik.jpg);
    background-repeat: no-repeat;
    background-size: contain;
   -webkit-transition: background 0.5s;
    width: 100%;
    height: 100%;
  display:block;
}

.container:hover .top:before {
    content: "";
    background-image: url(http://www.jokopost.com/wp-content/uploads/2015/09/%D7%90%D7%99%D7%A7%D7%A1-commons.wikimedia.org_.png);
    -webkit-transition: background 1s;
    width: 100%;
    height: 100%;
    display: block;
}


<div class="container">
<div class="top">
</div>
</div>

https://jsfiddle.net/7ejtydts/2/

最佳答案

使用“背景大小:包含;”将使图像具有响应性,但不会将其拉伸(stretch)超出其尺寸。因此,您发布的示例是响应式的,但前提是您将容器变小。

使用“背景尺寸:封面;”将使图像拉伸(stretch)到容器的大小。这样做的缺点是,如果容器的比例不同,它会切断图像的边缘。

在这里看看我更新的 fiddle :

.container{
  width:600px;
  height:600px;

}

.container img, .top{
    max-width:100%;
  max-height:100%;
}

.top{
  width:600px;
    height:400px;
   -webkit-transition: background-image 0.5s;
    display:block;
}

.top:before{
  content: "";
  background-image:url(https://sc02.alicdn.com/kf/HTB1ZRbgIVXXXXXTXXXXq6xXFXXX9/600-x-600-mm-egyptian-tile-keramik.jpg);
    background-repeat: no-repeat;
    background-size: cover;
  background-position: center;
   -webkit-transition: background 0.5s;
    width: 100%;
    height: 100%;
  display:block;
}

.container:hover .top:before {
    content: "";
    background-image: url(http://www.jokopost.com/wp-content/uploads/2015/09/%D7%90%D7%99%D7%A7%D7%A1-commons.wikimedia.org_.png);
    -webkit-transition: background 1s;
    width: 100%;
    height: 100%;
    display: block;
}

https://jsfiddle.net/7ejtydts/3/

关于css - 更改背景图像没有响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39595809/

相关文章:

html - div 的最小高度 100%

css - 单击提交按钮时禁用 CSS3 淡入

internet-explorer - 尝试一个简单的 css3 转换,不在 IE 中工作

html - CSS3 过渡宽度属性

javascript - 侧边栏双击而不是单击

javascript - 将类添加到 html 根目录

css - 如何将 'required field' 星号添加到 Angular react 形式输入

html - 将 css 应用于特定的 <a> 标签

css - 在页面加载时在 CSS 中触发不使用 javascript 的转换

css - (Twitter) Bootstrap 按钮输入在悬停时闪烁