Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.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(';fontSize';)在Edge中产生不同的结果?_Javascript_Html_Css_Microsoft Edge - Fatal编程技术网

Javascript 为什么.css(';fontSize';)在Edge中产生不同的结果?

Javascript 为什么.css(';fontSize';)在Edge中产生不同的结果?,javascript,html,css,microsoft-edge,Javascript,Html,Css,Microsoft Edge,考虑此代码(也包括在中): document.getElementById(“span”).innerHTML+=$('#input').css('fontSize') span输入{ 字体大小:继承; } 输入{ 字体大小:15px; } 更新:现在已修复;表示他/她是Edge团队的项目经理,修复将在2017年初送达客户 它看起来非常像IE和Edge bug。没有找到它 下面是对代码段的更新,它通过getComputedStyle或currentStyle查看IE/Edge告诉jQuery

考虑此代码(也包括在中):

document.getElementById(“span”).innerHTML+=$('#input').css('fontSize')
span输入{
字体大小:继承;
}
输入{
字体大小:15px;
}

更新:现在已修复;表示他/她是Edge团队的项目经理,修复将在2017年初送达客户


它看起来非常像IE和Edge bug。没有找到它

下面是对代码段的更新,它通过
getComputedStyle
currentStyle
查看IE/Edge告诉jQuery的内容:

var输入=$(“#输入”);
log(“jQuery:+input.css('fontSize'));
if(window.getComputedStyle){
log(“getComputedStyle:+getComputedStyle(输入[0]).fontSize);
}
if(输入[0].currentStyle){
console.log(“currentStyle:+输入[0].currentStyle.fontSize”);
}
span输入{
字体大小:继承;
}
输入{
字体大小:15px;
}

在得到真正的答案之前,我想深入了解一下细节

这段代码在做什么?

.css();
他们告诉我们:

获取中第一个元素的计算样式属性的值 匹配元素集,或为其设置一个或多个CSS属性 每个匹配的元素

此外:

.css()方法是获取计算样式属性的方便方法 从第一个匹配的元素,特别是根据不同的 浏览器访问大多数这些属性的方式(…)

那么计算意味着什么呢?

.css();
:

CSS属性的计算值是从指定的 价值依据:

  • 处理特殊值inherit和initial,以及
  • 进行所需的计算,以达到属性摘要中“计算值”行中描述的值
好了,现在这部分也清楚了。让我们找到真正的答案:

根据这项研究,css规则在HTML元素上的“权重”比其他规则更大

以下是实际订单:

  • 样式属性
  • 身份证
  • 类,伪类属性
  • 元素
  • 根据这些规则,您的输入应该从Style属性中继承30px

    那么在IE11/Edge中发生了什么呢?

    .css();
    
    IE11和Edge都计算错误的CSS规则。如果您仅将CSS更改为以下内容:

    span input {
      font-size: inherit;
    }
    
    它开始起作用了。根据收集到的信息,我假设两者的JavaScript引擎都在计算真正的CSS值,而不是遵循CSS规则顺序

    我试图改变ID并在输入中添加一个类,但仍然没有成功

    我记得IE11和Edge在继承CSS和伪类时遇到了一些问题,也许这与此有关

    问候,,
    Megajin

    欢迎来到Stack Overflow!问题的全部内容必须在问题中,而不仅仅是链接。链接会腐烂,使得问题及其答案对未来的人们来说毫无用处,人们不应该非得离开网站去帮助你。提出一个问题,最好使用堆栈片段(工具栏按钮)使其可运行。更多:mplungjan和我已经更新了与上述问题相关的问题^^听起来像是
    jQuery
    Edge
    的错误报告。同时,您可以尝试使用
    getComputedStyle(document.getElementById('input')).fontSize
    ,看看结果是否正确。@mplungjan-让我们确保保留小提琴中使用的jQuery操作版本。啊,好主意。更具体地说,是IE/Edge在报告大小时未识别
    inherit
    指令。不过渲染是正确的,我想这是IE11和Edge的JavaScript引擎的问题。他们计算CSS值而不是继承的值。嗨,我是Edge团队的项目经理。我想报告这个错误现在已经在我们的内部版本中修复了。您可以预期此修复将在2017年初送达客户。@FremyCompany:转机不错!!