繁体   English   中英

如何将div的内容在其中垂直或水平居中?

[英]How can I center contents of a div vertically and horizontally inside of it?

我有一个投资组合类型3列式布局。 每个投资组合项目都是一个div,其中包含项目名称和简短说明。 首先显示项目名称,当我将鼠标悬停在div上时,div翻转,然后显示摘要。

当我将鼠标悬停在div上时,摘要从左上方溢出。 我希望项目名称和摘要都放在div的无效位置。 以下是代码段代码。

 .flip-container { perspective: 1000; margin-right: 30px; background-color: red; margin-bottom: 20px; } /* flip the pane when hovered */ .flip-container:hover .flipper, .flip-container.hover .flipper { transform: rotateY(180deg); } .flip-container, .front, .back { width: 360px; height: 320px; } /* flip speed goes here */ .flipper { transition: 0.6s; transform-style: preserve-3d; position: relative; } /* hide back of pane during swap */ .front, .back { backface-visibility: hidden; position: absolute; text-align: center; /*top: 0; left: 0;*/ } /* front pane, placed above back */ .front { z-index: 2; /* for firefox 31 */ transform: rotateY(0deg); } /* back, initially hidden pane */ .back { transform: rotateY(180deg); } 
 <div class="row"> <div class="flip-container col-md-4 portfolio-item" ontouchstart="this.classList.toggle('hover');"> <div class="flipper"> <div class="front"> <!-- front content --> <h3> <a href="#">Project Name</a> </h3> </div> <div class="back"> <!-- back content --> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam viverra euismod odio, gravida pellentesque urna varius vitae.</p> </div> </div> </div> <div class="flip-container col-md-4 portfolio-item" ontouchstart="this.classList.toggle('hover');"> <div class="flipper"> <div class="front"> <!-- front content --> <h3> <a href="#">Project Name</a> </h3> </div> <div class="back"> <!-- back content --> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam viverra euismod odio, gravida pellentesque urna varius vitae.</p> </div> </div> </div> 

您可以为此使用flexbox 将以下样式添加到.front.back div中

CSS:

.front,
.back {
  backface-visibility: hidden;
  position: absolute;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
}

这是工作中的小提琴

我已经创建了一个解决方案,但是它需要指定锚标记的高度和宽度。

 .flip-container { perspective: 1000; margin-right: 30px; background-color: red; margin-bottom: 20px; } /* flip the pane when hovered */ .flip-container:hover .flipper, .flip-container.hover .flipper { transform: rotateY(180deg); } .flip-container, .front, .back { width: 360px; height: 320px; } /* flip speed goes here */ .flipper { transition: 0.6s; transform-style: preserve-3d; position: relative; } /* hide back of pane during swap */ .front, .back { backface-visibility: hidden; position: absolute; text-align: center; /*top: 0; left: 0;*/ } /* front pane, placed above back */ .front { z-index: 2; /* for firefox 31 */ transform: rotateY(0deg); position: relative; } .front h3 { position: absolute; left: 0; top: 0; right: 0; bottom: 0; margin: auto; height: 20px; width: 60px; } /* back, initially hidden pane */ .back { transform: rotateY(180deg); } 
 <div class="row"> <div class="flip-container col-md-4 portfolio-item" ontouchstart="this.classList.toggle('hover');"> <div class="flipper"> <div class="front"> <!-- front content --> <h3> <a href="#">Project Name</a> </h3> </div> <div class="back"> <!-- back content --> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam viverra euismod odio, gravida pellentesque urna varius vitae.</p> </div> </div> </div> <div class="flip-container col-md-4 portfolio-item" ontouchstart="this.classList.toggle('hover');"> <div class="flipper"> <div class="front"> <!-- front content --> <h3> <a href="#">Project Name</a> </h3> </div> <div class="back"> <!-- back content --> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam viverra euismod odio, gravida pellentesque urna varius vitae.</p> </div> </div> </div> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM