能否只使用CSS创建一个指向下方的按钮(包含图片)?

5
我希望仅使用CSS就能创建这个效果。这是否可能?如果可以,你们能帮我一下吗? enter image description here

3
http://cssarrowplease.com/ - Pete
@Pete 那是一个很棒的网站,但我无法将箭头高度缩短,使其看起来像我帖子中的图片。 - J82
3
这也许会很有趣:http://css-tricks.com/examples/ShapesOfCSS/ - Wipster
@Wipster 给出的参考已经回答了你的问题(或多或少)。看一下尖括号的结构,你需要将顶部方形化并使其平坦。 - Marc Audet
3个回答

5
边框和伪元素可以轻松实现:
<a href="#" id="button">ALL</a>

#button::after {
    content: "";
    border: 64px solid transparent;
    border-top: 12px solid orange;
    position: absolute;
    top: 29px;
    left: 0;
}

DEMO


太好了!不知道有没有可能让它在最新的IE上运行? :) - J82
应该可以在IE8+中正常工作。您可能需要调整位置等。 - Turnip
1
@3rror404 哦,是的,你说得对。我把 a 改成了 button,所以在 IE 中它就不能工作了。但别担心,现在一切都好了。 :) - J82

3
尝试使用这个基本按钮进行实验:
.btn {
    width: 100px;
    height: 30px;
    text-align: center;
    border: 0;
}
.btn-arrow {
    position: relative;
    background: coral;
}
.btn-arrow:after {
    border: solid transparent;
    content:"";
    position: absolute;
    border-top-color: coral;
    border-width: 16px 50px;
    left: 0px;
    top: 100%;
    margin-top: 0px;
}

http://jsfiddle.net/dfsq/tNjCb/1/


2

可以考虑以下���容:

http://jsfiddle.net/WDCu3/

<div id="test">Testing</div>
<div id="arrow"></div>

#test {background-color:red; width:100px;}
div {text-align:center;}

#arrow {
    border-top: 15px solid red;
    border-left: 50px solid transparent;
    border-right: 50px solid transparent;
    height: 0;
    width:0;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接