Javascript 如何跨轴定位图元(以完美配合)?
给定一行元素(一组数据点),每个元素都有一定的大小和值(在X轴上),如何将它们放置在同一轴上,使它们不会溢出 (圆圈所在的区域在宽度方面是流动的) 现在: 通缉:Javascript 如何跨轴定位图元(以完美配合)?,javascript,html,css,Javascript,Html,Css,给定一行元素(一组数据点),每个元素都有一定的大小和值(在X轴上),如何将它们放置在同一轴上,使它们不会溢出 (圆圈所在的区域在宽度方面是流动的) 现在: 通缉: (最好使用CSS解决方案)如果您希望缩放整个圆分布以适应可用空间(保持X轴值的比率)。试试这个: body { width:200px; /* Can be any witdth in % vw px etc */ position:relative; } 如果希望缩放整个圆分布以适应可用空间(保持X轴值的比率
(最好使用CSS解决方案)如果您希望缩放整个圆分布以适应可用空间(保持X轴值的比率)。试试这个:
body {
width:200px; /* Can be any witdth in % vw px etc */
position:relative;
}
如果希望缩放整个圆分布以适应可用空间(保持X轴值的比率)。试试这个:
body {
width:200px; /* Can be any witdth in % vw px etc */
position:relative;
}
我用这个公式修正了我的问题:
// A set of circles
var items = [
{ size:30, value:0 },
{ size:22, value:3 },
{ size:55, value:20 },
{ size:70, value:66 },
{ size:33, value:96 },
{ size:36, value:100 }
];
items.forEach(function(item, i){
// create a "circle" element
var elm = document.createElement('div');
elm.className = 'circle';
// set position & size
elm.style.cssText = `padding : ${item.size}px;
left : ${item.value}%;
transform : translateX(-${item.value}%)`
// add circle to document
document.querySelector('section').appendChild(elm);
});
使用translate
将元素相对于其值向左移动(这是左侧
位置,因此元素越向右,它就越向左调整,因此最右侧的元素将完全重新调整自身,这意味着它的所有宽度都将平移到左侧,而最左侧的元素根本不会重新调整自身。我用这个公式修正了我的错误:
// A set of circles
var items = [
{ size:30, value:0 },
{ size:22, value:3 },
{ size:55, value:20 },
{ size:70, value:66 },
{ size:33, value:96 },
{ size:36, value:100 }
];
items.forEach(function(item, i){
// create a "circle" element
var elm = document.createElement('div');
elm.className = 'circle';
// set position & size
elm.style.cssText = `padding : ${item.size}px;
left : ${item.value}%;
transform : translateX(-${item.value}%)`
// add circle to document
document.querySelector('section').appendChild(elm);
});
使用
translate
将元素相对于其值向左移动(这是左
位置,因此元素越向右,它就越向左调整,因此最右边的元素会完全重新调整自己,这意味着它的所有宽度都将被转换到左边,而最左边的元素根本不会重新调整自己。这有什么帮助吗?身体不需要dposition:relative
,这是默认值。而且,它已经设置为100%
,因此我无法理解除了默认值之外,您的代码还能做什么。这有什么帮助呢?主体不需要position:relative
,这是默认值。而且,它已经设置为100%
,因此我无法理解除了已经提供的默认值之外,您的代码还能做什么