指定的宽度百分比,但想要以像素为单位

Den*_*nzz 51 html css jquery

.test {
  border: 1px solid;
  cursor: pointer;
  height: 10px;
  position: relative;
  width: 100%;
}
Run Code Online (Sandbox Code Playgroud)
<div id="test1" class="test"></div>
Run Code Online (Sandbox Code Playgroud)

我已经显示了我的HTML id和它的CSS.现在,当我在做的时候,$('#test').width()我正在接受100.我想要它width的像素(不是%).

任何人都可以告诉如何以像素为单位获得宽度?

Jan*_*čík 39

其中一个选项也是,父元素不可见.这是一个例子:http: //jsfiddle.net/nDMM3/

你可以看到,jQuery返回宽度= 100(如100%)

.test {
    border: 1px solid;
    cursor: pointer;
    height: 10px;
    position: relative;
    width: 100%;
    display:none;
}

#test2{
   width:100%;
}

<div id="test1" class="test">
   <div id="test2">
      Hello
   </div>    
 </div>   

 alert($('#test2').width());
Run Code Online (Sandbox Code Playgroud)

  • 不要以为任何人想出一个聪明的方法来解决这个问题,是吗? (3认同)

ayy*_*yyp 25

.width()根据jQuery宽度文档获取所使用元素的"...当前计算宽度":http://api.jquery.com/width/,因此返回值$('#heatMapBar').width()以像素为单位,而不是百分比.我建议使用开发人员工具来检查宽度,它可能是在#heatMapBar当前的上下文中,它的宽度是100px.

如果你看这里:http://jsfiddle.net/NkQXa/1/你会看到#test设置为width:50%;,但它会提醒实际的像素宽度.

  • 这不适用于响应式设计.返回百分比. (23认同)
  • 真正!这是由于时间的关系.几秒钟后我检查了相同的宽度然后它显示了我适当的宽度.所以可能是我称之为不合适的时候.谢谢 (5认同)
  • `.width()`给我'39.4` ......但它应该是大约400 ....然后我检查了`.css('width')`它返回了"39.4%"`. ...... ...... ......看@ honzik的答案如下解释原因 (4认同)

小智 5

多个div具有百分比宽度可能存在问题:

<div style="width: 50%">
<div id="getMyWidth" style="width: 100%"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

在这种情况下,它为我的内部div返回100作为宽度.我通过获取外部div的宽度来解决它.