【发布时间】:2016-08-12 07:51:33
【问题描述】:
我对 jquery 方法 .width() 有疑问。我有 4 个不同的 textarea 需要根据包含它们的 div 的大小来调整大小,所以我调用方法 .width() 来获取 div 的实际宽度(无论如何是窗口的 100%)但是这个方法即使将所有内容包装在 $(window).ready() 中,也总是得到错误的值。
这里是 CSS
#contCode{
width: 100%;
height: 500px;
margin-top: 50px;
float: left;
padding: 0;
}
.codeArea{
float: left;
font-family: "Lucida Console", Monaco, monospace;
height:100%;
padding: 5px 0 0 5px;
margin: 0;
border-right: 1px solid black;
border-bottom: 1px solid black;
resize: none;
}
这是 HTML
<div id="contCode">
<textarea class="codeArea" placeholder="Put your code here"></textarea>
<textarea class="codeArea" placeholder="Put your code here"></textarea>
<textarea class="codeArea" placeholder="Put your code here"></textarea>
<div class="codeArea"></div>
</div>
这是脚本
$(window).ready(function (){
var wi = $("#contCode").width();
var wiTex;
wiTex = (wi) / 4;
$(".codeArea").width(wiTex);
});
我已经尝试过 outerWidth 和 innerWith 并得到了相同的结果。
【问题讨论】:
-
你得到了什么结果?
-
It returns the correct size. 你可能对为什么在第三个文本区域之后有一个换行符感到困惑。
border为您没有考虑的每个codeArea添加额外的宽度。试试wiTex = ((wi) / 4) - 8;减去 8 会导致每个框多出 2 个像素。 -
@MikeC – 除了减去 8 个像素 doesn't actually fix it。请参阅下面的答案
-
@KevinJantzer 你的答案没有错,但是subtracting 8 pixels does work. 你对错误的值执行减法。
-
@MikeC - 这个逻辑不是你所描述的“每个盒子 2 个额外像素”——当边框每个只占 2 个像素(=8 )
标签: javascript jquery html css