首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用带有百分比的CSS剪辑

使用带有百分比的CSS剪辑
EN

Stack Overflow用户
提问于 2011-11-23 20:29:51
回答 4查看 24.1K关注 0票数 16

我试图在两个不同的div中只显示图像的上半部分和下半部分。

我尝试过使用CSS属性clip,但它似乎不支持将%作为一个单元。

就我一个人吗?对于只显示半张图片,你有什么解决方案吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-11-23 20:38:46

更新(在5+年份之后):

CSS剪辑属性现在已弃用。请考虑使用clip-path (允许使用非JS解决方案),它允许您使用百分比指定形状。示例:

/* Bottom half of image */ clip-path: polygon(0 50%, 100% 50%, 100% 100%, 0% 100%);

/* Top half of image */ clip-path: polygon(0 0, 100% 0, 100% 50%, 0 50%);

使用百分比创建三角形的进一步示例:

clip-path: polygon(50% 0%, 0% 100%, 100% 100%);

原始: CSS剪辑属性当前不支持百分比:http://www.w3.org/TR/CSS2/visufx.html#propdef-clip、latest http://www.w3.org/TR/2011/REC-CSS2-20110607/visufx.html#clipping

问题的解决方案可能是使用Javascript确定要显示的区域的大小,然后在设置clip属性时使用该值。像这样简单的东西应该能起到作用:

var heightOfImageToDisplay = image.height / 2;

票数 26
EN

Stack Overflow用户

发布于 2018-01-13 23:31:41

很抱歉,我没有足够的名气来写评论。

在没有JS的情况下,绝对有一个解决方案

你所要做的就是

  1. 创建一个svg clipPath,它允许你定义你想要的任何路径。
  2. 为响应式剪辑路径设置clipPathUnits="objectBoundingBox“,它允许在css代码中使用percentage path definition
  3. Apply objectBoundingBox。

#your-element { clip-path: url(#clipPathId);}

如果您想了解更多信息,请参阅此答案https://stackoverflow.com/a/28312070/5692151

票数 3
EN

Stack Overflow用户

发布于 2011-11-23 20:39:26

您可以将div设置为position: relative;overflow: hidden;将图像设置为position: absolute;

并控制图像的显示方式,但将高度设置为div,并调整图像的顶部和底部属性

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8242222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档