Blockquote引用符号在内容框外流血

时间:2011-12-14 13:18:06

标签: html css positioning double-quotes text-alignment

我有一个blockquote,其中引用符号是使用CSS内容生成的,使用伪选择器:before和:after之后:

div.paragraph blockquote::before, div.paragraph blockquote::after {
    font-size: 4em;
    color: #999;
    position: absolute;
}

div.paragraph blockquote::before {
    content: "“201C";
    top: 0;
    left: 0;
}

div.paragraph blockquote::after {
    content: "”201D";
    bottom: 0;
    right: 0;
}

这会生成如下所示的块引用:

enter image description here

我想要的是让citationsymbol留在各自的盒子里面,这样他们的基线就会和blockquote里面的文字相同。

我认为这与citationsymbols自然基线有关,但也许有人可以详细说明?

解决这个问题的一种方法是给citationsymbol一个相对字体大小的负边距,但我正在寻找一个更“正确”的解决方案,或者解释为什么citationsymbols会这样做。

编辑:添加位置:相对; div.paragraph并没有解决这个问题,因为它已经有了位置:relative。

2 个答案:

答案 0 :(得分:0)

        <style>
        div.paragraph{
        width:50%;
        margin:auto;
        }
        div.paragraph blockquote{
        position:relative;
        }
        div.paragraph blockquote::before, div.paragraph blockquote::after {
            font-size: 4em;
            color: #999;
        }

        div.paragraph blockquote::before {
            content: "“";
            top:-0.4em;
            left: -0.6em;
            position: absolute;

        }

        div.paragraph blockquote::after {
            content: "”";
            right: 0;
            position: absolute;
        }
        </style>

        <div class='paragraph'>
        Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. 

       Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. 
        <blockquote>
       Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. 

       Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. 
        </blockquote>
       Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. 

       Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. 
</div>

似乎你需要将“div.paragraph blockquote”设置为relative,它被视为内容之前和之后的父容器

答案 1 :(得分:0)

好的,我理解你的问题,你所做的是添加css:

div.paragraph {position:relative; }

这定义了其子项的上下文