【问题标题】:How to use HTML-CSS on outputting data conditionally?如何使用 HTML-CSS 有条件地输出数据?
【发布时间】:2012-11-25 23:16:35
【问题描述】:

我正在实现一个无序列表 (<ul><li>...</li></ul>),其中显示一个链接 (<a>...</a>)。在这个链接标签中,除了标题文本之外,我必须有条件地 *显示图像和短文本。

“完整”输出类似于以下内容:

<ul>
  <li>
    +------------------------+
    | +---+  Title           |
    | |   |                  |
    | +---+  Some short text |
    +------------------------+
  </li>
</ul>

但是,由于上述输出是有条件地构建的,因此可能没有显示图像或短文本。所以...

...如果图像不存在但短文本存在,那么输出应该类似于

 +------------------------+
 | Title                  |
 |                        |
 | Some short text        |
 +------------------------+

...如果短文本不存在但图像存在,那么输出应该类似于

 +------------------------+
 | +---+  Title           |
 | |   |                  |
 | +---+                  |
 +------------------------+

...如果图像和短文本都不存在,那么输出应该类似于

 +------------------------+
 | Title                  |
 +------------------------+

我想在 HTML-CSS 标签属性上“播放”,而不是“直接”在“后面”/“生成”该输出的代码上。我该怎么做?


注意 Ijsfiddle.net/zF5Cw/2 上每个场景的“基本”结构。

注二:比如我有问题:

  • 关于在图像不存在时正确输出li 标签的height:视觉上,每个li 标签(和相关图像)几乎都被前一个标签覆盖;
  • 关于在图像存在和不存在时正确输出“标题”和“一些短文本”的padding-left
  • ...

* 在幕后我有一个 JavaScript 代码,它有条件地将 HTML 添加到输出代码中:

var html;

html = "<a>";

if ( image ) { 
  html += "<img>...</img>"
}

if ( short_text ) { 
  html += "Some short text"
}

html += "</a>";

return html;

【问题讨论】:

  • 我应该把它当作我的新项目吗?
  • 你能用生成的代码创建一个jsfiddle.net,即生成所有内容后完成的无序列表的样子。确保包括 3 个场景。
  • @tw16 - 我想这样做,但是,例如,我在选择 正确 / 正确 方式来添加图片内嵌文字。
  • 但是你说你不想改变生成html的后台代码?!因此,您必须向我们展示我们正在使用的 html,即生成的。小提琴将使您更容易为您提供帮助。
  • @tw16 - 如果你想要与问题相关的“简单”HTML 代码(没有 CSS),那么我可以写一个小提琴,即使我认为它的结构只是“直观”;用于构建在该 HTML 中输出的数据的 JavaScript 代码(“幕后”)已在问题正文中进行了说明。

标签: html css html-lists conditional


【解决方案1】:

此示例涵盖了您描述的所有四个场景。现场演示:http://jsfiddle.net/zF5Cw/3/

li {
    padding: 10px;
    border: 1px solid #000;
    margin: 10px;
    overflow: auto;
    width: 300px;
}
img,span{float: left;}
img{margin-right: 10px;}
span{width: 250px;}

【讨论】:

    【解决方案2】:

    CSS 不包含可以更改标记的条件逻辑。您需要使用 JavaScript 来执行此操作。

    【讨论】:

    • 我确实想用 HTML/CSS 做任何动态的事情。如果图像存在,那么它应该“保持”/“坐在”一个固定的空间,但是当它不存在时,则不添加任何内容并且不输出相关空间。您将如何使用 JavaScript 进行操作?
    猜你喜欢
    • 2016-05-15
    • 1970-01-01
    • 2021-01-30
    • 1970-01-01
    • 2023-01-13
    • 1970-01-01
    • 2021-08-15
    • 2012-06-16
    • 2014-05-03
    相关资源
    最近更新 更多