如何在剩余空间中浮动图像和中心标题?

Posted

技术标签:

【中文标题】如何在剩余空间中浮动图像和中心标题?【英文标题】:How to float an image and center headlines in remain space? 【发布时间】:2017-05-27 20:45:37 【问题描述】:

我想要这个结构,一个有flex:display的容器,一个浮动在右边的图像,然后是一个h1和h2,我想把这些垂直和水平中心放在div的剩余空间上。

这是我目前的结果。

样机。

+-----------------------+
|                       |
|XXXX                   |
|XXXX     HELLFISH      |
|XXXX    born to die    |
|XXXX                   |
|                       |
+-----------------------+

这是html代码。

div.container
  img(src='http://vignette3.wikia.nocookie.net/simpsons/images/a/a1/Flying_Hellfish_Logo.png/revision/latest?cb=20150327234211')
  h1 HELLFISH
  h2 Born to die

SCSS。

.container
  display: flex;
  width: 50%;
  border: 1px solid red;
  justify-content: space-between;
  img
    max-width: 300px;
    max-height: 300px;
    float: left;
  
  h1
    align-self: center;
    margin: auto;
    position: relative;
  
  h2
    align-self: center;
    margin: auto;
    vertical-align:middle;
    position: relative;
    
 

密码笔。 http://codepen.io/TabaresSotelo/pen/pRyxPz

最好的问候

【问题讨论】:

【参考方案1】:h1h2 包装在一个容器中(这将成为图像的同级flex 项)。 使用order 属性将图像向右移动。 您不需要使用float 属性或justify-content: space-between

.container 
  display: flex;
  width: 50%;
  border: 1px solid red;

.nested-container 
  flex: 1; /* to consume all remaining space */
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;

.container img 
  max-width: 300px;
  max-height: 300px;
  order: 1;

h1, h2 
  margin: 0;
<div class="container">
  <img src="http://vignette3.wikia.nocookie.net/simpsons/images/a/a1/Flying_Hellfish_Logo.png/revision/latest?cb=20150327234211" />
  <div class="nested-container">
    <h1>HELLFISH</h1>
    <h2>Born to die</h2>
  </div>
</div>

revised codepen(编译后的代码)

【讨论】:

【参考方案2】:

将标题元素包裹在另一个 div 中,并在该 div 元素上设置 margin: 0 autoDEMO

.container 
  display: flex;
  width: 50%;
  border: 1px solid red;
  align-items: center;
  img 
    max-width: 300px;
    max-height: 300px;
  
  div 
    margin: 0 auto;
    text-align: center;
  
  h1,
  h2 
    margin: 0;
  

.container
  img(src='http://vignette3.wikia.nocookie.net/simpsons/images/a/a1/Flying_Hellfish_Logo.png/revision/latest?cb=20150327234211')
  div
    h1 HELLFISH
    h2 Born to die

【讨论】:

以上是关于如何在剩余空间中浮动图像和中心标题?的主要内容,如果未能解决你的问题,请参考以下文章

如何让图像填充 div 内的剩余空间? [复制]

如何让特定段落向左浮动,图像向右浮动

如何使浮动在多条线上的多个图像居中?

是否可以浮动中心图像?

左侧固定,右侧自适应如何来写

左侧固定,右侧自适应如何来写