CSS: 文本在水平和垂直居中时不换行
CSS: Text not wrapping when centered horizontally and vertically
我遇到了无法控制 HTML 但可以添加 CSS 的情况。
这是我试图争论的标记块。
<div class="placard" id="placard3">
<a href="https://optio.yln.info/login?url=https://connect.mangolanguages.com/yavapai/start" target="_blank" class="placard-link">
<div class="row">
<div class="col-xs-12"><img src="https://ppl.beta.yln.info/files/original/imagemango%20button.png" class="placard-image" alt="Mango Languages">
<span class="placard-body">
<p>Learn on Your Own Time at Home or On the Go</p>
</span>
</div>
</div>
这是我目前的CSS。
#placard3 {border:none; background-color:#acd373;border-radius:10px;}
#placard3 .col-xs-12 {text-align:center;}
.placard-body {color:#ff4022;align-items:center;display:inline-flex;min-height:80px;}
您可以在页面的较大上下文中看到此块 here。绿色背景上的 Mango Languages 广告就是我设计的样式。
我想要做的是使 Mango 图形右侧的文本在垂直和水平方向上都居中,并让文本保持在图形右侧并随着浏览器宽度变窄而换行。
我已经尝试过 flex 和 grid 以及我在网上可以找到的所有其他内容。居中很容易,但是当我将浏览器拖入时,所有这些文本都跳到图形下方而不是换行。(我已经在最新的 Firefox 和 Edge 中测试过。)
请告诉我有解决办法。无法弄清楚如何做如此简单的事情令人沮丧。
谢谢!
这是您要找的吗? grid-template
完成大部分工作。
#placard3 {
border:none;
background-color:#acd373;
border-radius:10px;
}
#placard3 .col-xs-12 {
text-align:center;
display: grid; /* new */
grid-template: 1fr / auto 1fr; /* new */
}
.placard-image { /* new */
margin: 2rem;
}
.placard-body {
color:#ff4022;
align-items:center;
display:inline-flex;
min-height:80px;
}
<div class="placard" id="placard3">
<a href="https://optio.yln.info/login?url=https://connect.mangolanguages.com/yavapai/start" target="_blank" class="placard-link">
<div class="row">
<div class="col-xs-12">
<img src="https://ppl.beta.yln.info/files/original/imagemango%20button.png" class="placard-image" alt="Mango Languages">
<span class="placard-body">
<p>Learn on Your Own Time at Home or On the Go</p>
</span>
</div>
</div>
通过在 .col-xs-12
div 上使用 flex 并在 .placard-body
上使用 auto margin,您可以获得您正在寻找的行为:
#placard3 .col-xs-12 {
display: flex;
flex-wrap: none;
align-items: center;
}
.placard-body {
color:#ff4022;
margin: auto;
}
我遇到了无法控制 HTML 但可以添加 CSS 的情况。 这是我试图争论的标记块。
<div class="placard" id="placard3">
<a href="https://optio.yln.info/login?url=https://connect.mangolanguages.com/yavapai/start" target="_blank" class="placard-link">
<div class="row">
<div class="col-xs-12"><img src="https://ppl.beta.yln.info/files/original/imagemango%20button.png" class="placard-image" alt="Mango Languages">
<span class="placard-body">
<p>Learn on Your Own Time at Home or On the Go</p>
</span>
</div>
</div>
这是我目前的CSS。
#placard3 {border:none; background-color:#acd373;border-radius:10px;}
#placard3 .col-xs-12 {text-align:center;}
.placard-body {color:#ff4022;align-items:center;display:inline-flex;min-height:80px;}
您可以在页面的较大上下文中看到此块 here。绿色背景上的 Mango Languages 广告就是我设计的样式。
我想要做的是使 Mango 图形右侧的文本在垂直和水平方向上都居中,并让文本保持在图形右侧并随着浏览器宽度变窄而换行。
我已经尝试过 flex 和 grid 以及我在网上可以找到的所有其他内容。居中很容易,但是当我将浏览器拖入时,所有这些文本都跳到图形下方而不是换行。(我已经在最新的 Firefox 和 Edge 中测试过。)
请告诉我有解决办法。无法弄清楚如何做如此简单的事情令人沮丧。
谢谢!
这是您要找的吗? grid-template
完成大部分工作。
#placard3 {
border:none;
background-color:#acd373;
border-radius:10px;
}
#placard3 .col-xs-12 {
text-align:center;
display: grid; /* new */
grid-template: 1fr / auto 1fr; /* new */
}
.placard-image { /* new */
margin: 2rem;
}
.placard-body {
color:#ff4022;
align-items:center;
display:inline-flex;
min-height:80px;
}
<div class="placard" id="placard3">
<a href="https://optio.yln.info/login?url=https://connect.mangolanguages.com/yavapai/start" target="_blank" class="placard-link">
<div class="row">
<div class="col-xs-12">
<img src="https://ppl.beta.yln.info/files/original/imagemango%20button.png" class="placard-image" alt="Mango Languages">
<span class="placard-body">
<p>Learn on Your Own Time at Home or On the Go</p>
</span>
</div>
</div>
通过在 .col-xs-12
div 上使用 flex 并在 .placard-body
上使用 auto margin,您可以获得您正在寻找的行为:
#placard3 .col-xs-12 {
display: flex;
flex-wrap: none;
align-items: center;
}
.placard-body {
color:#ff4022;
margin: auto;
}