2015-06-22 93 views
1

借助此CodePen demo,我正在为用户图像制作菱形。缩放菱形

但是,当根据我的内容更改widthheight时,形状会打扰:请参阅my JSFiddle Demo

在选择.losange, .losange div原值widthheight250px.losange .los1他们都355px

这里是我的代码:

.losange, .losange div { 
    margin: 0 auto; 
    transform-origin: 50% 50%; 
    overflow: hidden; 
    width: 130px; /* originally 250px */ 
    height: 130px; /* originally 250px */ 
} 

.losange { 
    transform: rotate(45deg) translateY(10px); 
} 

.losange .los1 { 
    width: 130px; /* originally 355px */ 
    height: 130px; /* originally 355px */ 
    transform: rotate(-45deg) translateY(-74px); 
} 

.losange .los1 img { 
    width: 100%; 
    height: auto; 
} 
+0

请让一个jsfiddle或代码片段 –

+0

用我的代码示例更新我的代码。你可以使用上面的链接 – sleekdev

+0

我改变宽度和高度.losange,.losange div和.losange .los1从原始的例子, – sleekdev

回答

3

你需要计算正确的翻译值:

.losange, .losange div { 
 
    margin: 0 auto; 
 
    transform-origin: 50% 50%; 
 
    overflow: hidden; 
 
    width: 92px; 
 
    height: 92px; 
 
} 
 
.losange { 
 
    transform: rotate(45deg) translateY(10px) translateX(10px); 
 
} 
 
.losange .los1 { 
 
    width: 130px; 
 
    height: 130px; 
 
    transform: rotate(-45deg) translateY(-27px); 
 
} 
 
.losange .los1 img { 
 
    width: 100%; 
 
    height: auto; 
 
}
<div class="losange"> 
 
    <div class="los1"> 
 
     <img src="http://photos-d.ak.instagram.com/hphotos-ak-xpa1/10483342_1471091656483347_532843009_n.jpg" /> 
 
    </div> 
 
</div>

UPDATE:
更改大小 - 现在Losange宽度130像素。

+0

是的,我新为变换和翻译属性值。在你的代码中,你对图像div采取了不同的高度宽度,并且我想要制作相同的高度和宽度(130)你能告诉我如何计算翻译值吗? – sleekdev

+0

如果你为'losange'和'los1'设置相同的宽度,你会得到一个八音。您需要设置'los1'的宽度宽度以填充父元素并获取“Losange多边形”。如果你需要一定宽度的“Losange”(形成左上角到右上角),你必须计算父元素的宽度:'width =√(130²/ 2)≈92'。所以如果你设置这个宽度,你会得到宽度为130px的Losange。 –

+0

谢谢:) :) – sleekdev