2017-08-08 28 views
0

我想将CSS3箭头保留在与某些文本相同的水平面上。换句话说,我想这一切都停留在同一水平面上...使用“display:block”,但无法将图像保留在与文本相同的水平面上

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

我想“显示:块”会做的伎俩,但显然不是 - https://jsfiddle.net/6m7vegwc/。唯一的问题是CSS的箭头需要一个“后”

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

我认为这是扔东西了。无论如何,我怎样才能将我的箭头保持在与文本相同的水平面上?

回答

1

最简单的解决将是让他们都显示inline-block的。

#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>

0

指导这可以用display: flex

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

做进一步了解Flexbox的(近几年的更好的CSS创新之一)here

+0

为什么使用而不是 “弯曲”, “内联”,由其他人则建议? – Dave

+0

'flex'很好,如果你还想让你的内容垂直对齐。它给你更多的权力。 [这里](https://css-tricks.com/snippets/css/a-guide-to-flexbox/)是一个关于flexbox的好文章。 – lumio

+0

@Dave有几个原因,其中一个仅仅是一种文体选择。另一个原因是flexbox可以真正适应解决80-90%的布局问题(以我的经验),所以我选择只掌握'flex',所以我的代码是一致的。 – WookieCoder

0

你正在寻找的是display: inline,但你可以简化你的例子,只需交换<div> s对<span> s,因为<span>个标签是默认display: inline

如果你想拥有的一切更加稳定和集中,也可以使用display: flex这需要它的孩子和水平传播他们,在默认情况下将垂直拉长他们。

#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>

相关问题