[英]Need to know in jQuery if a max-width value is in % or px
jQuery中有某種方法可以知道css頁面中定義的元素的最大寬度值是%還是px,因為jQuery總是以px為單位返回該值。
我的意思是....
.contain {
max-width:80%;
}
jQuery-> .contain以%表示!
.contain {
max-width:80px;
}
jQuery-> .contain在px中!
謝謝!
$('.contain').css('max-width')
它將返回一個字符串,“ 80px”或“ 80%”
然后,您可以使用indexOf查找是否存在“ px”或“%”
if ($('.contain').css('max-width').indexOf("px") !== -1) {
//is in px
} else if ($('.contain').css('max-width').indexOf("%") !== -1) {
//is in %
}
奇怪的是,Louis Patrice Bessette和Mayday都是正確的。
五月天的答案是正確的...如果您在Chrome中進行了測試! .css('width')
將以px
返回(即使以%
設置),而.css('max-width')
將在使用該單位時返回%
! 但是,在Firefox中,該值始終為px
。 您可以使用以下代碼進行測試,然后在Firefox和Chrome中打開。
console.log($('div').css('max-width')); console.log($('div').css('width'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div style="width: 80%; max-width: 80%"> Bananas </div>
由此我們可以說,Louis Patrice Bessette正確地指出了您無法做到這一點。 的確如此,如果您正在談論jQuery的CSS方法-以及任何類似getComputedStyle的方法。
但是,您可以做的是解析樣式表並讀取寫在樣式中的實際值。 還有許多其他答案可以解決此問題,因此請檢查一下(您可以使用搜索功能查找更多答案):
或者,您可以簡單地將CSS文件讀取為文本文件,然后使用正則表達式來查找所需的值。 (但是,這可能更慢或更容易出錯)。
«.css()方法是獲取計算的樣式屬性(...)的便捷方法»
«請注意,元素的計算樣式可能與樣式表中為該元素指定的值不同。 例如,尺寸的計算樣式幾乎總是像素,但可以在樣式表中將它們指定為em,ex,px或%。»
這是使用最新jQuery版本(3.0.0)的測試小提琴 。
所以...簡單的答案是沒有。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.