7

有人可以告诉我CSS代码或指向一个关于如何实现这种效果的教程,一直都可以看到。这是我正在谈论的图像:

在此处输入图像描述

注意:我知道如何使用绝对定位,我只需要知道它们是如何实现效果的。

4

2 回答 2

6

如果功能区是问题,则在空(0-size)元素(您可以使用:after伪元素添加)上使用边框。

html

<div id="content">
    <div id="ribbon"></div>
</div>

CSS

#content{
    background-color:#77c;
    width:300px;
    height:200px;
    position:relative;
}
#ribbon{
    position:absolute;
    width:80px;
    height:30px;
    right:-20px;
    top:50px;
    background-color:#999;
}
#ribbon:after{
    content:'';
    width:0;
    height:0;

    border-color: transparent transparent #666 #666;
    border-style:solid;
    border-width:5px 10px;

    position:absolute;
    right:0;
    top:-10px;
}

演示在 http://jsfiddle.net/gaby/zJPhy/

于 2012-12-19T20:07:17.060 回答
1

这可以相对定位,也可以绝对定位——它可以通过任何一种方式完成:

#item {
    position: relative;
    right: -10px; /* moves it 10px to the right */
}

或者绝对:

#item {
    position: absolute:
    top: 20px; /* 20px from the top */
    right: -20px; /* 20px off the right edge */
}

请注意,如果绝对定位的元素没有定位的祖先,则它们将根据视口进行定位。

折叠部分可以使用伪元素上的边框:before:after.

演示:http: //jsfiddle.net/MaepP/2/

于 2012-12-19T19:56:51.017 回答