使用Jquery返回CSS高度,未计算,但已声明

Nat*_*e L 7 html css jquery

我想,这可能是在以前版本的jQuery的默认值,但是当我打电话.css("height").height(),它返回计算的高度,这是不是我want-我只想要一个高度值,如果它是在CSS文件中明确声明对于那个元素.

就好像它没有被宣布在任何地方一样,也许它可能会'auto'像顶部和左边那样返回...

例如,我的CSS看起来像这样:

.element{
    margin-left:5px;
    color:red;
}
Run Code Online (Sandbox Code Playgroud)

.css("margin-left")返回"5px",同时.css("height")返回,20即使它没有专门设置...

谢谢

Oze*_*ich 0

浏览器会自动计算 CSS 高度和宽度。

例如,您可以在 Chrome 开发者工具 (F12) 的“计算样式”选项卡中看到它们

和文档:

jQuery.width()

获取匹配元素集中第一个元素的当前计算宽度或设置每个匹配元素的宽度。

.css(width) 和 .width() 之间的区别在于,后者返回无单位的像素值(例如 400),而前者返回完整单位的值(例如 400px)

但如果你想获得正确的 CSS 值,我建议不要使用 jQuery

如果我们有 HTML:

<div id="elem" style="height: auto"></div>
Run Code Online (Sandbox Code Playgroud)

我们可以写JS:

$('#elem').get(0).style.height    // "auto"
Run Code Online (Sandbox Code Playgroud)

如果我们有 HTML:

<div id="elem"></div>
Run Code Online (Sandbox Code Playgroud)

JS:

$('#elem').get(0).style.height    // ""
Run Code Online (Sandbox Code Playgroud)

通用功能:

var height = function(elem){
      return $(elem).get(0).style.height === "" ? $(elem).height() : $(elem).get(0).style.height;
}
Run Code Online (Sandbox Code Playgroud)