Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
html,body {
color:black;
background-color:white;
font:15px/1 monospace;
}

.container {
width: 850px;
height: 800px;
border: 2px solid black;
margin: 20px;
}

.grid {
display: grid;
grid-template-columns: repeat(5, 150px);
grid-auto-rows: auto;
position: relative;
padding: 20px;
gap: 15px;
border: 1px dashed #999;
height: 700px;
}

.item {
background: lightblue;
padding: 10px;
border: 1px solid blue;
height: 80px;
}

.abspos {
position: absolute;
width: 60px;
height: 40px;
border: 2px solid black;
font-size: 10px;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
}

.align-self {
grid-column: 2 / 3;
grid-row: 1 / 2;
}

.align-start {
align-self: start;
background: lightcoral;
}

.align-end {
align-self: end;
background: lightgreen;
}

.align-center {
align-self: center;
background: lightblue;
}

.justify-self {
grid-column: 4 / 5;
grid-row: 1 / 2;
}

.justify-start {
justify-self: start;
background: gold;
}

.justify-end {
justify-self: end;
background: silver;
}

.justify-center {
justify-self: center;
background: tan;
}

.combo-center-center {
grid-column: 3 / 4;
grid-row: 1 / 2;
align-self: center;
justify-self: center;
background: hotpink;
}

.safe-align {
position: absolute;
background: orange;
border: 1px solid darkorange;
grid-column: 1 / 2;
grid-row: 1 / 2;
width: 170px;
height: 30px;
justify-self: safe end;
align-self: center;
font-size: 10px;
}

.unsafe-align {
position: absolute;
background: purple;
border: 1px solid darkmagenta;
grid-column: 5 / 6;
grid-row: 1 / 2;
width: 170px;
height: 30px;
justify-self: unsafe end;
align-self: center;
font-size: 10px;
}
</style>
</head>
<body>
<div class="container">
<div class="grid">
<div class="item">Item 1</div>
<div class="item">Item 2</div>
<div class="item">Item 3</div>
<div class="abspos align-self align-start">align-self: start</div>
<div class="abspos align-self align-end">align-self: end</div>
<div class="abspos align-self align-center">align-self: center</div>
<div class="item">Item 4</div>
<div class="item">Item 5</div>
<div class="abspos justify-self justify-start">justify-self: start</div>
<div class="abspos justify-self justify-end">justify-self: end</div>
<div class="abspos justify-self justify-center">justify-self: center</div>
<div class="abspos combo-center-center">center + center</div>
<div class="safe-align">justify-self: safe end</div>
<div class="unsafe-align">justify-self: unsafe end</div>
</div>
</div>
</body>
</html>
142 changes: 142 additions & 0 deletions css/css-grid/masonry/tentative/abspos/column-masonry-alignment.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Masonry Test: Masonry layout alignment properties for absolutely positioned elements</title>
<link rel="author" title="Yanling Wang" href="mailto:[email protected]">
<link rel="help" href="https://drafts.csswg.org/css-grid-3/#abspos">
<link rel="match" href="column-masonry-alignment-ref.html">
<style>
html,body {
color:black;
background-color:white;
font:15px/1 monospace;
}

.container {
width: 850px;
height: 800px;
border: 2px solid black;
margin: 20px;
}

.masonry {
display: masonry;
grid-template-columns: repeat(5, 150px);
position: relative;
padding: 20px;
gap: 15px;
border: 1px dashed #999;
height: 700px;
}

.item {
background: lightblue;
padding: 10px;
border: 1px solid blue;
height: 80px;
}

.abspos {
position: absolute;
width: 60px;
height: 40px;
border: 2px solid black;
font-size: 10px;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
}

.align-self {
grid-column: 2 / 3;
}

.align-start {
align-self: start;
background: lightcoral;
}

.align-end {
align-self: end;
background: lightgreen;
}

.align-center {
align-self: center;
background: lightblue;
}

.justify-self {
grid-column: 4 / 5;
}

.justify-start {
justify-self: start;
background: gold;
}

.justify-end {
justify-self: end;
background: silver;
}

.justify-center {
justify-self: center;
background: tan;
}

.combo-center-center {
grid-column: 3 / 4;
align-self: center;
justify-self: center;
background: hotpink;
}

.safe-align {
position: absolute;
background: orange;
border: 1px solid darkorange;
grid-column: 1 / 2;
width: 170px;
height: 30px;
justify-self: safe end;
align-self: center;
font-size: 10px;
}

.unsafe-align {
position: absolute;
background: purple;
border: 1px solid darkmagenta;
grid-column: 5 / 6;
width: 170px;
height: 30px;
justify-self: unsafe end;
align-self: center;
font-size: 10px;
}
</style>
</head>
<body>
<div class="container">
<div class="masonry">
<div class="item">Item 1</div>
<div class="item">Item 2</div>
<div class="item">Item 3</div>
<div class="abspos align-self align-start">align-self: start</div>
<div class="abspos align-self align-end">align-self: end</div>
<div class="abspos align-self align-center">align-self: center</div>
<div class="item">Item 4</div>
<div class="item">Item 5</div>
<div class="abspos justify-self justify-start">justify-self: start</div>
<div class="abspos justify-self justify-end">justify-self: end</div>
<div class="abspos justify-self justify-center">justify-self: center</div>
<div class="abspos combo-center-center">center + center</div>
<div class="safe-align">justify-self: safe end</div>
<div class="unsafe-align">justify-self: unsafe end</div>
</div>
</div>
</body>
</html>
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
.container {
border: 2px solid black;
margin: 10px;
width: 300px;
position: relative;
}

.grid {
display: grid;
grid-template-columns: repeat(3, auto);
grid-template-rows: auto;
border: 2px solid blue;
}

.oof-item {
position: absolute;
background: red;
color: white;
padding: 5px;
border: 1px solid darkred;
}

.oof-1 {
top: 50px;
left: 50px;
width: 60px;
height: 40px;
}

.oof-2 {
top: 100px;
left: 150px;
width: 70px;
height: 50px;
}
</style>
</head>
<body>
<div class="container">
<div class="grid">
<div class="oof-item oof-1"></div>
<div class="oof-item oof-2"></div>
</div>
</div>
</body>
</html>
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Masonry Test: Masonry layout intrinsic size with only OOF children</title>
<link rel="author" title="Yanling Wang" href="mailto:[email protected]">
<link rel="help" href="https://drafts.csswg.org/css-grid-3/#track-sizing">
<link rel="help" href="https://drafts.csswg.org/css-grid-3/#abspos">
<link rel="match" href="column-masonry-intrinsic-sizing-oof-ref.html">
<style>
.container {
border: 2px solid black;
margin: 10px;
width: 300px;
position: relative;
}

.masonry {
display: masonry;
grid-template-columns: repeat(3, auto);
border: 2px solid blue;
}

.oof-item {
position: absolute;
background: red;
color: white;
padding: 5px;
border: 1px solid darkred;
}

.oof-1 {
top: 50px;
left: 50px;
width: 60px;
height: 40px;
}

.oof-2 {
top: 100px;
left: 150px;
width: 70px;
height: 50px;
}
</style>
</head>
<body>
<div class="container">
<div class="masonry">
<div class="oof-item oof-1"></div>
<div class="oof-item oof-2"></div>
</div>
</div>
</body>
</html>
Loading