作者:手机用户2602936275 | 来源:互联网 | 2023-05-17 22:41
Ivegotthebelowdivstructure.HowdoImake.canvasElberesponsiveto.vgWrapper?我有下面的div结构。如
I've got the below div structure. How do I make .canvasEl
be responsive to .vgWrapper
?
我有下面的div结构。如何让.canvasEl响应.vgWrapper?
example: Assume .vgWrapper
width & height is 200px, and .canvasEl
width & height is 100px. NOW when the width & height of .vgWrapper
is changed to 100px, .canvasEl
width & height should be 50px.
示例:假设.vgWrapper宽度和高度为200px,而.canvasEl宽度和高度为100px。现在,当.vgWrapper的宽度和高度更改为100px时,.canvasEl的宽度和高度应为50px。
So the size of .canvasEl
should automatically change depending on the size of .vgWrapper
. Here is a Fiddle
因此.canvasEl的大小应根据.vgWrapper的大小自动更改。这是一个小提琴
// should resize propotionaltely when .vgWrapper size is chnaged
3 个解决方案
I would suggest going for something like this to avoid manually setting media queries, assuming you are happy to run some Javascript or JQuery to set the height or find a better CSS solution for height etc.
我建议你去做这样的事情,以避免手动设置媒体查询,假设你很乐意运行一些Javascript或JQuery来设置高度或找到一个更好的CSS解决方案的高度等。
Width is simple and you don't need to mess with the positioning, assuming I understand your requirements correctly, please see this updated fiddle. https://jsfiddle.net/umoyhzjv/2/
宽度很简单,你不需要弄乱定位,假设我正确理解你的要求,请看这个更新的小提琴。 https://jsfiddle.net/umoyhzjv/2/
I have simply set the canvas wrapper to 50% width and set the height as half the parents height. You can add $(window).resize() to trigger the code to re-run if this is intended to be interactive etc.
我只需将画布包装设置为50%宽度,并将高度设置为父项高度的一半。您可以添加$(window).resize()来触发代码重新运行,如果这是为了交互等。
I set the outerWrapper to be % so it is easy to see in the fiddle, just move the page divider to make it scale.
我将outerWrapper设置为%,因此很容易在小提琴中看到,只需移动页面分隔符使其缩放。
.outerWrapper{
left: 0;
right: 0;
margin: 0 auto;
position: absolute;
width: 50%; /*when chnaged, .canvasEl should resize accordingly*/
height: 50%; /*when chnaged, .canvasEl should resize accordingly*/
background-color: lime;
}
.vgWrapper{
position: relative;
display: inline-block;
vertical-align: top;
width: 100%;
height: 100%;
}
.imgWrapper{
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
}
.bgWrapper{
display: block;
height: 100%;
width: 100%;
}
.imgDiv{
margin: 0px;
width: 50%;
height: 50%;
overflow: hidden;
}
.canvasEl{
position:relative;
width:100%;
height: 100%;
background-color: #f60;
}