如何使图中的文字垂直居中?
How to center vertically text in figure?
我想让这两个文本在分辨率为 720 像素的图像上垂直居中。
文本 "serwis" 现在没有垂直居中于图像。
我应该怎么做?
这是一个演示 codepen
HTML代码
<section class="primary">
<figure class="primary__figure">
<img class="primary__img" src="http://www.linkpad.me/static/img/welcome/key.png" alt="">
<figcaption class="primary__caption">serwis</figcaption>
</figure>
<figure class="primary__figure">
<img class="primary__img" src="http://www.linkpad.me/static/img/welcome/key.png" alt="">
<figcaption class="primary__caption primary__caption--secondary">częsci zamienne</figcaption>
</figure>
</section>
SCSS代码
$font: 'Lato', sans-serif;
$break-medium: 45em;
@function calculateRem($size) {
$remSize: $size / 16px;
@return $remSize * 1rem;
}
@mixin font-size($size) {
font-size: $size;
font-size: calculateRem($size);
}
.primary {
background: -webkit-linear-gradient(top, rgb(10,198,162) 0%,rgb(0,160,175) 100%);
height: 500px;
width: 100%;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
@media only screen and (min-width: $break-medium) {
display: flex;
flex-direction: row;
}
&__figure {
padding: 20px;
}
&__img {
width: 100px;
}
&__caption {
font-family: $font;
text-transform: uppercase;
font-weight: 700;
@include font-size(30px);
text-align: center;
color: rgb(255,255,255);
padding-top: 10px;
@media only screen and (min-width: $break-medium) {
float: right;
@include font-size(40px);
padding-left: 20px;
}
&--secondary {
width: 100px;
flex-wrap: wrap;
@media only screen and (min-width: $break-medium) {
width: 200px;
}
}
}
}
您在 <figcaption>
中有 float: right
个。 vertical-align
不能使用浮动元素。所以,你需要做:
.primary__caption, .primary__img {
float: none;
display: inline-block;
vertical-align: middle;
}
预览
除了@Praveen Kumar 的回答,你还可以使用
display:table-cell;
vertical-align:middle;
当然 parent 需要
display:table;
我想让这两个文本在分辨率为 720 像素的图像上垂直居中。 文本 "serwis" 现在没有垂直居中于图像。 我应该怎么做? 这是一个演示 codepen
HTML代码
<section class="primary">
<figure class="primary__figure">
<img class="primary__img" src="http://www.linkpad.me/static/img/welcome/key.png" alt="">
<figcaption class="primary__caption">serwis</figcaption>
</figure>
<figure class="primary__figure">
<img class="primary__img" src="http://www.linkpad.me/static/img/welcome/key.png" alt="">
<figcaption class="primary__caption primary__caption--secondary">częsci zamienne</figcaption>
</figure>
</section>
SCSS代码
$font: 'Lato', sans-serif;
$break-medium: 45em;
@function calculateRem($size) {
$remSize: $size / 16px;
@return $remSize * 1rem;
}
@mixin font-size($size) {
font-size: $size;
font-size: calculateRem($size);
}
.primary {
background: -webkit-linear-gradient(top, rgb(10,198,162) 0%,rgb(0,160,175) 100%);
height: 500px;
width: 100%;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
@media only screen and (min-width: $break-medium) {
display: flex;
flex-direction: row;
}
&__figure {
padding: 20px;
}
&__img {
width: 100px;
}
&__caption {
font-family: $font;
text-transform: uppercase;
font-weight: 700;
@include font-size(30px);
text-align: center;
color: rgb(255,255,255);
padding-top: 10px;
@media only screen and (min-width: $break-medium) {
float: right;
@include font-size(40px);
padding-left: 20px;
}
&--secondary {
width: 100px;
flex-wrap: wrap;
@media only screen and (min-width: $break-medium) {
width: 200px;
}
}
}
}
您在 <figcaption>
中有 float: right
个。 vertical-align
不能使用浮动元素。所以,你需要做:
.primary__caption, .primary__img {
float: none;
display: inline-block;
vertical-align: middle;
}
预览
除了@Praveen Kumar 的回答,你还可以使用
display:table-cell;
vertical-align:middle;
当然 parent 需要
display:table;