如何使用 CSS 计算正确的变换以在 div 上以特定角度创建切角

Posted

技术标签:

【中文标题】如何使用 CSS 计算正确的变换以在 div 上以特定角度创建切角【英文标题】:How to calculate right transformation to create cut off the corner on the div in certain angle using CSS 【发布时间】:2013-07-23 12:39:08 【问题描述】:

我想创建像turn.js 中那样的页面角剪辑效果,我知道我需要两个 div,外部一个需要正向旋转,内部一个需要相同数量但负数,并且都需要翻译,但我不知道如何计算正确的值。

如何为每个角落执行此操作?

这里是my try。

【问题讨论】:

【参考方案1】:

这是我的尝试,截断 20 像素:

.page-wrapper 
    position: absolute; 
    overflow: hidden; 
    width: 400px; 
    height: 300px; 
    top: 50px; 
    left: 50px; 
    right: auto; 
    z-index: 12;
    background-color: blue;

.outter-wrapper 
    position: absolute;
    overflow: hidden;  
    -webkit-transform-origin: 100% 50%; 
    -webkit-transform: translateX(-20px) rotate(45deg);
    right: 0px;
    bottom: -100%;
    width: 200%;
    height: 200%;

.inner-wrapper 
    -webkit-transform-origin: 100% 100%; 
    -webkit-transform: rotate(-45deg) translateX(20px);
    background-color: yellow;
    width: 50%;
    height: 50%;
    right: 0px;
    position: absolute;
    top: 0px;

你需要使外包装比内包装大;如果不是,您将在您不想要的地方进行剪辑。我已经完成了 20%%;这样算起来比较容易。

另外,您需要仔细调整它,以便您仍然知道变换原点的坐标。

而且你真的不需要在 x 和 y 中移动它,水平地移动它就足够了。

demo

【讨论】:

以上是关于如何使用 CSS 计算正确的变换以在 div 上以特定角度创建切角的主要内容,如果未能解决你的问题,请参考以下文章

如何修改 SpeakHere 示例应用程序以在 iPhone 上以单声道格式录制?

将鼠标悬停在 1 个 div 上以更改另一个 div 内容

CSS变换div不为空[关闭]

如何滚动 div 以在 ReactJS 中可见?

如何运用CSS3把元素从一种样式变换为另一种样式

悬停在 div(1) 上以显示 div(2),如果 mouseout 继续显示 div(2) x 秒