Javascript 如何跨轴定位图元(以完美配合)?

Javascript 如何跨轴定位图元(以完美配合)?,javascript,html,css,Javascript,Html,Css,给定一行元素(一组数据点),每个元素都有一定的大小和值(在X轴上),如何将它们放置在同一轴上,使它们不会溢出 (圆圈所在的区域在宽度方面是流动的) 现在: 通缉: (最好使用CSS解决方案)如果您希望缩放整个圆分布以适应可用空间(保持X轴值的比率)。试试这个: body { width:200px; /* Can be any witdth in % vw px etc */ position:relative; } 如果希望缩放整个圆分布以适应可用空间(保持X轴值的比率

给定一行元素(一组数据点),每个元素都有一定的大小和值(在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
将元素相对于其值向左移动(这是
位置,因此元素越向右,它就越向左调整,因此最右边的元素会完全重新调整自己,这意味着它的所有宽度都将被转换到左边,而最左边的元素根本不会重新调整自己。

这有什么帮助吗?身体不需要d
position:relative
,这是默认值。而且,它已经设置为
100%
,因此我无法理解除了默认值之外,您的代码还能做什么。这有什么帮助呢?主体不需要
position:relative
,这是默认值。而且,它已经设置为
100%
,因此我无法理解除了已经提供的默认值之外,您的代码还能做什么