Skip to content

Commit

Permalink
CSS: Correctly set support properties with non-default zoom
Browse files Browse the repository at this point in the history
Fixes gh-3808
Closes gh-3872
  • Loading branch information
SaptakS authored and gibson042 committed Dec 6, 2017
1 parent 0aa832a commit f00a075
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 3 deletions.
10 changes: 7 additions & 3 deletions src/css/support.js
Expand Up @@ -30,16 +30,16 @@ define( [
pixelPositionVal = divStyle.top !== "1%";

// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44
reliableMarginLeftVal = divStyle.marginLeft === "12px";
reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;

// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3
// Some styles come back with percentage values, even though they shouldn't
div.style.right = "60%";
pixelBoxStylesVal = divStyle.right === "36px";
pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;

// Support: IE 9 - 11 only
// Detect misreporting of content dimensions for box-sizing:border-box elements
boxSizingReliableVal = divStyle.width === "36px";
boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;

// Support: IE 9 only
// Detect overflow:scroll screwiness (gh-3699)
Expand All @@ -53,6 +53,10 @@ define( [
div = null;
}

function roundPixelMeasures( measure ) {
return Math.round( parseFloat( measure ) );
}

var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,
reliableMarginLeftVal,
container = document.createElement( "div" ),
Expand Down
26 changes: 26 additions & 0 deletions test/data/css/cssWidthBrowserZoom.html
@@ -0,0 +1,26 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
html {
zoom: 1.1;
}
#test {
width: 100px;
height: 100px;
padding: 10px;
border: 1px solid pink;
box-sizing: border-box;
}
</style>
</head>
<body>
<div id="test"></div>
<script src="../../jquery.js"></script>
<script src="../iframeTest.js"></script>
<script>
startIframeTest( jQuery( "#test" ).css( 'width' ) );
</script>
</body>
</html>
9 changes: 9 additions & 0 deletions test/unit/css.js
Expand Up @@ -1164,6 +1164,15 @@ testIframe(
}
);

testIframe(
"css('width') should work correctly with browser zooming",
"css/cssWidthBrowserZoom.html",
function( assert, jQuery, window, document, cssWidthBrowserZoom ) {
assert.expect( 1 );
assert.strictEqual( cssWidthBrowserZoom, "100px", "elem.css('width') works correctly with browser zoom" );
}
);

( function() {
var supportsFractionalGBCR,
qunitFixture = document.getElementById( "qunit-fixture" ),
Expand Down

1 comment on commit f00a075

@damanwiththeplan
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

delete the test files

Please sign in to comment.