【问题标题】:CSS Image shrink in a fixed containerCSS 图像在固定容器中缩小
【发布时间】:2018-05-08 13:24:45
【问题描述】:

首先,我正在使用 wordpress 来创建我自己的带有个人 HTML 和 CSS 的网站。我在我的 HTML 代码中添加了一个指定大小的空容器。这个容器类的名称是 LiveChat。

这是 HTML:

<div class="LiveChat">     
    <img src="https://baway.de/wp-content/uploads/2018/05/Bild1.jpg" alt="Live Chat">
</div>

我现在要做的是添加背景图像,将其“缩放”35%。此外,我希望在此图像周围有一个白色边框,带有 15 像素的白色边框。因此我创建了这段代码:

.LiveChat {
        background-image: url("https://away.de/wp-content/uploads/2018/05/Bild1.jpg");
        background-repeat: no-repeat;
        display: block;
        margin-left: auto;
        margin-right: auto;
        width: 100%;
        height: auto;
        overflow: hidden;
        border-color: white;
        border-width: 15px;
    }
    .LiveChat img {
        -webkit-transform: scale(1.35);
        transform: scale(1.35);
    }

首先,我的元素周围没有白色边框。第二个问题是,元素右侧有一个白条...

现在我想添加一个悬停效果。当有人将鼠标悬停在背景图像上时,缩放应达到 100%。遗憾的是,使用它时没有任何反应:

.LiveChat:hover img{
    -webkit-transform: scale(2.0);
    transform: scale(2.0);
}

由于我现在整天都在尝试,我希望你们有经验的建议。非常感谢!

.LiveChat {
            background-image: url("https://away.de/wp-content/uploads/2018/05/Bild1.jpg");
            background-repeat: no-repeat;
            display: block;
            margin-left: auto;
            margin-right: auto;
            width: 100%;
            height: auto;
            overflow: hidden;
            border-color: white;
            border-width: 15px;
        }
        .LiveChat img {
            -webkit-transform: scale(1.35);
            transform: scale(1.35);
        }
        .LiveChat:hover img{
        -webkit-transform: scale(2.0);
        transform: scale(2.0);
    }
<div class="LiveChat">     
    	<img src="https://baway.de/wp-content/uploads/2018/05/Bild1.jpg" alt="Live Chat">
    </div>

【问题讨论】:

    标签: html css hover mousehover


    【解决方案1】:

    您的边框没有显示的原因是您没有定义边框样式: 在 CSS 中添加 border-style: solid 可以解决这个问题。

    图像未“缩放”,因为您尚未将 :hover 添加到 css。

    我已将width: 100% 添加到图像中以确保它填充 div 容器。

    试试这个代码:

    .LiveChat {
        background-image: url("https://away.de/wp-content/uploads/2018/05/Bild1.jpg");
        background-repeat: no-repeat;
        display: block;
        margin-left: auto;
        margin-right: auto;
        width: 100%;
        height: auto;
        overflow: hidden;
        border-style: solid;
        border-color: white;
        border-width: 15px;
    }
    .LiveChat img {
        -webkit-transform: scale(1.35);
        transform: scale(1.35);
        width: 100%;
    }
    .LiveChat img:hover {
        -webkit-transform: scale(2.0);
        transform: scale(2.0);
    }
    <div class="LiveChat">     
    	<img src="https://baway.de/wp-content/uploads/2018/05/Bild1.jpg" alt="Live Chat">
    </div>

    值得注意的是,您可以通过对样式进行分组来进一步清理 CSS:

    .LiveChat {
        background: url("https://baway.de/wp-content/uploads/2018/05/Bild1.jpg") no-repeat;
        display: block;
        margin: auto;
        width: 100%;
        height: auto;
        overflow: hidden;
        border: 15px solid white;
    }
    

    编辑

    我之前忘了提这个。 .LiveChat 背景图片中的网址有错字。您需要将“b”添加到“baway.de”。我已更新我的答案以反映这一点。

    【讨论】:

    • 好答案。我完全没有看到悬停应用于 div 而不是图像。 +1
    • 这样的错误太容易犯了。谢谢:)
    【解决方案2】:

    试试下面的代码

    .LiveChat {
        background-repeat: no-repeat;
        display: block;
        margin-left: auto;
        margin-right: auto;
        width: 452px;
        height: 452px;
        overflow: hidden;
       border:15px solid #ddd;
        overflow: hidden;
    
    }
    .LiveChat img {
        -webkit-transform: scale(1.35);
        transform: scale(1.35);
           transition: all 2s ease-in 0s;
      -webkit-transition:  all 2s ease-in 0s;
      -ms-transition:  all 2s ease-in 0s;
      cursor: pointer;
    
    }
    .LiveChat:hover img{
        -webkit-transform: scale(2.0);
        transform: scale(2.0);
    }
    <div class="LiveChat">     
      <img src="https://baway.de/wp-content/uploads/2018/05/Bild1.jpg" alt="Live Chat">
    </div>

    【讨论】:

      【解决方案3】:

      感谢你们俩。通常悬停代码应该是单词,但不是。我现在会询问 Avada 的支持,因为那肯定是他们的主题有问题...

      【讨论】:

        【解决方案4】:

        不要使用border-color: white;border-width: 15px;,而是使用border: 15px solid white。我使用了黑色,因此它在演示中可见。

        缩放效果很好。

        .LiveChat {
                    background-image: url("https://away.de/wp-content/uploads/2018/05/Bild1.jpg");
                    background-repeat: no-repeat;
                    display: block;
                    margin-left: auto;
                    margin-right: auto;
                    width: 100%;
                    height: auto;
                    overflow: hidden;
                    border: 15px solid black;
                }
                .LiveChat img {
                    -webkit-transform: scale(1.35);
                    transform: scale(1.35);
                }
                .LiveChat img:hover {
                -webkit-transform: scale(2.0);
                transform: scale(2.0);
            }
        <div class="LiveChat">     
            	<img src="https://baway.de/wp-content/uploads/2018/05/Bild1.jpg" alt="Live Chat">
            </div>

        【讨论】:

        • 谢谢,您对边界的建议对我来说非常有效。有什么原因,为什么我的解决方案不起作用(边框颜色:白色;边框宽度:15px;)?
        • 因为border属性需要3个东西:colorwidthstyle。您忘记了样式,因此它没有应用其他 2。您最好只使用速记:border: 15px solid white
        猜你喜欢
        • 2012-04-12
        • 1970-01-01
        • 1970-01-01
        • 2019-06-27
        • 1970-01-01
        • 2012-07-01
        • 2021-05-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多