2015-06-22 109 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