HTML 无法更新元素位置

标签 html css angular typescript dom

我正在尝试设置出现在我页面上的所有图像的位置。我试图通过DOM设置一张图片的位置,但似乎没有效果。控制台正在打印更新位置消息,但图像位置未更新。我可以通过 DOM 访问图像,因为我可以通过使用“图像”元素变量来更新图像宽度。我只是无法更新它的位置。

HTML

<div *ngIf='this.imagesPerRow'>
  <div *ngFor="let image of images; let i = index; let last = last">
      {{last ? setPosition() : ''}}
    <img id={{i}} [style.width.%]="width" src={{image.src}} alt="">
  </div>
</div>

CSS

* {
  margin: 0;
  padding: 0;
  border: 0;
}

img {
  display: block;
}

typescript

setPosition() {
  const image: HTMLElement = document.getElementById('1');

  if (image) {
    console.log("Updating position");
    image.style.left = "100px";
  }
}

最佳答案

css left 属性仅适用于 positioned 元素,如 here 所述

所以改变你的风格应该做到这一点

img {
  display: block;
  position: relative;
}

关于HTML 无法更新元素位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56727673/

相关文章:

类似 HTML5/CSS3 的软件 UI 设计?

html - 四列布局未调整大小以适应屏幕尺寸

javascript - 如果行值为负,则更改行颜色

Angular7 - [ngModel] 在两次输入相同的值时不会在组件中更新

node.js - 在 mac 中缺少对/usr/local/lib/node_modules 的写访问

javascript - 在哪里安全地存储 javascript 发送网格 api key ?

javascript - 你能强制IE8识别背景大小: 100%?吗

html - CSS3 IE9 点击通过伪元素?

javascript - Bootstrap 切换复选框在 ng-view 中不起作用

html - 在垂直菜单中将元素推到底部