【问题标题】:Fill image in skewed container mask - Responsive - CSS3在倾斜的容器掩码中填充图像 - 响应式 - CSS3
【发布时间】:2013-09-05 15:06:45
【问题描述】:

我正在为图像创建倾斜的蒙版容器。

我遇到的问题是使用引导程序使图像以响应式布局填充容器。

我尝试使用 css 属性背景图片并设置background-size: cover;,但背景图片与容器发生了倾斜。

我将尝试在容器内设置图像并居中/匹配容器的高度和宽度。

请在这里看看我的小提琴。 http://jsfiddle.net/RyU9W/3/

编辑

我找到了一个plugin,它几乎可以满足我的需要,尽管我需要针对倾斜导致的容器的额外高度和宽度进行调整。

更新小提琴 http://jsfiddle.net/RyU9W/5/

HTML

    <div class="profile">
        <div class="image"></div>
        <div class="detail"></div>
    </div>

    <div class="profile">
        <div class="image"><img src="http://placekitten.com/g/700/1350" alt=""></div>           
        <div class="detail"></div>
    </div>   

CSS

.profile .image {
    position: relative;
    overflow: hidden;
    height: 400px;
    background: #000 url(http://placekitten.com/g/700/1350) center center;
    background-size: cover;
    -webkit-background-size: cover;
    margin-bottom: 15px;
    transform:skew(0deg,-30deg);
    -ms-transform:skew(0deg,-20deg); /* IE 9 */
    -webkit-transform:skew(0deg,-30deg); /* Safari and Chrome */            
}
.profile .image img {
    position: absolute;
    top: -150px;
}
.profile .image * {
    position: relative;
    transform:skew(0deg,30deg);
    -ms-transform:skew(0deg,30deg); /* IE 9 */
    -webkit-transform:skew(0deg,30deg); /* Safari and Chrome */         
}

【问题讨论】:

    标签: css responsive-design skew


    【解决方案1】:

    你应该还能用

    background-size: cover;
    

    并且由于您的背景图像与容器倾斜,因此为它设置一个 css 规则 具有负偏斜值,这会将图像恢复为其原始形式。

    在你的情况下是transform:skew(0deg,30deg);

    【讨论】:

    • 这是旧的,但我的第二小提琴中的解决方案对我来说效果很好。背景封面不起作用的原因是因为它需要应用于倾斜的容器。如果将其应用于转换后的容器内的元素,则高度将与转换后的容器不匹配,因为浏览器无法识别转换后的高度。我需要使用 javascript 中的三角计算来匹配父容器的高度,并使用 -margin 将其添加到图像中以将其向上推。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多