【发布时间】:2014-11-09 10:47:29
【问题描述】:
让我说清楚。我有一个absolute 定位flex container 来创建网格布局。在 flex 内部,我有一个 relative 定位 .tileWrapper 在 .tile 本身被动画后填充空间(并且仍然保持布局)。
当我单击磁贴(absolute 定位)时,它会在 Y 轴上翻转并改变大小。
当.tile 翻转时,我想在屏幕上居中。在我再次单击它后,中心将取消。我什至不知道这是否可行。如果不是让我知道。
HTML 标记:
<body>
<div class="flexContainer">
<div class="tileWrapper small">
<div class="tile matematyka">
<div class="tileContent front">
Tytuł artykułu.<br>
Matematyka
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper small">
<div class="tile technologie">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper big">
<div class="tile matematyka">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper small">
<div class="tile technologie">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper small">
<div class="tile matematyka">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper big">
<div class="tile technologie">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper small">
<div class="tile matematyka">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper small">
<div class="tile technologie">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper small">
<div class="tile matematyka">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper small">
<div class="tile technologie">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper small">
<div class="tile matematyka">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper small">
<div class="tile technologie">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper small">
<div class="tile matematyka">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper big">
<div class="tile technologie">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper small">
<div class="tile matematyka">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper big">
<div class="tile technologie">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper small">
<div class="tile matematyka">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper big">
<div class="tile technologie">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper small">
<div class="tile matematyka">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper big">
<div class="tile technologie">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper small">
<div class="tile matematyka">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper big">
<div class="tile technologie">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper small">
<div class="tile matematyka">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper big">
<div class="tile technologie">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper small">
<div class="tile matematyka">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper big">
<div class="tile technologie">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper small">
<div class="tile matematyka">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper big">
<div class="tile technologie">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper small">
<div class="tile matematyka">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper big">
<div class="tile technologie">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper small">
<div class="tile matematyka">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper big">
<div class="tile technologie">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper small">
<div class="tile matematyka">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper big">
<div class="tile technologie">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper small">
<div class="tile matematyka">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper big">
<div class="tile technologie">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper small">
<div class="tile matematyka">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper big">
<div class="tile technologie">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper small">
<div class="tile matematyka">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper big">
<div class="tile technologie">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper small">
<div class="tile matematyka">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper big">
<div class="tile technologie">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper small">
<div class="tile matematyka">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
<div class="tileWrapper big">
<div class="tile technologie">
<div class="tileContent front">
Tytuł artykułu.
</div>
<div class="tileContent back">
Treść artykułu.
</div>
</div>
</div>
</div>
CSS:
* {
margin: 0;
padding: 0;
/* outline: 1px solid pink;*/
}
.flexContainer {
position: absolute;
width: 100%;
height: 100%;
max-height: 100%;
padding: 30px;
overflow-x: scroll;
background: url(../img/background.png);
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-webkit-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column;
-webkit-flex-wrap: wrap;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
-webkit-align-content: flex-start;
-ms-flex-line-pack: start;
align-content: flex-start;
-webkit-box-pack: center;
-webkit-justify-content: center;
-ms-flex-pack: center;
justify-content: center;
}
.tileWrapper {
position: relative;
width: 200px;
margin: 10px;
-webkit-box-flex: 0;
-webkit-flex-grow: 0;
-ms-flex-positive: 0;
flex-grow: 0;
-webkit-flex-shrink: 0;
-ms-flex-negative: 0;
flex-shrink: 0;
}
.tileWrapper.small {
-webkit-flex-basis: 100px;
-ms-flex-preferred-size: 100px;
flex-basis: 100px;
}
.tileWrapper.big {
-webkit-flex-basis: 220px;
-ms-flex-preferred-size: 220px;
flex-basis: 220px;
}
.tile {
position: absolute;
width: 100%;
height: 100%;
padding: 10px;
/* */
background : rgb(255, 0, 0);
/* */
border: 0 solid rgba(255, 255, 255, 0.4);
border-radius: 2px;
opacity: 0.8;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: center;
-webkit-justify-content: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.4), inset 0 0 30px rgba(0, 0, 0, 0.1);
box-shadow: 0 0 10px rgba(0, 0, 0, 0.4), inset 0 0 30px rgba(0, 0, 0, 0.1);
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-transition: 0.5s;
transition: 0.5s;
-webkit-transform-style: preserve-3d;
transform-style: preserve-3d;
}
.tile:hover {
border: 5px solid rgba(255, 255, 255, 0.4);
-webkit-transition:0.2s;
transition:0.2s;
-ms-transform: scale(1.1);
-webkit-transform: scale(1.1);
transform: scale(1.1);
-webkit-transform-style: preserve-3d;
transform-style: preserve-3d;
}
.tile.flipped {
position: absolute;
margin: auto;
width: 500px;
height: 300px;
opacity: 0.9;
z-index: 10;
border: 5px solid rgba(255, 255, 255, 0.4);
-webkit-transform: perspective(700) rotateY(-180deg);
transform: perspective(700) rotateY(-180deg);
-webkit-transition: 0.5s;
transition: 0.5s;
}
/*Categories*/
.tile.technologie {
background: rgb(0, 100, 255);
}
/*End Categories*/
.tileContent {
font-family: 'tahoma';
color: #fafafa;
text-shadow: 0 0 1px black;
}
.tileContent.front {
display: inline-block;
text-align: center;
-webkit-flex-basis: 200px;
-ms-flex-preferred-size: 200px;
flex-basis: 200px;
-webkit-box-flex: 0;
-webkit-flex-grow: 0;
-ms-flex-positive: 0;
flex-grow: 0;
-webkit-flex-shrink: 0;
-ms-flex-negative: 0;
flex-shrink: 0;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
}
.tileContent.front.flipped {
display: none;
}
.tileContent.back {
display: none;
-webkit-transform: rotateY(180deg);
transform: rotateY(180deg);
}
.tileContent.back.flipped {
display: block;
}
【问题讨论】:
-
这是 CSS 的 Inception 版本。
-
我知道您正在尝试提供帮助,但您的问题已经用不相关的 css 和 HTMl 负担过重,请缩减您的答案并使其尽可能与您的问题相关。
标签: absolute relative absolute javascript jquery html css css-position