使用 "display:block" 但无法将我的图像保持在与文本相同的水平面上

Using "display:block" but can't keep my image on the same horizontal plane as the text

我想将 CSS3 箭头与某些文本保持在同一水平面上。换句话说,我希望所有这些都保持在同一个水平面上......

    <div style="display:block">
        <div id="downArrow" class="downArrow arrow"></div>
    - 1.5780377548310014 / -0.01013426671732404 % 
    </div>

我认为 "display:block" 可以解决问题,但显然不是 - https://jsfiddle.net/6m7vegwc/。唯一的问题是箭头的 CSS 需要 "after"

.downArrow:after {
    background: linear-gradient(120deg, transparent 63%, #fff 63%),
    linear-gradient(-120deg, transparent 63%, #fff 63%),
    linear-gradient(to top, #ccc, #000);
}

而且我认为这是在浪费时间。无论如何,我怎样才能使我的箭头与文本在同一水平面上?

我相信您正在寻找 display:inline 或者使用 a 而不是 a 因为内联是它的正常状态。

这里有一份完整解释的指南https://www.w3schools.com/css/css_display_visibility.asp

这可以通过 display: flex

来完成
<div id="oneDayChange">
        ...
    <div style="display:flex; flex-direction: row;">
        ...
</div>

详细了解 flexbox(近年来 css 更好的创新之一)here

您正在寻找的是 display: inline,但您可以通过将 <div><span> 交换来简化您的示例,因为 <span> 标签默认为 display: inline

如果你想让所有的东西更稳定和居中,你也可以使用 display: flex,默认情况下它是 children 水平展开和垂直拉伸。

#oneDayChange {
  display: flex;
  justify-content: flex-start; /* align to the left */
  align-items: center; /* center content vertically */
}


.arrow:after {
    height:50px;
    width:50px;
    display: inline-block;
    content:'';
}

.upArrow:after {
    background: linear-gradient(60deg, transparent 63%, #fff 63%),
            linear-gradient(-60deg, transparent 63%, #fff 63%),
            linear-gradient(to bottom, #ccc, #000);
}

.downArrow:after {
    background: linear-gradient(120deg, transparent 63%, #fff 63%),
    linear-gradient(-120deg, transparent 63%, #fff 63%),
    linear-gradient(to top, #ccc, #000);
}
<div id="oneDayChange">
  One day change 
  <span id="downArrow" class="downArrow arrow"></span>
  - 1.5780377548310014 / -0.01013426671732404 % 
</div>

最简单的解决方法是让它们都显示行内块。

#oneDayChange > div {
  display: inline-block;
  vertical-align: middle;
}
.arrow {
  display: inline-block;
  vertical-align: middle;
}
.arrow:after {
  height: 50px;
  width: 50px;
  display: inline-block;
  content: '';
}

.upArrow:after {
  background: linear-gradient(60deg, transparent 63%, #fff 63%), linear-gradient(-60deg, transparent 63%, #fff 63%), linear-gradient(to bottom, #ccc, #000);
}

.downArrow:after {
  background: linear-gradient(120deg, transparent 63%, #fff 63%), linear-gradient(-120deg, transparent 63%, #fff 63%), linear-gradient(to top, #ccc, #000);
}
<div id="oneDayChange">
  One day change
  <div>
    <div id="downArrow" class="downArrow arrow"></div>
    - 1.5780377548310014 / -0.01013426671732404 %
  </div>
</div>