Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用JS将html元素放置在绝对坐标中,而不考虑主体样式(位置、边距)?_Javascript_Html_Css Position - Fatal编程技术网

Javascript 如何使用JS将html元素放置在绝对坐标中,而不考虑主体样式(位置、边距)?

Javascript 如何使用JS将html元素放置在绝对坐标中,而不考虑主体样式(位置、边距)?,javascript,html,css-position,Javascript,Html,Css Position,我试图将一个元素放置在一个网站中,距离视口顶部边界一定数量的像素处。问题在于,尽管使用了绝对定位,但定位仍然取决于体型。例如,如果主体具有相对定位和边距顶部值,则绝对定位元素的位置将增加主体边距顶部值。 那么,我如何使它独立于身体风格 注意:我不能使用任何框架,只使用纯JS 更新: 我希望位置受滚动的影响,所以“固定”定位不是一个选项。我还希望它是跨浏览器的。它非常简单,但在IE7中不起作用。您可以使用position:fixed相对于视口(浏览器边缘)定位元素,而不管父元素有什么边距、填充或其

我试图将一个元素放置在一个网站中,距离视口顶部边界一定数量的像素处。问题在于,尽管使用了绝对定位,但定位仍然取决于体型。例如,如果主体具有相对定位和边距顶部值,则绝对定位元素的位置将增加主体边距顶部值。 那么,我如何使它独立于身体风格

注意:我不能使用任何框架,只使用纯JS

更新:
我希望位置受滚动的影响,所以“固定”定位不是一个选项。我还希望它是跨浏览器的。

它非常简单,但在IE7中不起作用。您可以使用
position:fixed
相对于视口(浏览器边缘)定位元素,而不管父元素有什么边距、填充或其他内容

要使用javascript执行此操作,请执行以下操作:

var container = document.getElementById('container');// This is your container. Replace accordingly.
var elementToInsert = document.createElement("div");// Create a new element.
elementToInsert.style.position ='fixed';// It will now position in relation to the viewport, regardless of where it is nested, etc.
elementToInsert.style.top = '100px';// Always add pixels, won't work otherwise.
elementToInsert.style.left = '300px';// Always add pixels, won't work otherwise.
elementToInsert.style.width = '500px';// Always add pixels, won't work otherwise.
elementToInsert.style.height = '500px';// Always add pixels, won't work otherwise.
container.appendChild(elementToInsert);// Append the new div to the container.

同样,你也不需要JS。简单的旧HTML+CSS也可以做到这一点。阅读更多关于CSS的信息
position:fixed

您只需将
位置设置为
固定

var div = document.createElement("div");
div.style.position = "fixed";
div.style.top = "0";
div.style.left = "0";
div.appendChild(document.createTextNode("Some Text"));
document.getElementsByTagName("body")[0].appendChild(div);

web开发人员用来消除浏览器之间差异的一个技巧是使用css文件重置属性,如正文边距

示例如下:


这假设不是css在正文中添加边距。

Oops-无论如何,我是在jQuery中这样做的-我将把它留作将来参考。希望下议院的选民也能离开

这在Chrome、Fx、IE8和IE9中都可以使用

​ 也就是说你可以

$(function() {
  $("#myimg").offset({top:0,left:0}); 
});    
$(function() {
  $("#myimg").offset({top:0,left:0}); 
});