2015-09-24 43 views
1

这里有一个与CSS相关的问题。我想创建一个水平箭头,就像这个在屏幕截图上(实际上它是在油漆中添加的)。CSS:任何方式来创建顶部到底部的箭头?

作为一个可能的解决方案,我想到使用transform: skew属性,但我不认为有可能倾斜左侧&右侧的一个元素。

有什么建议吗? :)

enter image description here

+1

为什么不使用的图形? – Joshua

+0

好主意,虽然任务是通过纯CSS创建相同的。你甚至可以为三角形使用图形,不是吗? :) –

+1

@Joshua我想在2015年,问题是'为什么要使用图形?' CSS是完全有能力的,并且是放置它的正确地方。 –

回答

4

它使用“一单格”通过采取:before:after选择的好处是可能的。

.arrow { 
 
    margin: 50px; 
 
    width: 500px; 
 
    height: 40px; 
 
} 
 
.arrow:before { 
 
    content: ''; 
 
    position: relative; 
 
    left: 0; 
 
    top: 0; 
 
    display: inline-block; 
 
    width: calc(50% - 2px); 
 
    height: 100%; 
 
    border: 1px solid red; 
 
    border-right-width: 0; 
 
    transform: skewY(10deg); 
 
} 
 
.arrow:after { 
 
    content: ''; 
 
    right: 0; 
 
    top: 0; 
 
    position: relative; 
 
    display: inline-block; 
 
    width: calc(50% - 2px); 
 
    height: 100%; 
 
    border: 1px solid red; 
 
    border-left-width: 0; 
 
    transform: skewY(-10deg); 
 
}
<div class="arrow"></div>

+1

很好地完成。我得到了“歪斜”(而不是“旋转”),然后平稳下来。很好的答案。 –

+0

如果箭头具有超出装饰的任何功能,那么为了可访问性原因需要更多标记 –