Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/33.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在CSS中定位元素_Javascript_Css - Fatal编程技术网

如何使用javascript在CSS中定位元素

如何使用javascript在CSS中定位元素,javascript,css,Javascript,Css,HTML元素的位置在链接的CSS中确定 div.title { position:absolute; top:12px; } 我只能使用document.styleSheets[0].cssRules[0].position查找标题位置的值,但我如何知道此位置属于标题? 换句话说,js代码如何知道文档.styleSheets[0].cssRules[0]是标题?我想这回答了你的问题: 您可以使用document.styleSheets[0].cssRules[0]。选择OrTe

HTML元素的位置在链接的CSS中确定

div.title  
{  
position:absolute;  
top:12px;  
}
我只能使用
document.styleSheets[0].cssRules[0].position
查找标题位置的值,但我如何知道此位置属于标题?

换句话说,js代码如何知道
文档.styleSheets[0].cssRules[0]
是标题?

我想这回答了你的问题:


您可以使用
document.styleSheets[0].cssRules[0]。选择OrText
,它将为您提供“div.title”

我想这回答了您的问题:


您可以使用
document.styleSheets[0].cssRules[0]。选择OrText
,它将为您提供“div.title”

您可以通过迭代样式表然后在其中重复规则(两个循环)来检查样式是否是您想要的样式

与获得计算样式相比,显然效率不高,但下面是一个示例

// iterate stylesheets
var css = document.styleSheets;
for (var i in css) {
    if (!isNaN(i)) {
        // iterate rules in the stylesheets
        for (var j in css[i].cssRules) {
            if (!isNaN(j)) {
                var rule = css[i].cssRules[j];
                if (rule.selectorText.indexOf('div.title') > -1) {
                    // do something with position value
                    alert(css[i].cssRules[j].style.position);
                }
            }
        }
    }
}

您可以通过迭代样式表,然后迭代其中的规则(两个循环)来检查样式是否是您想要的样式

与获得计算样式相比,显然效率不高,但下面是一个示例

// iterate stylesheets
var css = document.styleSheets;
for (var i in css) {
    if (!isNaN(i)) {
        // iterate rules in the stylesheets
        for (var j in css[i].cssRules) {
            if (!isNaN(j)) {
                var rule = css[i].cssRules[j];
                if (rule.selectorText.indexOf('div.title') > -1) {
                    // do something with position value
                    alert(css[i].cssRules[j].style.position);
                }
            }
        }
    }
}

获取样式时,浏览器存在一些差异。要常规获取样式规则,请执行以下操作:

function getStyleRule(s) {
  var sheet, sheets = document.styleSheets;
  var ruleProp, rule, rules;

  for (var i=0, iLen=sheets.length; i<iLen; i++) {
    ruleProp = ruleProp || (sheets[i].cssRules? 'cssRules' : 'rules');
    rules = sheets[i][ruleProp];

    for (var j=0, jLen=rules.length; j<jLen; j++) {
      rule = rules[j];
      if (s == rule.selectorText) {
        return rule;
      }
    }
  }
}
要查看选择器,请执行以下操作:

alert( rules[0].selectorText );
要查看已设置的样式,请执行以下操作:

alert( rules[0].cssText || rules[0].style.cssText);

请注意,一些浏览器将返回样式表中所写的内容,而另一些浏览器将返回其对该内容的解释(即,它依赖于实现,无法直接在不同浏览器之间进行比较)。

获取样式时,浏览器存在一些差异。要常规获取样式规则,请执行以下操作:

function getStyleRule(s) {
  var sheet, sheets = document.styleSheets;
  var ruleProp, rule, rules;

  for (var i=0, iLen=sheets.length; i<iLen; i++) {
    ruleProp = ruleProp || (sheets[i].cssRules? 'cssRules' : 'rules');
    rules = sheets[i][ruleProp];

    for (var j=0, jLen=rules.length; j<jLen; j++) {
      rule = rules[j];
      if (s == rule.selectorText) {
        return rule;
      }
    }
  }
}
要查看选择器,请执行以下操作:

alert( rules[0].selectorText );
要查看已设置的样式,请执行以下操作:

alert( rules[0].cssText || rules[0].style.cssText);

请注意,有些浏览器将返回样式表中所写的内容,而其他浏览器将返回其对该内容的解释(即,它依赖于实现,无法直接在不同浏览器之间进行比较)。

您真的在寻找样式表中的内容吗?或者你想要div的实际位置值?我只想得到字符串“div.title”,你真的在寻找样式表中的内容吗?或者你想要div的实际位置值吗?我只是想得到字符串“div.title”,我尝试了你的解决方案,但得到了一个“undefined”是因为这个方法与不同的浏览器有一些兼容性问题。你把“selectorTect”误认为是“selectorText”,谢谢。在使用规则而不是cssRules的浏览器中,它会失败(例如IE的版本)。我尝试了你的解决方案,但我得到了一个“未定义”的问题,即此方法与不同的浏览器存在兼容性问题。你将“selectorText”误认为是“selectorText”。谢谢。在使用规则而不是cssRules的浏览器中(例如IE的版本),它将失败。