Grow your CSS skills. Land your dream job.

Last updated on:

Simple and Nice Blockquote Styling

The blockquote displays in standards-compliant browsers with the "big quotes before" effect, and in IE with a thick left border and a light grey background.
Unlike other blockquote techniques, this style does not require a nested block-level element (like p). As such, it turns a paragraph into an inline-styled element to keep the content from dropping below the quote.

blockquote {
  background: #f9f9f9;
  border-left: 10px solid #ccc;
  margin: 1.5em 10px;
  padding: 0.5em 10px;
  quotes: "\201C""\201D""\2018""\2019";
}
blockquote:before {
  color: #ccc;
  content: open-quote;
  font-size: 4em;
  line-height: 0.1em;
  margin-right: 0.25em;
  vertical-align: -0.4em;
}
blockquote p {
  display: inline;
}

Example

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.

Comments

  1. Permalink to comment#

    the only thing i would like for this would be a closing quote at the end.

  2. Permalink to comment#

    scratch that..

  3. Permalink to comment#

    What will this look like?

  4. Thanks very much for this!

  5. Personally, I think that the use of the vertical line *and* the quotation mark is redundant, since they both signify the same thing.

  6. Permalink to comment#

    This doesn’t seem to work in chrome/safari.

  7. Permalink to comment#

    … If you want it to work in Safari/Chrome.

    blockquote:before {

    content:”\201C”;

    }

    blockquote:after {

    content:”\201D”;

    }

  8. Wolf
    Permalink to comment#

    Using multiple blockquotes one after another seems to result in the first instance having a double quote before but every subsequent instance having only a single quote before (in Firefox). Why would this be?

    • Efrain
      Permalink to comment#

      Having the same issue. How can I fix this?

      Thanks

    • Permalink to comment#

      Yep, had this same issue. I tried what the dude said in the above comment. It fixes the problem!

    • Andrew
      Permalink to comment#

      It looks like it’s because of the 3rd & 4th parameters in the quote attribute.
      From: http://www.w3schools.com/cssref/pr_gen_quotes.asp

      quote: string string string string
      Specifies which quotation marks to use. The first two values specifies the first level of quotation embedding, the next two values specifies the next level of quote embedding, etc

      Hence if you’re not closing quotes it’ll use the 3rd parameter.

      I changed it to quotes: "\201C""\201D"; and it fixed it for me.

      Cheers

  9. Permalink to comment#

    what would the
    code for the closing quote be?

  10. Permalink to comment#

    sorted

    blockquote:after {color:#B2AFCD;content:close-quote;font-size:4em;line-height:.1em;margin-right:.25em;vertical-align:-.4em;}

    just gotta paly with the spac a bit :)

  11. Permalink to comment#

    ‘Scuse my appalling spelling!

    final

    blockquote:after {color:#B2AFCD;content:close-quote;font-size:4em;line-height:.1em;margin-left: .20em;vertical-align:-.4em;}

    Thanks for great tips Chris :)

  12. Charlie
    Permalink to comment#

    What’s the:

    quotes:"\201C""\201D""\2018""\2019";

    for on blockquote?
    You don’t seem to need it if you specify \201C and \201D on :before and :after.

    Am I missing something?

  13. Hey all, as the original snippet submitter, I just wanted to follow up and address some of the weaknesses mentioned in the comments. Here is some css that I think is an improvement:

    
    blockquote{background:#f9f9f9;border-left:1em solid #eee;margin:1.5em 1em;padding:.5em 1em;quotes:"\201C""\201D";}
           blockquote:before{color:#808080;content:open-quote;font-size:4em;line-height:.1em;margin-right:.25em;vertical-align:-.4em;}
           blockquote :first-child{display:inline;}
           blockquote :last-child{margin-bottom:0;}
    
    • I was gonna mentioned some of the same changes as you (i.e. the first and last child), Brad, but then I noticed your comment. Good calls. I’d just add that it might be a good idea to set the :first-child to inline-block to preserve the bottom margin.

    • Emnem

      Inline blocking makes the opening quote display above and to the left of the first line. Kind of seeking an answer to this myself, since preserving inline styling on a multi-paragraph quote (without amending it to inline-block) makes the first paragraph lay right on top of the next one. Very funky positioning issues (at least in Fx32/33 Nightly).

  14. jenn
    Permalink to comment#

    This doesn’t seem to work in chrome.

  15. Very useful reference! If anyone is wondering why only their first blockquote has the double quote marks but the following ones don’t, you just need to add:

    blockquote:after {
    content: no-close-quote;
    }

  16. Permalink to comment#

    Hi,

    How to add a box shadow ?
    Thanks

  17. Pretty easy and cool! Thanks Chris!

  18. Permalink to comment#

    Thanks man, it helped me alot :)

  19. Derek

    Anyone know how to modify the css so that there is a space between paragraphs in a block quote? Thanks for any help.

  20. Pretty style!

  21. Permalink to comment#

    The demo page is a dead link!

  22. Sudeep B
    Permalink to comment#

    @css-trick @David Darnes

    Nice one.

  23. Permalink to comment#

    Greetings – some modifications to the code that makes it work for me :-)

    blockquote {
      margin: 1.5em 0 1.5em;
      padding: 0 1em 0 2.5em;
      position:relative;
    }
    blockquote:before
     {
      color: #ccc;
      content: "\201C";
      font-size: 5em;
      position:absolute;
      left:5px;
      top: 0.3em;
      line-height: 0.1em;
    }
    
    blockquote:after
     {
       color: #ccc;
      content: "\201D";
      font-size: 5em;
      position:absolute;
      right:3px;
      bottom: 0em;
      line-height: 0.1em;
    }
    

    The important bits – I have padding on both sides. Setting the blockquote element to position:relative means you can set the blockquote:before`` and blockquote:after to position:absolute, and then position the quote to using left, right, bottom and top

    • Permalink to comment#

      Don, the text was overlapping the end quotation symbols on the right (FF v25).

      Changing the right-side padding from 1em to 2.5em fixes it.

      padding: 0 2.5em 0 2.5em

      Thanks everyone for this!

  24. Daniel
    Permalink to comment#

    Nice and clean! You’ve just missed a colon (:) here:
    blockquote p {
    display: inline;
    }

  25. For the before element, the vertical-align prevented text from being selected. It took me a while to get rid of the bug, but I think it works now.

    display:inline-block;color:#FFF;height:25px;font-size:2.8em;line-height:80px;content:'\201F';letter-spacing:-2px;float:left;position:relative;right:8px

  26. Is there a simpler way to make quotes attractive if you do not really understand the above CSS stuff. I fear it is beyond me.

    • You could style blockquotes to appear in italics, like this:

      blockquote {
      font-style: italic;
      }

  27. Abhimanyu
    Permalink to comment#

    What is the blockquote:before for?

  28. Permalink to comment#

    Thanks! I learned what I needed in the comments. It’s always bothered be that there was only the first quote and not two.

    I tweeked one of the above a little more and added purple to it.

    blockquote {
        background-color: #9786c6;
        border-left: 1em solid #5236a0;
        margin: 1.5em 0 1.5em;
        padding: 1em 1.5em 0 2.5em;
        position: relative;
    }
    blockquote:before {
      color: #392570;
      content: "\201C";
      font-size: 5em;
      position:absolute;
      left:5px;
      top: 0.6em;
      line-height: 0.1em;
    }
    
    blockquote:after {
       color: #392570;
      content: "\201D";
      font-size: 5em;
      position:absolute;
      right:3px;
      bottom: 0em;
      line-height: 0.1em;
    }      
    
    

    See how they turned out on http://meetkarissa.com/sleepphones .

Leave a Comment

Posting Code

Markdown is supported in the comment area, so you can write inline code in backticks like `this` or multiline blocks of code in in triple backtick fences like this:

```
<div>Example code</div>
```

You don't need to escape code in backticks, Markdown does that for you. If anything screws up, contact us and we can fix it up for you.

*May or may not contain any actual "CSS" or "Tricks".