Support: Simplify the box-sizing test

Don't require body in the support.boxSizing test.
parent 4a6d1631
...@@ -171,7 +171,7 @@ function getWidthOrHeight( elem, name, extra ) { ...@@ -171,7 +171,7 @@ function getWidthOrHeight( elem, name, extra ) {
var valueIsBorderBox = true, var valueIsBorderBox = true,
val = name === "width" ? elem.offsetWidth : elem.offsetHeight, val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
styles = getStyles( elem ), styles = getStyles( elem ),
isBorderBox = support.boxSizing() && jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; isBorderBox = support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
// some non-html elements return undefined for offsetWidth, so check for null/undefined // some non-html elements return undefined for offsetWidth, so check for null/undefined
// svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285 // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285
...@@ -366,7 +366,7 @@ jQuery.each([ "height", "width" ], function( i, name ) { ...@@ -366,7 +366,7 @@ jQuery.each([ "height", "width" ], function( i, name ) {
elem, elem,
name, name,
extra, extra,
support.boxSizing() && jQuery.css( elem, "boxSizing", false, styles ) === "border-box", support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
styles styles
) : 0 ) : 0
); );
......
...@@ -5,7 +5,7 @@ define([ ...@@ -5,7 +5,7 @@ define([
(function() { (function() {
// Minified: var b,c,d,e,f,g, h,i // Minified: var b,c,d,e,f,g, h,i
var div, style, a, pixelPositionVal, boxSizingVal, boxSizingReliableVal, var div, style, a, pixelPositionVal, boxSizingReliableVal,
reliableHiddenOffsetsVal, reliableMarginRightVal; reliableHiddenOffsetsVal, reliableMarginRightVal;
// Setup // Setup
...@@ -33,6 +33,11 @@ define([ ...@@ -33,6 +33,11 @@ define([
div.cloneNode( true ).style.backgroundClip = ""; div.cloneNode( true ).style.backgroundClip = "";
support.clearCloneStyle = div.style.backgroundClip === "content-box"; support.clearCloneStyle = div.style.backgroundClip === "content-box";
// Support: Firefox<29, Android 2.3
// Vendor-prefix box-sizing
support.boxSizing = style.boxSizing === "" || style.MozBoxSizing === "" ||
style.WebkitBoxSizing === "";
jQuery.extend(support, { jQuery.extend(support, {
reliableHiddenOffsets: function() { reliableHiddenOffsets: function() {
if ( reliableHiddenOffsetsVal == null ) { if ( reliableHiddenOffsetsVal == null ) {
...@@ -41,13 +46,6 @@ define([ ...@@ -41,13 +46,6 @@ define([
return reliableHiddenOffsetsVal; return reliableHiddenOffsetsVal;
}, },
boxSizing: function() {
if ( boxSizingVal == null ) {
computeStyleTests();
}
return boxSizingVal;
},
boxSizingReliable: function() { boxSizingReliable: function() {
if ( boxSizingReliableVal == null ) { if ( boxSizingReliableVal == null ) {
computeStyleTests(); computeStyleTests();
...@@ -94,12 +92,6 @@ define([ ...@@ -94,12 +92,6 @@ define([
"box-sizing:border-box;display:block;margin-top:1%;top:1%;" + "box-sizing:border-box;display:block;margin-top:1%;top:1%;" +
"border:1px;padding:1px;width:4px;position:absolute"; "border:1px;padding:1px;width:4px;position:absolute";
// Workaround failing boxSizing test due to offsetWidth returning wrong value
// with some non-1 values of body zoom, ticket #13543
jQuery.swap( body, body.style.zoom != null ? { zoom: 1 } : {}, function() {
boxSizingVal = div.offsetWidth === 4;
});
// Support: IE<9 // Support: IE<9
// Assume reasonable values in the absence of getComputedStyle // Assume reasonable values in the absence of getComputedStyle
pixelPositionVal = false; pixelPositionVal = false;
......
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
body {
zoom: 0.87;
}
</style>
</head>
<body>
<script src="../../jquery.js"></script>
<script>
jQuery(function() {
window.parent.iframeCallback( jQuery.support.boxSizing() );
});
</script>
</body>
</html>
...@@ -45,11 +45,6 @@ if ( jQuery.css ) { ...@@ -45,11 +45,6 @@ if ( jQuery.css ) {
}); });
} }
testIframeWithCallback( "A non-1 zoom on body doesn't cause WebKit to fail box-sizing test", "support/boxSizing.html", function( boxSizing ) {
expect( 1 );
equal( boxSizing, computedSupport.boxSizing, "box-sizing properly detected on page with non-1 body zoom" );
});
testIframeWithCallback( "A background on the testElement does not cause IE8 to crash (#9823)", "support/testElementCrash.html", function() { testIframeWithCallback( "A background on the testElement does not cause IE8 to crash (#9823)", "support/testElementCrash.html", function() {
expect( 1 ); expect( 1 );
ok( true, "IE8 does not crash" ); ok( true, "IE8 does not crash" );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment