Create Pure CSS 3D Ribbon

Discussion in 'CSS' started by endlesslove, Mar 3, 2012.

  1. #1
    Since I always insists using CSS3 instead of images, here is a good example of CSS usage to create a 3D ribbon.
    James has used a single level element containing a child element with the class.
    <p class="ribbon">
        <strong class="ribbon-content">Sangtao24.com ribbons</strong>
    </p>
    Code (markup):
    In order to achieve it using CSS, he has used before and after pseudo codes and good use of border properties
    .ribbon {
      font-size: 16px !important;
    
      position: relative;
      background: #ba89b6;
      color: #fff;
      text-align: center;
      padding: 1em 2em; /* Adjust to suit */
       margin: 0 0 3em; /* Based on 24px vertical rhythm. 48px bottom margin -  normally 24 but the ribbon 'graphics' take up 24px themselves so we  double it. */
    }
    .ribbon:before, .ribbon:after {
      content: "";
      position: absolute;
      display: block;
      bottom: -1em;
      border: 1.5em solid #986794;
      z-index: -1;
    }
    .ribbon:before {
      left: -2em;
      border-right-width: 1.5em;
      border-left-color: transparent;
    }
    .ribbon:after {
      right: -2em;
      border-left-width: 1.5em;
      border-right-color: transparent;
    }
    .ribbon .ribbon-content:before, .ribbon .ribbon-content:after {
      content: "";
      position: absolute;
      display: block;
      border-style: solid;
      border-color: #804f7c transparent transparent transparent;
      bottom: -1em;
    }
    .ribbon .ribbon-content:before {
      left: 0;
      border-width: 1em 0 0 1em;
    }
    .ribbon .ribbon-content:after {
      right: 0;
      border-width: 1em 1em 0 0;
    }
    Code (markup):
    If your using the ribbon inside another element, add this CSS.
    position: relative;
    z-index: 1;
    Code (markup):
    Source: http://forum.sangtao24.com/programming-coding/create-pure-css-ribbon-t247.html
     
    endlesslove, Mar 3, 2012 IP