簡體   English   中英

如何在相對div內,絕對定位的flexContainer內居中絕對定位的div?

[英]How to center the absolute positioned div, inside the relative div, inside the absolute positioned flexContainer?

讓我說清楚。 我有一個定位的flex container來創建網格布局。 在flex內部,我為.tileWrapper設置了位置,以在.tile自身動畫后填充空間(並仍然保留布局)。

當我單擊圖塊( 位置)時,它會沿Y軸翻轉並更改大小。

我想將.tile翻轉時在屏幕上.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中添加和刪除這些內容。

.flipped{
  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;
  position: fixed;
  left: 50%;
  margin-left: -250px;
  top: 50%;
  margin-top: -150px;
}

左邊的50%,然后是負的邊距,僅因div上的設置大小而起作用,頂部的邊距也是如此。 現在它位於窗口的中心。

的jsfiddle

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM