Javascript修改所有绝对定位的元素

标签 javascript css position css-position

实际上我需要在 JS 中做的是将所有绝对定位的元素向下移动 x 像素。我是否需要遍历每个元素并尝试确定它是否绝对定位?或者有更好的方法吗?

谢谢, 马拉

更新: 特定:我正在使用小书签将 JS 注入(inject)任何页面 - 因此我无法以任何方式更改标记或实际的 css 文件。这个小书签应该将所有绝对定位的元素向下移动 155 像素。

最佳答案

应该这样做:

function getStyle(el, prop) {
  var doc = el.ownerDocument, view = doc.defaultView;
  if (view && view.getComputedStyle) {
    return view.getComputedStyle(el, '')[prop];
  }
  return el.currentStyle[prop];
}
var all = document.getElementsByTagName('*'), i = all.length;
while (i--) {
  var topOffset = parseInt(all[i].style.top, 10);
  if (getStyle(all[i], 'position') === 'absolute') {
    all[i].style.top = isNaN(topOffset) ? '155px' : (topOffset + 155) + 'px';
  }
}

关于Javascript修改所有绝对定位的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1287066/

相关文章:

JavaScript switch 语句可更改轮播中的图像标题

html - 基于背景的边框颜色

html - flex 元素之间的神秘空间

ruby - 如何获取字符串中所有出现的模式的索引

jquery - 如何将 ".position().left"的值和 "scrollLeft"的行为应用于溢出容器

javascript - 如何在 Vue JS 应用程序中单击按钮后将其更改为禁用

javascript - 如何转义 RegExp 对象中使用的字符串

javascript - 如何将 float div 的高度设置为其邻居的相同高度

css - 子菜单位置 : bug of absolute spacing with IE7

javascript - AWS 物联网 : Read Thing Shadow