如何根据内容控制html模板输出?

时间:2013-03-08 03:00:10

标签: php javascript jquery html css

我的网站有一个HTML结构,如:

....
<div class="column1">dynamic_content</div>
<div class="column2">dynamic_content</div>
<div class="column3">dynamic_content</div>
...

现在,我想拥有这个结构,但我想根据每列的内容来控制结构。例如:

一个。如果'column1'为空,我有两个选项:

  1. 仅使用2个div(column2和column3)输出HTML(使用PHP)。
  2. 输出包含所有div的HTML并通过CSS隐藏column1(显示:无)。
  3. 您认为哪种更好?

    第一个选项有些复杂,因为我不知道每列中会有什么样的动态内容,并且使用PHP我需要处理整个HTML以了解(column1,column2或column3)是否为空。我不想使用Javascript,我只想使用CSS或PHP这两个选项之一。

    现在好了,也许您认为我可以使用每个页面的默认模板。

    例如,如果(pageXYZ)没有column1,我将使用像

    这样的模板
    ...
    <div class="column2">dynamic_content</div>
    <div class="column3">dynamic_content</div>
    ...
    

    但这是最糟糕的,因为将来,如果您需要修改整个模板,则需要修改每个页面。我不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

您是否考虑过使用:empty CSS3伪选择器?你可以轻松地写:

div.column1:empty, div.column2:empty, div.column3:empty {
  display: none;
}

在不使用PHP或Javascript的情况下完成同样的事情。

另外,它将保留原始模板,而不必在将来进行编辑,并允许在模板之外的一个位置更新规则。