Div 使用 transform: scale 后行内块显示和适当位置
Div inline-block display and proper position after using transform: scale
一开始我想对我的英语说抱歉 - 我正在努力做到最好 ;)
这是我设法创建的:
我想做的是使用 js 缩放包含几个不同元素的 div,但同时我确实想保留内联块显示,所以在缩放更多之后(或更少,取决于比例值)元素可以放在一行中。
Html 只有一个元素看起来像这样:
<div class="containerofelements">
<div class="resizeratio">1</div>
<div class="resizeratio">0.75</div>
<div class="resizeratio">0.5</div>
<hr />
<div class="elements" style="background-image: url(https://image.ibb.co/ha1wAo/back.png)">
<div class="middle">middle</div>
<div class="leftup">leftup</div>
<div class="rightup"><img src="https://image.ibb.co/dK2BRT/profile_default_m.jpg" /></div>
<div class="leftdown">leftdown</div>
<div class="rightdown">rightdown</div>
</div>
</div>
元素的数量是可变的,很可能在“.elements”中会有更多不同的内容div。
.resizeratio
div 是使用 jquery.
按写入值缩放 .elements
的按钮
我能够通过使用代码成功缩放元素并保持所有子元素的位置:
css({
transform: "scale("+scale+")"
});
不幸的是,缩放后div确实保持了原来的位置。正如我设法注意到的那样, div 本身已缩放,但它不会以某种方式改变位置,就像缩小元素后空的 space 被额外的边距填充一样。如何预防?
您可以使用 css 属性 缩放,但这在 Firefox 中不起作用。
另一种解决方案是使用负左右边距。
如果这不起作用,您应该看看 flexbox 属性。
https://css-tricks.com/snippets/css/a-guide-to-flexbox/
这里有一个快速修复方法
只需在 .elements
周围添加一个 div(例如 .wrap
),然后根据比例更改其宽度和高度。
el.parent('.wrap').css({
width: (350 * scale) + "px",
height: (500 * scale) + "px"
});
.wrap {
width: 350px;
height: 500px;
display: inline-block;
position: relative;
}
.elements {
width: 340px;
height: 490px;
background-repeat: no-repeat;
margin: 5px;
-moz-transform-origin: 0 0;
transform-origin: 0 0;
}
一开始我想对我的英语说抱歉 - 我正在努力做到最好 ;)
这是我设法创建的:
我想做的是使用 js 缩放包含几个不同元素的 div,但同时我确实想保留内联块显示,所以在缩放更多之后(或更少,取决于比例值)元素可以放在一行中。
Html 只有一个元素看起来像这样:
<div class="containerofelements">
<div class="resizeratio">1</div>
<div class="resizeratio">0.75</div>
<div class="resizeratio">0.5</div>
<hr />
<div class="elements" style="background-image: url(https://image.ibb.co/ha1wAo/back.png)">
<div class="middle">middle</div>
<div class="leftup">leftup</div>
<div class="rightup"><img src="https://image.ibb.co/dK2BRT/profile_default_m.jpg" /></div>
<div class="leftdown">leftdown</div>
<div class="rightdown">rightdown</div>
</div>
</div>
元素的数量是可变的,很可能在“.elements”中会有更多不同的内容div。
.resizeratio
div 是使用 jquery.
.elements
的按钮
我能够通过使用代码成功缩放元素并保持所有子元素的位置:
css({
transform: "scale("+scale+")"
});
不幸的是,缩放后div确实保持了原来的位置。正如我设法注意到的那样, div 本身已缩放,但它不会以某种方式改变位置,就像缩小元素后空的 space 被额外的边距填充一样。如何预防?
您可以使用 css 属性 缩放,但这在 Firefox 中不起作用。
另一种解决方案是使用负左右边距。
如果这不起作用,您应该看看 flexbox 属性。 https://css-tricks.com/snippets/css/a-guide-to-flexbox/
这里有一个快速修复方法
只需在 .elements
周围添加一个 div(例如 .wrap
),然后根据比例更改其宽度和高度。
el.parent('.wrap').css({
width: (350 * scale) + "px",
height: (500 * scale) + "px"
});
.wrap {
width: 350px;
height: 500px;
display: inline-block;
position: relative;
}
.elements {
width: 340px;
height: 490px;
background-repeat: no-repeat;
margin: 5px;
-moz-transform-origin: 0 0;
transform-origin: 0 0;
}