mirror of
https://github.com/niklasvh/html2canvas.git
synced 2023-08-10 21:13:10 +03:00
z-index overhaul. relative above static; negative z-index
1. when stacking without z-index, positioned > floated > normal flow 2. supports negative z-index 3. new stacking context formed when opacity < 1 (standard) 4. new stacking context formed for position:fixed (no standard yet, done in mobile webkit and chrome 22+)
This commit is contained in:
120
tests/cases/zindex/z-index10.html
Normal file
120
tests/cases/zindex/z-index10.html
Normal file
@ -0,0 +1,120 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<!-- https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Understanding_z_index/The_stacking_context?redirectlocale=en-US&redirectslug=CSS%2FUnderstanding_z-index%2FThe_stacking_context
|
||||
-->
|
||||
<title>Understanding CSS z-index: The Stacking Context: Example Source</title>
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
|
||||
<style type="text/css">
|
||||
* {
|
||||
margin: 0;
|
||||
}
|
||||
html {
|
||||
padding: 20px;
|
||||
font: 12px/20px Arial, sans-serif;
|
||||
}
|
||||
div {
|
||||
opacity: 0.7;
|
||||
position: relative;
|
||||
}
|
||||
h1 {
|
||||
font: inherit;
|
||||
font-weight: bold;
|
||||
}
|
||||
#div1, #div2 {
|
||||
border: 1px dashed #696;
|
||||
padding: 10px;
|
||||
background-color: #cfc;
|
||||
}
|
||||
#div1 {
|
||||
z-index: 5;
|
||||
margin-bottom: 190px;
|
||||
}
|
||||
#div2 {
|
||||
z-index: 2;
|
||||
}
|
||||
#div3 {
|
||||
z-index: 4;
|
||||
opacity: 1;
|
||||
position: absolute;
|
||||
top: 40px;
|
||||
left: 180px;
|
||||
width: 330px;
|
||||
border: 1px dashed #900;
|
||||
background-color: #fdd;
|
||||
padding: 40px 20px 20px;
|
||||
}
|
||||
#div4, #div5 {
|
||||
border: 1px dashed #996;
|
||||
background-color: #ffc;
|
||||
}
|
||||
#div4 {
|
||||
z-index: 6;
|
||||
margin-bottom: 15px;
|
||||
padding: 25px 10px 5px;
|
||||
}
|
||||
#div5 {
|
||||
z-index: 1;
|
||||
margin-top: 15px;
|
||||
padding: 5px 10px;
|
||||
}
|
||||
#div6 {
|
||||
z-index: 3;
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
left: 180px;
|
||||
width: 150px;
|
||||
height: 125px;
|
||||
border: 1px dashed #009;
|
||||
padding-top: 125px;
|
||||
background-color: #ddf;
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="div1">
|
||||
<h1>Division Element #1</h1>
|
||||
<code>position: relative;<br/>
|
||||
z-index: 5;</code>
|
||||
</div>
|
||||
|
||||
<div id="div2">
|
||||
<h1>Division Element #2</h1>
|
||||
<code>position: relative;<br/>
|
||||
z-index: 2;</code>
|
||||
</div>
|
||||
|
||||
<div id="div3">
|
||||
|
||||
<div id="div4">
|
||||
<h1>Division Element #4</h1>
|
||||
<code>position: relative;<br/>
|
||||
z-index: 6;</code>
|
||||
</div>
|
||||
|
||||
<h1>Division Element #3</h1>
|
||||
<code>position: absolute;<br/>
|
||||
z-index: 4;</code>
|
||||
|
||||
<div id="div5">
|
||||
<h1>Division Element #5</h1>
|
||||
<code>position: relative;<br/>
|
||||
z-index: 1;</code>
|
||||
</div>
|
||||
|
||||
<div id="div6">
|
||||
<h1>Division Element #6</h1>
|
||||
<code>position: absolute;<br/>
|
||||
z-index: 3;</code>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
34
tests/cases/zindex/z-index5.html
Normal file
34
tests/cases/zindex/z-index5.html
Normal file
@ -0,0 +1,34 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>z-index tests #5</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<style type="text/css">
|
||||
div.lev1 {
|
||||
width: 250px;
|
||||
height: 70px;
|
||||
position: relative;
|
||||
border: 2px solid #669966;
|
||||
background-color: #ccffcc;
|
||||
padding-left: 5px;
|
||||
}
|
||||
div.background {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
width: 250px;
|
||||
background-color: #ffdddd;
|
||||
}
|
||||
</style></head>
|
||||
|
||||
<body>
|
||||
<div class="lev1">
|
||||
LEVEL #1
|
||||
</div>
|
||||
<div class="background"></div>
|
||||
<div class="lev1">
|
||||
<span>LEVEL #1</span>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
33
tests/cases/zindex/z-index6.html
Normal file
33
tests/cases/zindex/z-index6.html
Normal file
@ -0,0 +1,33 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>z-index tests #6</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<style type="text/css">
|
||||
div {
|
||||
width: 250px;
|
||||
height: 70px;
|
||||
position: relative;
|
||||
border: 2px solid #669966;
|
||||
background-color: #ccffcc;
|
||||
padding-left: 5px;
|
||||
}
|
||||
div.z0 {
|
||||
z-index: 0;
|
||||
top:105px;
|
||||
left:20px;
|
||||
background-color: #ffdddd;
|
||||
}
|
||||
|
||||
div.z1 {
|
||||
z-index: 1;
|
||||
}
|
||||
</style></head>
|
||||
|
||||
<body>
|
||||
<div class="z0"><span>z-index:0</span></div>
|
||||
<div>default z-index</div>
|
||||
<div class="z1">z-index:1</div>
|
||||
</body>
|
||||
</html>
|
102
tests/cases/zindex/z-index7.html
Normal file
102
tests/cases/zindex/z-index7.html
Normal file
@ -0,0 +1,102 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Stacking without z-index</title>
|
||||
<!-- https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Understanding_z_index/Stacking_without_z-index?redirectlocale=en-US&redirectslug=CSS%2FUnderstanding_z-index%2FStacking_without_z-index -->
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<style type="text/css">
|
||||
|
||||
div {
|
||||
font: 12px Arial;
|
||||
}
|
||||
|
||||
span.bold { font-weight: bold; }
|
||||
|
||||
#normdiv {
|
||||
height: 70px;
|
||||
border: 1px dashed #999966;
|
||||
background-color: #ffffcc;
|
||||
margin: 0px 50px 0px 50px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#reldiv1 {
|
||||
opacity: 0.7;
|
||||
height: 100px;
|
||||
position: relative;
|
||||
top: 30px;
|
||||
border: 1px dashed #669966;
|
||||
background-color: #ccffcc;
|
||||
margin: 0px 50px 0px 50px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#reldiv2 {
|
||||
opacity: 0.7;
|
||||
height: 100px;
|
||||
position: relative;
|
||||
top: 15px;
|
||||
left: 20px;
|
||||
border: 1px dashed #669966;
|
||||
background-color: #ccffcc;
|
||||
margin: 0px 50px 0px 50px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#absdiv1 {
|
||||
opacity: 0.7;
|
||||
position: absolute;
|
||||
width: 150px;
|
||||
height: 350px;
|
||||
top: 10px;
|
||||
left: 10px;
|
||||
border: 1px dashed #990000;
|
||||
background-color: #ffdddd;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#absdiv2 {
|
||||
opacity: 0.7;
|
||||
position: absolute;
|
||||
width: 150px;
|
||||
height: 350px;
|
||||
top: 10px;
|
||||
right: 10px;
|
||||
border: 1px dashed #990000;
|
||||
background-color: #ffdddd;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
</style></head>
|
||||
|
||||
<body>
|
||||
|
||||
<br /><br />
|
||||
|
||||
<div id="absdiv1">
|
||||
<br /><span class="bold">DIV #1</span>
|
||||
<br />position: absolute;
|
||||
</div>
|
||||
|
||||
<div id="reldiv1">
|
||||
<br /><span class="bold">DIV #2</span>
|
||||
<br />position: relative;
|
||||
</div>
|
||||
|
||||
<div id="reldiv2">
|
||||
<br /><span class="bold">DIV #3</span>
|
||||
<br />position: relative;
|
||||
</div>
|
||||
|
||||
<div id="absdiv2">
|
||||
<br /><span class="bold">DIV #4</span>
|
||||
<br />position: absolute;
|
||||
</div>
|
||||
|
||||
<div id="normdiv">
|
||||
<br /><span class="bold">DIV #5</span>
|
||||
<br />no positioning
|
||||
</div>
|
||||
|
||||
</body></html>
|
104
tests/cases/zindex/z-index8.html
Normal file
104
tests/cases/zindex/z-index8.html
Normal file
@ -0,0 +1,104 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Stacking and float</title>
|
||||
<!-- https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Understanding_z_index/Stacking_and_float?redirectlocale=en-US&redirectslug=CSS%2FUnderstanding_z-index%2FStacking_and_float -->
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<style type="text/css">
|
||||
|
||||
div {
|
||||
font: 12px Arial;
|
||||
}
|
||||
|
||||
span.bold { font-weight: bold; }
|
||||
|
||||
#absdiv1 {
|
||||
opacity: 0.7;
|
||||
position: absolute;
|
||||
width: 150px;
|
||||
height: 200px;
|
||||
top: 10px;
|
||||
right: 140px;
|
||||
border: 1px dashed #990000;
|
||||
background-color: #ffdddd;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#normdiv {
|
||||
/*opacity: 0.7;*/
|
||||
height: 100px;
|
||||
border: 1px dashed #999966;
|
||||
background-color: #ffffcc;
|
||||
margin: 0px 10px 0px 10px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#flodiv1 {
|
||||
opacity: 0.7;
|
||||
margin: 0px 10px 0px 20px;
|
||||
float: left;
|
||||
width: 150px;
|
||||
height: 200px;
|
||||
border: 1px dashed #009900;
|
||||
background-color: #ccffcc;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#flodiv2 {
|
||||
opacity: 0.7;
|
||||
margin: 0px 20px 0px 10px;
|
||||
float: right;
|
||||
width: 150px;
|
||||
height: 200px;
|
||||
border: 1px dashed #009900;
|
||||
background-color: #ccffcc;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#absdiv2 {
|
||||
opacity: 0.7;
|
||||
position: absolute;
|
||||
width: 150px;
|
||||
height: 100px;
|
||||
top: 130px;
|
||||
left: 100px;
|
||||
border: 1px dashed #990000;
|
||||
background-color: #ffdddd;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
</style></head>
|
||||
|
||||
<body>
|
||||
|
||||
<br /><br />
|
||||
|
||||
<div id="absdiv1">
|
||||
<br /><span class="bold">DIV #1</span>
|
||||
<br />position: absolute;
|
||||
</div>
|
||||
|
||||
<div id="flodiv1">
|
||||
<br /><span class="bold">DIV #2</span>
|
||||
<br />float: left;
|
||||
</div>
|
||||
|
||||
<div id="flodiv2">
|
||||
<br /><span class="bold">DIV #3</span>
|
||||
<br />float: right;
|
||||
</div>
|
||||
|
||||
<br />
|
||||
|
||||
<div id="normdiv">
|
||||
<br /><span class="bold">DIV #4</span>
|
||||
<br />no positioning
|
||||
</div>
|
||||
|
||||
<div id="absdiv2">
|
||||
<br /><span class="bold">DIV #5</span>
|
||||
<br />position: absolute;
|
||||
</div>
|
||||
|
||||
</body></html>
|
108
tests/cases/zindex/z-index9.html
Normal file
108
tests/cases/zindex/z-index9.html
Normal file
@ -0,0 +1,108 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html>
|
||||
<head><title>Adding z-index</title>
|
||||
<!-- https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Understanding_z_index/Adding_z-index?redirectlocale=en-US&redirectslug=CSS%2FUnderstanding_z-index%2FAdding_z-index -->
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<style type="text/css">
|
||||
|
||||
div {
|
||||
opacity: 0.7;
|
||||
font: 12px Arial;
|
||||
}
|
||||
|
||||
span.bold { font-weight: bold; }
|
||||
|
||||
#normdiv {
|
||||
z-index: 8;
|
||||
height: 70px;
|
||||
border: 1px dashed #999966;
|
||||
background-color: #ffffcc;
|
||||
margin: 0px 50px 0px 50px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#reldiv1 {
|
||||
z-index: 3;
|
||||
height: 100px;
|
||||
position: relative;
|
||||
top: 30px;
|
||||
border: 1px dashed #669966;
|
||||
background-color: #ccffcc;
|
||||
margin: 0px 50px 0px 50px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#reldiv2 {
|
||||
z-index: 2;
|
||||
height: 100px;
|
||||
position: relative;
|
||||
top: 15px;
|
||||
left: 20px;
|
||||
border: 1px dashed #669966;
|
||||
background-color: #ccffcc;
|
||||
margin: 0px 50px 0px 50px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#absdiv1 {
|
||||
z-index: 5;
|
||||
position: absolute;
|
||||
width: 150px;
|
||||
height: 350px;
|
||||
top: 10px;
|
||||
left: 10px;
|
||||
border: 1px dashed #990000;
|
||||
background-color: #ffdddd;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#absdiv2 {
|
||||
z-index: 1;
|
||||
position: absolute;
|
||||
width: 150px;
|
||||
height: 350px;
|
||||
top: 10px;
|
||||
right: 10px;
|
||||
border: 1px dashed #990000;
|
||||
background-color: #ffdddd;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
</style></head>
|
||||
|
||||
<body>
|
||||
|
||||
<br /><br />
|
||||
|
||||
<div id="absdiv1">
|
||||
<br /><span class="bold">DIV #1</span>
|
||||
<br />position: absolute;
|
||||
<br />z-index: 5;
|
||||
</div>
|
||||
|
||||
<div id="reldiv1">
|
||||
<br /><span class="bold">DIV #2</span>
|
||||
<br />position: relative;
|
||||
<br />z-index: 3;
|
||||
</div>
|
||||
|
||||
<div id="reldiv2">
|
||||
<br /><span class="bold">DIV #3</span>
|
||||
<br />position: relative;
|
||||
<br />z-index: 2;
|
||||
</div>
|
||||
|
||||
<div id="absdiv2">
|
||||
<br /><span class="bold">DIV #4</span>
|
||||
<br />position: absolute;
|
||||
<br />z-index: 1;
|
||||
</div>
|
||||
|
||||
<div id="normdiv">
|
||||
<br /><span class="bold">DIV #5</span>
|
||||
<br />no positioning
|
||||
<br />z-index: 8;
|
||||
</div>
|
||||
|
||||
</body></html>
|
Reference in New Issue
Block a user