【发布时间】: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 标签属性上“播放”,而不是“直接”在“后面”/“生成”该输出的代码上。我该怎么做?
注意 I:jsfiddle.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