Chrome 中的绝对定位?

发布于 2024-12-29 17:05:05 字数 661 浏览 0 评论 0原文

它适用于 IE/FF,但不适用于 Chrome。

    html += '<div id = "note" style = "position: absolute; background-color:'
           + newcss[0] + '; margin-left:'
           + newcss[1] + '; margin-top:'
           + newcss[2] +  '; width = 100px; height = 100px;">'
           + newnote + '</div>';

基本上,我在页面中添加了一个新注释,具有随机颜色,以及从左侧和顶部的位置(存储在 newcss 中)。

IE 与 Chrome 的图片(左侧为 IE):

https://i.sstatic.net/LFZhD.png< /a>

编辑:是的,这是一个错误; width: 和 height: 将其修复为实际上正确的大小,但它们仍然全部粘贴在栏下方的同一个位置,而不是随机空格

编辑2:我最初将它们作为单独的 id (我只是在乱搞jquery看东西哈哈)

It works in IE/FF but not Chrome.

    html += '<div id = "note" style = "position: absolute; background-color:'
           + newcss[0] + '; margin-left:'
           + newcss[1] + '; margin-top:'
           + newcss[2] +  '; width = 100px; height = 100px;">'
           + newnote + '</div>';

Basically I am adding a new note into the page, with random colors, and position from left and top (stores in newcss).

Pic of IE vs Chrome (IE on left):

https://i.sstatic.net/LFZhD.png

EDIT: Yah that was a mistake; width: and height: fixes it to actually be the right size, but they still are all just pasted on the same spot right under the bar, rather than random spaces

EDIT2: I originally had them as separate ids (I was just messing around with jquery to see something haha)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

甲如呢乙后呢 2025-01-05 17:05:05

给它 css

top: 0px;
left: 0px;
margin-top: newcss[2];
margin-left: newcss[1];
display: block;

或只是

top: 0px;
left: 0px;

give it css of

top: 0px;
left: 0px;
margin-top: newcss[2];
margin-left: newcss[1];
display: block;

or just

top: 0px;
left: 0px;
皓月长歌 2025-01-05 17:05:05

CSS 不正确。 Css 样式规则的格式为 key:val;,而不是 key=vale。绝对定位允许您定义 top left bottomright 值,并将对象放置在该位置(相对位置)到页面或包含元素(如果该元素设置了 position:relative ))。使用它们来放置绝对元素。

另外,您可能应该使用 DOM 对象而不是innerHTML。

var div = document.createElement('div');

div.setAttribute('class', 'note');

div.style.width = '100px';
div.style.height = '100px';
div.style.position = 'absolute';
div.style.backgroundColor = newcss[0];
div.style.top = newcss[1] + 'px';
div.style.left = newcss[2] + 'px';
container.appendChild(div);

更好的是,将永远不会改变的内容定义为样式规则,然后使用 Javascript 仅设置动态内容。

.note {
    position: absolute;
    width: 100px;
    height: 100px;
}

然后你所要做的就是设置 top leftbackground-color

div.setAttribute('class', 'note');
div.style.backgroundColor = newcss[0];
div.style.top = newcss[1] + 'px';
div.style.left = newcss[2] + 'px';
container.appendChild(div);

The css is incorrect. Css Style rules are in the form key:val; rather than key=vale. Absolute positioning allows you to define top left bottom and right values and places the object at that position ( either relative to the page or to the containing element ( if that element has position:relative set )). Use those for the placement of absolute elements.

Also you should probably be using the DOM objects rather than innerHTML.

var div = document.createElement('div');

div.setAttribute('class', 'note');

div.style.width = '100px';
div.style.height = '100px';
div.style.position = 'absolute';
div.style.backgroundColor = newcss[0];
div.style.top = newcss[1] + 'px';
div.style.left = newcss[2] + 'px';
container.appendChild(div);

Better even yet, defined the stuff that never changes as a style rule and then use the Javascript to only set the dynamic content.

.note {
    position: absolute;
    width: 100px;
    height: 100px;
}

Then all you have to do is set top left and background-color

div.setAttribute('class', 'note');
div.style.backgroundColor = newcss[0];
div.style.top = newcss[1] + 'px';
div.style.left = newcss[2] + 'px';
container.appendChild(div);
素罗衫 2025-01-05 17:05:05

请尝试以下操作:

html += '<div class = "note" '
     + 'style="position: absolute; '
     + 'background-color:' + newcss[0] + '; '
     + 'left:' + newcss[1] + '; '
     + 'top:' + newcss[2] + '; '
     + 'width: 100px; height: 100px;">' + newnote + '</div>';

更改:

  • id 更改为 class;在一个文档中两个元素具有相同的 id 是无效的。
  • margin-leftmargin-top 更改为 lefttop

Try this instead:

html += '<div class = "note" '
     + 'style="position: absolute; '
     + 'background-color:' + newcss[0] + '; '
     + 'left:' + newcss[1] + '; '
     + 'top:' + newcss[2] + '; '
     + 'width: 100px; height: 100px;">' + newnote + '</div>';

Changes:

  • Changed id to class; it is invalid for two elements to have the same id in one document.
  • Changed margin-left and margin-top to left and top.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文