居中图像和文本
Centering Images and Text
我希望图像和文本水平和垂直居中。最好的方法是什么?我试过浮动但它似乎没有用。理想结果见上图
HTML:
<div class="clearfix" id="one">
<img class="imac" src="imac.png">
<p1>
I want to work in Computer Design, changing the way people
interact with thoughtfully considered software and hardware
experiences.
</p1>
</div>
CSS:
#one{
background-color: #4E5B71;
width: 100%;
height: auto;
padding: 15px;
}
.clearfix{
overflow: auto;
}
p1{
font-family: AvenirNext-Regular;
font-size: 24px;
color: #FFFFFF;
line-height: 50px;
vertical-align: middle;
display: inline-block;
}
imac{
width: 100% auto;
height: auto;
float:left;
vertical-align: middle;
}
vertical-align
属性 在这种情况下不起作用。这有点违反直觉,但垂直对齐仅在 table 布局中有效。
你有几种方法可以解决你的困境,但在 table 的话题上,使用 table 来帮助你对齐可能不是一个坏主意。例如,您可以创建一个包含一行 <tr>
和四个 table 单元格 <td>
的 table,并将垂直对齐应用于 table 单元格。图像将位于第二个单元格中,段落将位于第三个单元格中。然后,您可以将所需的 width
应用到单元格以确保正确的水平对齐。
PS:没有<p1>
标签。您应该只使用 <p>
.
解决方案 1
演示:https://jsfiddle.net/2Lzo9vfc/78/
HTML
<div class="clearfix" id="one"> <img class="imac" src="http://placehold.it/70x50"> <p> I want to work in Computer Design, changing the way people interact with thoughtfully considered software and hardware experiences. </p>
</div>
CSS
#one{
background-color: #4E5B71;
width: 100%;
height: auto;
padding: 15px;
display: table;
}
.clearfix{
overflow: auto;
}
p{
font-family: AvenirNext-Regular;
font-size: 16px;
color: #FFFFFF;
vertical-align: middle;
display: table-cell;
}
.imac {
vertical-align: middle;
display: table-cell;
}
解决方案 2 使用 flexbox
演示:https://jsfiddle.net/2Lzo9vfc/81/
CSS
#one{
background-color: #4E5B71;
width: 100%;
height: auto;
padding: 15px;
display: -webkit-flex;
display: flex;
align-items:center;
}
.clearfix{
overflow: auto;
}
p{
font-family: AvenirNext-Regular;
font-size: 16px;
color: #FFFFFF;
}
要使文本居中,您应该使用 text-align: center。
p1{
font-family: AvenirNext-Regular;
font-size: 24px;
color: #FFFFFF;
line-height: 50px;
display: inline-block;
text-align: center;
}
你也可以用段落来包裹图片并控制它。您可以使用与其下方文本相同的段落格式,或为其赋予自己的 class。只要确保它也有 text-align: center programmed in it.
<p1><img class="imac" src="imac.png" /></p1>
我希望图像和文本水平和垂直居中。最好的方法是什么?我试过浮动但它似乎没有用。理想结果见上图
HTML:
<div class="clearfix" id="one">
<img class="imac" src="imac.png">
<p1>
I want to work in Computer Design, changing the way people
interact with thoughtfully considered software and hardware
experiences.
</p1>
</div>
CSS:
#one{
background-color: #4E5B71;
width: 100%;
height: auto;
padding: 15px;
}
.clearfix{
overflow: auto;
}
p1{
font-family: AvenirNext-Regular;
font-size: 24px;
color: #FFFFFF;
line-height: 50px;
vertical-align: middle;
display: inline-block;
}
imac{
width: 100% auto;
height: auto;
float:left;
vertical-align: middle;
}
vertical-align
属性 在这种情况下不起作用。这有点违反直觉,但垂直对齐仅在 table 布局中有效。
你有几种方法可以解决你的困境,但在 table 的话题上,使用 table 来帮助你对齐可能不是一个坏主意。例如,您可以创建一个包含一行 <tr>
和四个 table 单元格 <td>
的 table,并将垂直对齐应用于 table 单元格。图像将位于第二个单元格中,段落将位于第三个单元格中。然后,您可以将所需的 width
应用到单元格以确保正确的水平对齐。
PS:没有<p1>
标签。您应该只使用 <p>
.
解决方案 1
演示:https://jsfiddle.net/2Lzo9vfc/78/
HTML
<div class="clearfix" id="one"> <img class="imac" src="http://placehold.it/70x50"> <p> I want to work in Computer Design, changing the way people interact with thoughtfully considered software and hardware experiences. </p>
</div>
CSS
#one{
background-color: #4E5B71;
width: 100%;
height: auto;
padding: 15px;
display: table;
}
.clearfix{
overflow: auto;
}
p{
font-family: AvenirNext-Regular;
font-size: 16px;
color: #FFFFFF;
vertical-align: middle;
display: table-cell;
}
.imac {
vertical-align: middle;
display: table-cell;
}
解决方案 2 使用 flexbox
演示:https://jsfiddle.net/2Lzo9vfc/81/
CSS
#one{
background-color: #4E5B71;
width: 100%;
height: auto;
padding: 15px;
display: -webkit-flex;
display: flex;
align-items:center;
}
.clearfix{
overflow: auto;
}
p{
font-family: AvenirNext-Regular;
font-size: 16px;
color: #FFFFFF;
}
要使文本居中,您应该使用 text-align: center。
p1{
font-family: AvenirNext-Regular;
font-size: 24px;
color: #FFFFFF;
line-height: 50px;
display: inline-block;
text-align: center;
}
你也可以用段落来包裹图片并控制它。您可以使用与其下方文本相同的段落格式,或为其赋予自己的 class。只要确保它也有 text-align: center programmed in it.
<p1><img class="imac" src="imac.png" /></p1>