设置为auto时获取元素的位置

时间:2018-04-03 02:14:12

标签: jquery html css

当您将margin属性设置为auto时,有没有办法获取元素的位置(使用jQuery或普通js)。

这就是我的意思: 的index.html

<div class="new_element">
       The new element 
</div>

Index.css

.new_element {
      max-width: 750px;
      margin-left: auto;
      margin-right: auto;
 }

我用这种方式设计我的CSS,以便div集中在一起,而不是填满系统上的整个窗口&gt; 750px。但它会开始缩小以适应较低的屏幕尺寸,最终会在手机上填满整个窗口

Index.js

//现在我想获得浏览器自动设置的渲染位置。我这样做了:

$('.new_element').position()

但是我收到了以下错误:

  

未捕获的TypeError:“。new_element”.position不是函数。

我认为如果您没有明确设置左侧和顶部属性,您将无法从Dom中获取它们。

有黑客攻击吗?我能做到这一点的方法吗?

2 个答案:

答案 0 :(得分:0)

您的上述代码工作正常 - .position() 确实会正确获取top设置为left的元素的marginauto8px。您在以下示例中看到的<body>来自console.log($('.new_element').position());,并由浏览器的用户代理样式表添加:

.new_element {
  max-width: 750px;
  margin-left: auto;
  margin-right: auto;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="new_element">
  The new element
</div>
.position()

值得注意的是,jQuery 1.2.6中引入了console.log($('.new_element').position());,并且jQuery版本的错误将显示为低于:

.new_element {
  max-width: 750px;
  margin-left: auto;
  margin-right: auto;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>

<div class="new_element">
  The new element
</div>
JSONObject object = response.getJSONObject("data");
JSONArray data = object.getJSONArray("data");

答案 1 :(得分:0)

好吧,伙计们。显然,代码一直都是正确的。 我忘了选择节点的“$”。

我做了

("new_element").position();

而不是

$("new_element").position();