我有一個頁面由寬度和高度設置爲auto的元素組成,它們的尺寸用左,右,上,下屬性定義。加載頁面時,瀏覽器將所有寬度和高度設置爲其計算值,因爲它們應該是。但是,當我將元素的最小寬度設置爲各自計算的寬度時,每個元素都會擴展2px。如果我將其最小高度設置爲等於計算的高度,則會發生相同的情況。我這樣做與jQuery,這樣當我有寬度:自動和特定的左和右,爲什麼設置最小寬度的計算寬度的值擴大元素2px?
element.css('min-width', element.css('width'));
或
element.css('min-width', element.width());
的影響是因爲它應該是完全一樣的,但不應該有額外的2px如果我明白髮生了什麼正確。使用
element.css('min-width', element.width() - 2);
完全解決了這個問題,但我不喜歡不理解爲什麼還有額外的2px。根據規範,寬度,最小寬度和最大寬度都不應包含填充,邊框或邊距。
我已經在Chrome和FF中測試過,兩者的行爲方式都是一樣的。
您是否嘗試將邊框寬度,填充和邊距設置爲0?請使用http://jsfiddle.net/創建一個示例,並將其添加到您的帖子中。 – zihotki
問題出在你的'.width()'獲得了整個寬度或者我認爲的最外部寬度,也許'.width()'應該是'.css('width')'在這個地方讀一下,但看看兩者的區別:)應該給你一個答案 – Val
看看你的元素使用Firebug。有時候,你可能會從父元素繼承一些你甚至沒有意識到的東西。 – konung