【问题标题】:align img, span, and div with bottom border将 img、span 和 div 与底部边框对齐
【发布时间】:2016-07-27 20:11:40
【问题描述】:

我有一个图像,一个跨度(等号)中的单个字符,然后是一个通过 js 添加/替换子元素的 div。

但是,我终其一生都无法弄清楚如何将所有内容正确对齐(担心我过度思考并使其复杂化。)

我也在使用引导程序的网格(行/列)系统。

类似于...的东西

<div class="container">
<div class="row">
<div class="col-lg-2 col-offset-lg-1">
  <div class="response-part">
    <img src="foo" />
    <span class="opensans">=</span>
    <div id="rp1" class="opensans inline" style="width: 50px;">
    </div>
  </div>
</div>
<div class="col-lg-2">
  <div class="response-part">
    <img src="foo" />
    <span class="opensans">=</span>
    <div id="rp2" class="opensans inline" style="width: 50px;">
      <span class="opensans">X</span>
    </div>
  </div>
</div>
</div>
</div>

jsfiddle

想要图像居中沿等号(垂直对齐)以及相邻 div 内的跨度(该跨度中的文本仅显示在离底线几个像素的位置。)

我看到了this,但没有一个解决方案可以解决我的问题(我只能猜测是因为第三个元素和字体等)

UPDATE1:编辑示例 html 以正确反映 response-part.div 为空的情况(初始状态,用户与页面交互时可能的过渡状态。)更新 fiddle

UPDATE2:我通过在响应部分的初始 html 中添加一个初始元素,然后在用户删除所有其他元素时重新添加一个元素,“修复”了没有子元素的问题元素。有点骇人听闻,如果可能的话,将不胜感激不涉及此解决方法的修复程序。更新fiddle

PS:我最初考虑使用 bootstrap v4(支持 flexbox),但它仍然是 alpha。或者,我也考虑使用FlexboxGrid,但是我仍然需要其他功能的引导程序,并且 FlexboxGrid 使用类似的类(“行”等)作为引导程序,我认为这会导致名称冲突(如果我将两者都包含在我的项目中,例如:将使用哪个“行”类!)

【问题讨论】:

  • 我不确定这是否是你想要的,所以我在评论。检查这个:jsfiddle.net/gusLnyyh/5
  • 我喜欢你的建议的想法(我的 css 的简化),但是(我的错)我没有提到 html 的初始状态是 response-part.div 最初是空的(并且仅当用户将元素拖动并离开该区域时才会填充,这会导致您建议的“后” div 的放置出现问题。请参阅此this jsfiddle 更新

标签: css html twitter-bootstrap


【解决方案1】:

尝试在您的响应部分类中使用display: flex;。像这样的:

.response-part {
    display: flex;
    align-items: center;
 }

我编辑了你的小提琴。看看吧:https://jsfiddle.net/gusLnyyh/6/

【讨论】:

  • 您的解决方案解决了第一部分。我考虑(并尝试过)使用 flexbox 没有任何成功。您(谢天谢地)更正了我认为要求将父元素也标记为 flex 的要求,并且“对齐中心”只会影响水平间距(而不是您演示的垂直对齐方式。)关于span 元素与“下划线”元素的间距?请参阅thisfiddle 了解我所指的内容。
猜你喜欢
  • 1970-01-01
  • 2021-05-20
  • 1970-01-01
  • 2013-06-11
  • 2016-09-25
  • 1970-01-01
  • 1970-01-01
  • 2011-01-02
相关资源
最近更新 更多