css - Django 鹡鸰 :- RichTextField vs Streamfields RichTextBlock styling first letter of paragraph.

标签 css django wagtail wagtail-streamfield

现在我对这两个人有点恼火。我需要对段落的第一个字母进行特殊设计。使用 RichTextField 时,模板中的示例代码有效。在某种程度上,它设置 RichTextField 的第一个字母的样式,但不是其中每个段落的第一个字母的样式。

<span class="first-letter-styling">{{ page.translated_body | striptags | make_list | first }}</span>

{{ page.translated_body | slice:"4:" |  richtext }}

但是,当尝试对流字段中的 RichTextBlock block 执行相同操作时,上述方法不起作用。它只是简单地输出整个 block ,我什至不需要添加“| richtext”过滤器。

{% for block in blocks %}
    {% if block.block_type == 'block' %}
        {% with bs=block.value %}
            <h2>{{ bs.title }}</h2>
            <p>
                <span class="first-letter-styling">{{ bs.content | striptags | make_list | first }}</span>
            </p>
            <p>{{ bs.content | slice:"4:" |  richtext }}</p>
        {% endwith %}
    {% endif %}
{% endfor %}

所以这段代码的目的是采用第一个字母的样式,然后继续段落的其余部分。然而,这不起作用,它需要第一个字母的样式,然后打印整个段落,包括第一个字母。

所以问题是:

如何为 RichTextFieldRichTextBlock 设置段落的每个第一个字母的样式,而不仅仅是整个元素的第一个字母。

我如何确保它仅适用于段落内的内容。即,如果有人只用元素符号 (ul) 填充内容。首字母样式将不适用。实现此目的的最佳方法是,我们可以简单地从 RichTextFiel 和 RichTextBlock 的 wagtail 管理面板中完成所有这些样式设置。

最佳答案

无需将第一个字母括在 <span> 中对其进行样式设置 - CSS 提供了 first-letter伪元素。将其与<div class="rich-text">相结合Wagtail 自动放置在每个富文本元素周围,您的 CSS 规则将类似于:

.rich-text > p:first-letter {
    color: red;
}

关于css - Django 鹡鸰 :- RichTextField vs Streamfields RichTextBlock styling first letter of paragraph.,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44659736/

相关文章:

javascript - 如何限制粒子仅从一个对象/位置/文件释放,而不是单击屏幕上的任意位置?

html - 网站上的页脚没有停留在页面底部?

django - 我可以在没有测试客户端的情况下访问测试 View 的响应上下文吗?

django-templates - 将 wagtail streamfield block 依赖项插入模板的正确方法是什么?

python - 寻找 manage.py 子命令的来源

css - HTML 电子邮件 : @media queries that work on mobile and Outlook

javascript - JQuery 按钮禁用整个网站的 CSS?

django - Order_By:Django Q对象顺序?

python - 在序列化器中添加一个额外的字段,但它不在模型中

django - 如何使 Wagtail Streamfield 不需要?