Html 使用css转换为遇到定位问题的所有浏览器创建掩码
我需要根据Html 使用css转换为遇到定位问题的所有浏览器创建掩码,html,css,css-position,css-transforms,Html,Css,Css Position,Css Transforms,我需要根据vh(无clip path)在所有浏览器中创建一个覆盖图像的掩码 我使用带有旋转变换的div作为遮罩,然后在内部反转旋转 我遇到的问题是内部的内容没有正确定位。图像需要与内部容器的左上角对齐 我试过: 使用“顶部”和“左侧”值进行定位不起作用 使用transform移动内部容器可以工作,但我无法找到所需的值是如何计算的 需要获得图像,使其左上角对齐并正常流动基本上,当元素变换(此处旋转)时,它们会从流动中取出-因此尺寸不会像不变换时那样 一种方法是使用简单的数学: 如果将侧面a
vh
(无clip path
)在所有浏览器中创建一个覆盖图像的掩码
我使用带有旋转变换的div作为遮罩,然后在内部反转旋转
我遇到的问题是内部的内容没有正确定位。图像需要与内部容器的左上角对齐
我试过:
- 使用“顶部”和“左侧”值进行定位不起作用李>
- 使用transform移动内部容器可以工作,但我无法找到所需的值是如何计算的
需要获得图像,使其左上角对齐并正常流动基本上,当元素变换(此处旋转)时,它们会从流动中取出-因此尺寸不会像不变换时那样 一种方法是使用简单的数学:
- 如果将侧面
的正方形旋转45度(此处为70vh正方形),则对角线将为a
~√2*a
,1.414*a
- 因为
在这里是变换原点
,这意味着溢出宽度或高度等于中心
或(1.414*a-a)/2
(1.414-1)*a/2
- 对于宽度等于
宽度:calc(1.414*70vh)
正文{
保证金:0;
}
.第页{
宽度:100vw;
高度:100vh;
背景:灰色;
}
.集装箱{
宽度:计算值(1.414*70vh);/*已更改*/
高度:100vh;
背景颜色:蓝色;
位置:绝对位置;
左:0;
排名:0;
z指数:0;
}
崔先生{
位置:绝对位置;
宽度:70vh;
高度:70vh;
变换:旋转(45度);
顶部:计算值(0.414*70vh/2);/*已更改*/
左:计算值(0.414*70vh/2);/*增加*/
变换原点:中心;
背景色:透明;
z指数:2;
溢出:隐藏;
}
.重置tri{
位置:相对位置;
z指数:1;
变换:旋转(-45度);
变换原点:中心;
}
.内胆{
背景:黑色;
}
如果您转到链接,您会看到图像未在菱形内部与左上角对齐菱形内部的img应与左上角对齐,而不是空间中的任意点链接与现在的样子不同…不是它应该看起来的样子。您不断重复相同的事情。让我们看看它应该是什么样子。粉红色-IMG黑色-内部蓝色-三个容器-深紫色-感谢全面的答案。然而,img元素的定位仍然是这里的问题。它不与父对象的左上角对齐感谢背景图像解决方案。我仍然看不到如何在这里面定位元素however@jwtea很抱歉回复太晚,我想我昨天已经更新了答案。。。已经在上面添加了背景图像和图像元素选项…非常感谢kukkuz。我已经设法避免在IE中使用适用于此的对象,感谢您的帮助!
.container {
width: 70vh;
height: 100vh;
background-color: blue;
position: absolute;
left: 0;
top: 0;
z-index: 0;
}
.tri {
position: absolute;
width: 70vh;
height: 70vh;
transform: rotate(45deg);
top: calc((100vh - 70vh) / 2);
transform-origin: center center;
background-color: transparent;
z-index: 2;
overflow: hidden;
}
.reset-tri {
position: relative;
z-index: 1;
transform: rotate(-45deg);
transform-origin: center center;
}
.inner-container {
background: black;
}