首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将图像和文本与flex容器项中的类对齐

将图像和文本与flex容器项中的类对齐
EN

Stack Overflow用户
提问于 2019-11-29 03:40:32
回答 1查看 40关注 0票数 0

我正在尝试用css flex创建我自己的基本网格系统。我想在flex项目容器中使用用于文本和图像对齐的类。

我需要帮助理解做这件事的最好方法。

这是我目前所拥有的:

代码语言:javascript
复制
.flex-footer {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  background-color:#330066;
}

.item {
  height: 100px;
  padding: 5px;
  margin : 5px;
  background: tomato;
}

.flex-footer > .item > div {
  display: table;
}

.middle-center {
  display: flex;
  align-items: center;
  justify-content: center;
}

.item > .bottom-center {
  align-self: flex-end;
  /*display : table-cell;*/
  /*vertical-align: bottom;*/
  /*flex-direction: column;*/
  /*align-items: flex-end;*/
  /*align-self: flex-end; */
  /*align-content: flex-end;*/
  /*justify-content: center;*/
}

.order-1 { order: 1; }
.order-2 { order: 2; }
.order-3 { order: 3; }


.col-4 {
  width: 25%;  
}
代码语言:javascript
复制
 <div class="flex-footer">
    
  <div class="item col-4 order-3">
  <div class="top-left">text (top left) a</div>
  <div class="middle-left">text (middle left)</div>
  <div class="bottom left">text (bottom left)</div>
  </div>

  <div class="item col-4 order-1">
  <div class="bottom-center">text (middle center)</div>
  </div>

  <div class="item col-4 order-2">
  <div class="">text (top right)</div>
  <div class="middle-center">image (middle center)</div>
  <div>ul/litext </div>
  </div>

</div>

我的jsfiddle示例如下:https://jsfiddle.net/svwp24m6/

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-29 06:19:28

您还需要向所有.item%s添加display: flex

以下是我所理解的您想要做的事情,以及flex如何做到这一点的一些示例。

.item中的margin使项目变得比.flex-footer的宽度更大。我很少在flex元素中使用边距,因为在设置flex-basis时需要考虑到这一点(使用calc())。遗憾的是,在flex容器中没有考虑到边际。

代码语言:javascript
复制
.flex-footer {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  background-color:#330066;
}

.item {
  display: flex;
  justify-content: center;
  align-content: center;
  height: 100px;
  padding: 5px;
  margin : 5px;
  box-sizing: border-box; /* to include padding in the element's width */
  background: tomato;
}

.item.order-2 {
   flex-direction: row-reverse;
}

.item.order-3 {
   justify-content: left;
}

/*.flex-footer > .item > div {
  display: table;
}*/

 .top {
   align-self: start;
 }

 .middle {
   align-self: center;
 }

 .bottom {
   align-self: end;
 }

.order-1 { order: 1; }
.order-2 { order: 2; }
.order-3 { order: 3; }


.col-4 > div {
  flex-basis: 25%;
  /*width: 25%;  */
}
代码语言:javascript
复制
 <div class="flex-footer">
    
  <div class="item col-4 order-3">
    <div class="top left">text (top left) a</div>
    <div class="middle left">text (middle left)</div>
    <div class="bottom left">text (bottom left)</div>
  </div>

  <div class="item col-4 order-1">
    <div class="middle center">text (middle center)</div>
  </div>

  <div class="item col-4 order-2">
    <div class="top right">text (top right)</div>
    <div class="middle center">image (middle center)</div>
    <div>ul/litext </div>
  </div>

</div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59095325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档