我正在尝试在两个不同的div中分别显示图像的上半部分和下半部分。
我已经尝试使用CSS属性
这只是我一个人的问题吗?您有没有仅显示图像一半的解决方案?
我已经尝试使用CSS属性
clip
,但它似乎不支持%作为单位。这只是我一个人的问题吗?您有没有仅显示图像一半的解决方案?
更新(5年后):
CSS clip属性已被弃用。考虑使用clip-path替代它(允许非JS解决方案),clip-path允许您使用百分比来指定形状。例如:
/* 图像的下半部分 */
clip-path: polygon(0 50%, 100% 50%, 100% 100%, 0 100%);
/* 图像的上半部分 */
clip-path: polygon(0 0, 100% 0, 100% 50%, 0 50%);
以下是使用百分比创建三角形的进一步示例:
clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
原始内容:
CSS clip属性目前不支持百分比:http://www.w3.org/TR/CSS2/visufx.html#propdef-clip,最新http://www.w3.org/TR/2011/REC-CSS2-20110607/visufx.html#clipping
解决问题的方法可能是使用JavaScript来确定您想要显示的区域的大小,然后在设置clip属性时使用该值。像这样简单的代码应该就可以解决问题:
var heightOfImageToDisplay = image.height / 2;
很抱歉我没有足够的声望来写评论。
完全有一个不需要JS的解决方案。
你需要做的就是
clipPath
, which allows you define whatever path you want. Apply the clipPath
in your css code.
#your-element {
clip-path: url(#clipPathId);
}
你可以将 div 设置为 position: relative;
和 overflow: hidden;
,将图片设置为 position: absolute;
通过为 div 设置一个 height 并调整图片的 top 和 bottom 属性来控制图片的显示方式。
margin-top: 50%
,但问题在于它不以直接父元素作为百分比的参考,因此会产生奇怪的结果。 - Axioloverflow:hidden
和适当的background-position
,这样它只会从顶部向下显示顶部的一个和从底部向上显示底部的一个呢?
calc()
操作。 - Venryx