有关将样式应用于文章类别(类别或其他任何内容?)的好方法的任何想法
目前,我手动创建文章的第一个传递,将其包装在一个范围内:
<span class="foo">
<p>bar</p>
<p>etc</p>
</span>
然后我将文章粘贴到JCK编辑器中,并在模板目录中有一个新的css文件来处理class foo
。
这不能很好地工作,因为JCK编辑器将span类移动到内部元素,产生类似
的内容<p><span class="foo">bar</span></p>
<p><span class="foo">etc</span></p>
这是好的,直到您开始使用JCK编辑器编辑文章,因为新内容不在范围内:
<p><span class="foo">bar</span></p>
<p><span class="foo">etc</span></p>
<p>New unstyled content inserted by JCK Editor</p>
我在Joomla3上。如果类别的名称出现在html中,那将是理想的,所以我可以在其上挂一个样式,但事实并非如此。
答案 0 :(得分:6)
有很多方法可以解决这个问题。如果您想为此目的在body标签中添加一个类,请查看我在https://github.com/construct-framework/construct5/blob/master/index.php#L65处的工作方式,并从https://github.com/construct-framework/construct5/blob/master/elements/logic.php#L235开始。这假设您要编辑模板。
您还可以制作一个简单的插件,动态地将这些类添加到您的body标签中。
否则,可以使用http://extensions.joomla.org/extensions/style-a-design/templating/14053
之类的方法来执行此操作答案 1 :(得分:5)
如果每个类别都位于自己的菜单项上,您可以为容器div添加“Page Class”后缀(高级选项&gt;页面显示选项)
其他方式是添加模板覆盖:
将components/com_content/views/category/tmpl/blog.php
复制到templates/[your_template]/html/com_content/category/blog.php
)
在文件内部更改
<div class="blog<?php echo $this->pageclass_sfx;?>">
到
<div class="blog<?php echo $this->pageclass_sfx . ' ' . $this->category->alias;?>">
答案 2 :(得分:0)
你可能不应该在span-elements中添加p元素,因为span是一个内联元素,不应该包含像p这样的块元素。这就是JCK切换元素的原因。如果你使用div元素,你可能不会遇到文本编辑器的这个问题。
除此之外,我猜其他受访者都有优点。