无法在图像中间显示我的文字
cant get my tekst in the middle of my image
我正在与我的代码作斗争,无法弄清楚为什么我不能让它像我想要的那样工作,
我正在尝试让图像中的文本居中。
因此,当我将鼠标悬停在图像上时,会出现文本,
只是现在我希望它在中间。 texy-align: center 不适合我?
早早在这里得到了一些帮助解决其他问题所以我又来了哈哈
/*content*/
.container {
width: 940px;
margin: 70px auto 0;
display: flex;
flex-direction: row;
flex-wrap: wrap;
}
.container .box {
position: relative;
width: 300px;
height: 198px;
background: #555;
margin: 5px;
box-sizing: border-box;
display: inline-block;
}
.container .box .imgbox {
position: relative;
overflow: hidden;
}
.container .box .imgbox img {
transition: transform 2s;
}
.container .box:hover .imgbox img {
transform: scale(1.2);
}
.container .box .details {
position: absolute;
top: 10px;
left: 10px;
bottom: 10px;
right: 10px;
backgound: rgba(0,0,0,.8);
transform: scaleY(0);
transition: transform .5s;
}
.container .box:hover .details {
transform: scaleY(1);
}
.container .box .details .content {
position: absolute;
top: 50%;
transform: translateY(-50%);
text-align: center;
padding: 15px;
color: #FFF;
}
.container .box .details .content h2 {
margin: 0;
padding: 0;
font-size: 30px;
color: #FFF;
}
.container .box .details .content p {
margin: 0;
padding: 0;
font-size: 20px;
color: #FFF;
}
<!--containers-->
<div class="container">
<!--Basis-->
<div class="box">
<div class="imgbox">
<img src="images/basis1.jpg" alt=""/>
</div>
<div class="details">
<div class="content">
<h2>Basis</h2>
</div>
</div>
</div>
<!--Standaard-->
<div class="box">
<div class="imgbox">
<img src="images/standaard1.jpg" alt=""/>
</div>
<div class="details">
<div class="content">
<h2>Standaard</h2>
</div>
</div>
</div>
<!--Luxe-->
<div class="box">
<div class="imgbox">
<img src="images/luxe1.jpg" alt=""/>
</div>
<div class="details">
<div class="content">
<h2>Luxe</h2>
</div>
</div>
</div>
</div>
看来您已经在做 top:50%
和 translateY 50%
,您必须对 X 做同样的事情。改用 translate(-50%,-50%)
并设置 left:50%;
。
.container .box .details .content{
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
下面的演示;
/*content*/
.container {
width: 940px;
margin: 70px auto 0;
display: flex;
flex-direction: row;
flex-wrap: wrap;
}
.container .box {
position: relative;
width: 300px;
height: 198px;
background: #555;
margin: 5px;
box-sizing: border-box;
display: inline-block;
}
.container .box .imgbox {
position: relative;
overflow: hidden;
}
.container .box .imgbox img {
transition: transform 2s;
}
.container .box:hover .imgbox img {
transform: scale(1.2);
}
.container .box .details {
position: absolute;
top: 10px;
left: 10px;
bottom: 10px;
right: 10px;
backgound: rgba(0, 0, 0, .8);
transform: scaleY(0);
transition: transform .5s;
}
.container .box:hover .details {
transform: scaleY(1);
}
.container .box .details .content {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
padding: 15px;
color: #FFF;
}
.container .box .details .content h2 {
margin: 0;
padding: 0;
font-size: 30px;
color: #FFF;
}
.container .box .details .content p {
margin: 0;
padding: 0;
font-size: 20px;
color: #FFF;
}
<!--containers-->
<div class="container">
<!--Basis-->
<div class="box">
<div class="imgbox">
<img src="images/basis1.jpg" alt="" />
</div>
<div class="details">
<div class="content">
<h2>Basis</h2>
</div>
</div>
</div>
<!--Standaard-->
<div class="box">
<div class="imgbox">
<img src="images/standaard1.jpg" alt="" />
</div>
<div class="details">
<div class="content">
<h2>Standaard</h2>
</div>
</div>
</div>
<!--Luxe-->
<div class="box">
<div class="imgbox">
<img src="images/luxe1.jpg" alt="" />
</div>
<div class="details">
<div class="content">
<h2>Luxe</h2>
</div>
</div>
</div>
</div>
You can try this also by using flex
/*content*/
.container {
width: 940px;
margin: 70px auto 0;
display: flex;
flex-direction: row;
flex-wrap: wrap;
}
.container .box {
position: relative;
width: 300px;
height: 198px;
background: #555;
margin: 5px;
box-sizing: border-box;
display: inline-block;
}
.container .box .imgbox {
position: relative;
overflow: hidden;
}
.container .box .imgbox img {
transition: transform 2s;
}
.container .box:hover .imgbox img {
}
.container .box .details {
position: absolute;
top: 10px;
left: 10px;
bottom: 10px;
right: 10px;
backgound: rgba(0,0,0,.8);
transform: scaleY(0);
}
.container .box:hover .details {
transform: scaleY(1);
display: flex;
align-items: center;
text-align: center;
width: 100%;
margin: 0 auto;
left: 0;
right: 0;
bottom: 0;
top: 0;
}
.container .box .details .content {
display: block;
width: 100%;
color: #FFF;
}
.container .box .details .content h2 {
margin: 0;
padding: 0;
font-size: 30px;
color: #FFF;
}
.container .box .details .content p {
margin: 0;
padding: 0;
font-size: 20px;
color: #FFF;
}
<!--containers-->
<div class="container">
<!--Basis-->
<div class="box">
<div class="imgbox">
<img src="images/basis1.jpg" alt=""/>
</div>
<div class="details">
<div class="content">
<h2>Basis</h2>
</div>
</div>
</div>
<!--Standaard-->
<div class="box">
<div class="imgbox">
<img src="images/standaard1.jpg" alt=""/>
</div>
<div class="details">
<div class="content">
<h2>Standaard</h2>
</div>
</div>
</div>
<!--Luxe-->
<div class="box">
<div class="imgbox">
<img src="images/luxe1.jpg" alt=""/>
</div>
<div class="details">
<div class="content">
<h2>Luxe</h2>
</div>
</div>
</div>
</div>
我正在与我的代码作斗争,无法弄清楚为什么我不能让它像我想要的那样工作, 我正在尝试让图像中的文本居中。
因此,当我将鼠标悬停在图像上时,会出现文本, 只是现在我希望它在中间。 texy-align: center 不适合我?
早早在这里得到了一些帮助解决其他问题所以我又来了哈哈
/*content*/
.container {
width: 940px;
margin: 70px auto 0;
display: flex;
flex-direction: row;
flex-wrap: wrap;
}
.container .box {
position: relative;
width: 300px;
height: 198px;
background: #555;
margin: 5px;
box-sizing: border-box;
display: inline-block;
}
.container .box .imgbox {
position: relative;
overflow: hidden;
}
.container .box .imgbox img {
transition: transform 2s;
}
.container .box:hover .imgbox img {
transform: scale(1.2);
}
.container .box .details {
position: absolute;
top: 10px;
left: 10px;
bottom: 10px;
right: 10px;
backgound: rgba(0,0,0,.8);
transform: scaleY(0);
transition: transform .5s;
}
.container .box:hover .details {
transform: scaleY(1);
}
.container .box .details .content {
position: absolute;
top: 50%;
transform: translateY(-50%);
text-align: center;
padding: 15px;
color: #FFF;
}
.container .box .details .content h2 {
margin: 0;
padding: 0;
font-size: 30px;
color: #FFF;
}
.container .box .details .content p {
margin: 0;
padding: 0;
font-size: 20px;
color: #FFF;
}
<!--containers-->
<div class="container">
<!--Basis-->
<div class="box">
<div class="imgbox">
<img src="images/basis1.jpg" alt=""/>
</div>
<div class="details">
<div class="content">
<h2>Basis</h2>
</div>
</div>
</div>
<!--Standaard-->
<div class="box">
<div class="imgbox">
<img src="images/standaard1.jpg" alt=""/>
</div>
<div class="details">
<div class="content">
<h2>Standaard</h2>
</div>
</div>
</div>
<!--Luxe-->
<div class="box">
<div class="imgbox">
<img src="images/luxe1.jpg" alt=""/>
</div>
<div class="details">
<div class="content">
<h2>Luxe</h2>
</div>
</div>
</div>
</div>
看来您已经在做 top:50%
和 translateY 50%
,您必须对 X 做同样的事情。改用 translate(-50%,-50%)
并设置 left:50%;
。
.container .box .details .content{
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
下面的演示;
/*content*/
.container {
width: 940px;
margin: 70px auto 0;
display: flex;
flex-direction: row;
flex-wrap: wrap;
}
.container .box {
position: relative;
width: 300px;
height: 198px;
background: #555;
margin: 5px;
box-sizing: border-box;
display: inline-block;
}
.container .box .imgbox {
position: relative;
overflow: hidden;
}
.container .box .imgbox img {
transition: transform 2s;
}
.container .box:hover .imgbox img {
transform: scale(1.2);
}
.container .box .details {
position: absolute;
top: 10px;
left: 10px;
bottom: 10px;
right: 10px;
backgound: rgba(0, 0, 0, .8);
transform: scaleY(0);
transition: transform .5s;
}
.container .box:hover .details {
transform: scaleY(1);
}
.container .box .details .content {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
padding: 15px;
color: #FFF;
}
.container .box .details .content h2 {
margin: 0;
padding: 0;
font-size: 30px;
color: #FFF;
}
.container .box .details .content p {
margin: 0;
padding: 0;
font-size: 20px;
color: #FFF;
}
<!--containers-->
<div class="container">
<!--Basis-->
<div class="box">
<div class="imgbox">
<img src="images/basis1.jpg" alt="" />
</div>
<div class="details">
<div class="content">
<h2>Basis</h2>
</div>
</div>
</div>
<!--Standaard-->
<div class="box">
<div class="imgbox">
<img src="images/standaard1.jpg" alt="" />
</div>
<div class="details">
<div class="content">
<h2>Standaard</h2>
</div>
</div>
</div>
<!--Luxe-->
<div class="box">
<div class="imgbox">
<img src="images/luxe1.jpg" alt="" />
</div>
<div class="details">
<div class="content">
<h2>Luxe</h2>
</div>
</div>
</div>
</div>
You can try this also by using
flex
/*content*/
.container {
width: 940px;
margin: 70px auto 0;
display: flex;
flex-direction: row;
flex-wrap: wrap;
}
.container .box {
position: relative;
width: 300px;
height: 198px;
background: #555;
margin: 5px;
box-sizing: border-box;
display: inline-block;
}
.container .box .imgbox {
position: relative;
overflow: hidden;
}
.container .box .imgbox img {
transition: transform 2s;
}
.container .box:hover .imgbox img {
}
.container .box .details {
position: absolute;
top: 10px;
left: 10px;
bottom: 10px;
right: 10px;
backgound: rgba(0,0,0,.8);
transform: scaleY(0);
}
.container .box:hover .details {
transform: scaleY(1);
display: flex;
align-items: center;
text-align: center;
width: 100%;
margin: 0 auto;
left: 0;
right: 0;
bottom: 0;
top: 0;
}
.container .box .details .content {
display: block;
width: 100%;
color: #FFF;
}
.container .box .details .content h2 {
margin: 0;
padding: 0;
font-size: 30px;
color: #FFF;
}
.container .box .details .content p {
margin: 0;
padding: 0;
font-size: 20px;
color: #FFF;
}
<!--containers-->
<div class="container">
<!--Basis-->
<div class="box">
<div class="imgbox">
<img src="images/basis1.jpg" alt=""/>
</div>
<div class="details">
<div class="content">
<h2>Basis</h2>
</div>
</div>
</div>
<!--Standaard-->
<div class="box">
<div class="imgbox">
<img src="images/standaard1.jpg" alt=""/>
</div>
<div class="details">
<div class="content">
<h2>Standaard</h2>
</div>
</div>
</div>
<!--Luxe-->
<div class="box">
<div class="imgbox">
<img src="images/luxe1.jpg" alt=""/>
</div>
<div class="details">
<div class="content">
<h2>Luxe</h2>
</div>
</div>
</div>
</div>