【问题标题】:HTML/CSS Cropping Image from left AND right when screen becomes too small当屏幕变得太小时时,HTML/CSS 从左右裁剪图像
【发布时间】:2017-05-16 03:12:21
【问题描述】:

首先...我是全新的,所以如果我忘记了一些可以帮助您回答我的问题的重要内容,我深表歉意。我会尽力的。

这是我的代码:

HTML:

<div class="slider">
    <figure>
        <div>
            <img src="a.jpg">
        </div>
        <div>
            <img src="b.jpg">
        </div>
        <div>
            <img src="c.jpg">
        </div>
    </figure>
</div>

还有 CSS:

@media screen and (max-width: 550px) {

.slider figure div{
    width: 20%;
    float: left;
}

.slider figure img{
    min-height: 100%;
    min-width: 100%;
    max-height: 100%;
    max-width: 100%;    
}


.slider figure {
    position: relative;
    width: 500%;
    margin: 0;
    left: 0;
    animation-name: slidy;
    animation-iteration-count: infinite;
    animation-duration: 15s;
}


@keyframes slidy{

    0%{
        left: 0%;
    }

    31%{
        left: 0%;
    }
    35%{
        left: -100%;
    }
    66%{
        left: -100%;
    }
    70%{
        left: -200%;
    }
    95%{
        left: -200%;
    }
    100%{
        left: 0;
    }
}
}

CSS 滑块代码的工作方式与我想要的“正常”屏幕尺寸(如 iPad-Pro 和 PC 屏幕)相同。 显然,当屏幕变得太小(例如电话)时,图像会看起来很难看,因为我使用浏览器窗口调整它们的大小。

所以当屏幕变得太小时,我想在左侧和右侧剪切图像(不使用浏览器窗口调整大小),以便能够看到图像的中心而不是扭曲的图片。

我尝试使用转换解决我的问题,但我无法完成它,因为我尝试的所有操作都破坏了滑块。 大家还有什么想法吗?

【问题讨论】:

  • 当您使用滑块时,必须是一个 jquery 插件,阅读它的文档,通常这些可以选择如何在差异屏幕中显示图像
  • @RakeshSoni "...必须是 jquery 插件..." - 我在这篇文章中没有看到任何与 jQuery 相关的内容。看起来 OP 正在滚动他/她自己的滑块。是真的吗,OP?
  • @J.Titus 我的坏:P

标签: html css


【解决方案1】:

更新:

如果有人遇到与我相同的问题...这是我的解决方案。 我使用了背景图片。所以我能够使用

@media 

针对不同的屏幕尺寸(我只是使用了不同尺寸的同一张图片)和

background-position:center;

因此图像从左侧和右侧被裁剪。 再次感谢您的所有帮助!

【讨论】:

    【解决方案2】:
    .slider figure img{
    
     min-width: 50px !important;
    
    }
    
    .slider figure {
    
    text-align:center  !important; 
    over-flow:hidden  !important;    
    
    }
    

    【讨论】:

    • 虽然此代码 sn-p 可能是解决方案,但 including an explanation 确实有助于提高您的帖子质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。
    • @Subi 我将这些行添加到我的代码中,但不幸的是这对我不起作用。也许我误解了你解决我问题的想法。
    • @Subi 你不必抱歉;)我很欣赏你的想法!
    【解决方案3】:

    在该媒体查询中,您将图像的宽度设置为 100%;所以它会随着浏览器窗口的大小而调整。您可以删除它,也可以通过添加 text-align: center; 来使图像居中。给父母。但是,一旦浏览器窗口变得比 img 小,就会出现溢出滚动。

    .slider figure div{
        width: 20%;
        float: left;
        text-align: center;
    }
    
    .slider figure img{
    
    }
    

    如果您希望此溢出图像始终居中,则需要一些 javascript。

    【讨论】:

    • 感谢您的回答。我已经尝试过了,但不幸的是它也没有帮助。
    猜你喜欢
    • 1970-01-01
    • 2020-09-05
    • 1970-01-01
    • 2021-03-31
    • 2013-07-13
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 2015-12-08
    相关资源
    最近更新 更多