1

基本上,我需要制作一个标题,样式如下:

圆形斜头

是否有完整的 css 方式,还是我需要使用背景图像?

4

2 回答 2

7

是的,你可以只使用 CSS 来做到这一点,但这并不容易,结果是……嗯,丑陋的。您可能还想检查一下:CSS for倒置弯曲标签

编辑:我今天有一个更好的主意,请查看此http://dabblet.com/gist/2762234

CSS如下:

h1 {
    min-width: 150px;
    height: 30px;
    margin: 0;
    /**border: solid 2px #979797;/**/
    border-bottom: none;
    border-radius: 8px 0 0 0;
    box-shadow: -2px -2px 2px #a5a5b1;
    display: inline-block;
    position: relative;
    background: linear-gradient(#e8e8ea, #f8f8fa);
}
h1:before {
    /**top: -2px;/**/
    /**/top: 0;/**/
    right: -23px;
    width: 30px;
    height: 30px;
    border-radius: 0 8px 0 0;
    /**border: solid 2px #979797;/**/
    border-left: none;
    border-bottom: none;
    box-shadow: 2px -2px 2px #a5a5b1;
    /** outline: solid 1px red; /* uncomment this to check position */
    transform: skewX(30deg);
    position: absolute;
    background: linear-gradient(#e8e8ea, #f8f8fa);
    content: '';
}
h1:after {
    right: -44px;
    /**bottom: 0;/**/
    /**/bottom: 2px;/**/
    width: 16px;
    height: 8px;
    /**border: solid 2px #979797;/**/
    border-top: none;
    border-right: none;
    border-radius: 0 0 0  8px;
    box-shadow: inset 2px -2px 2px #a5a5b1, -4px 4px 2px #f8f8fa;
    /** outline: solid 1px red; /* uncomment this to check position */
    transform: skewX(30deg);
    position: absolute;
    content: '';
}
div {
    min-height: 130px;
    margin-top: -7px;
    /**border: solid 2px #979797;/**/
    border-radius: 0 8px 0 0;
    box-shadow: -2px -2px 2px #a5a5b1, 2px -2px 2px #a5a5b1;
    background: linear-gradient(#f8f8fa, #f6f6f8);
}

它可以看起来更漂亮,但这需要标题的固定宽度和 div 上的伪元素。

于 2012-05-21T11:41:00.113 回答
0

您可能可以通过使用堆叠在一起的几个元素来实现这一点。
我不认为这是你想要的生产,所以我的建议是选择背景图像。

于 2012-05-21T11:43:59.433 回答