在 HTML 中分两列显示 Feed
Show Feed in two columns in HTML
所以我有一个博客 post 供稿。我希望提要显示在我的主页上,分为两列。
-----------------------
Recent | 4th Recent
2nd Recent | 5th Recent
3rd Recent | 6th Recent
-----------------------
我正在使用来自 http://materializecss.com 的 Material 设计,并成功获得了提要。
问题只是将它对齐成两列。
这里是 HTML 代码,它允许我在单个列中显示项目。
<table id="blogPostTable"><tbody id="blogPostBody"></tbody></table>
这里是 JavaScript:
<script>
$(document).ready(function() {
$.ajax({
type: "GET",
url: "http://www.foxinflame.tk/blog/feed/",
dataType: "xml",
success: function (xml) {
$(xml).find("item").each(function () {
var title = $(this).find("title").text();
var description = $(this).find("description").text();
var comments = +($(this).find("slash:comments").text());
var pubDate = $(this).find("pubDate").text();
$("#blogPostTable").append("<tr class=\"blogpostTR\"><td class=\"z-depth-1 blogpost\"><h5>"+title+"</h5><p>"+description+"<br><i>"+comments+" Comments. Published "+pubDate+"</i></p></td></tr>");
});
}
});
})
</script>
这里是 CSS
#blogPostTable {
border-collapse: separate;
border-spacing: 20px;
}
.blogpost {
color: black;
background-color: #dedede;
}
.blogpostTR:nth-child(n+4){
display:none;
}
CSS 允许我最多只显示 3 个,因为太多只会造成混乱。
因此,对于我当前的 JavaScript,它会为每个博客在其中生成一个 TR 和一个 TDpost。如果我在其中添加另一个 TD 元素,网格的顺序将不同。
现在,如何按照指定的顺序将其分成 2 列?我想我应该从 CSS 开始,将 nth-child 改为 7...?
如果你可以使用CSS3,那么就有一个按你需要的方式拆分段落的功能。
最好和最干净的方法是像这样构造:
<div id="collection">
<div>title,description,comments</div>
....
</div>
并根据 w3schools 的示例将该规则应用于 ID 集合。表格不起作用。
一种方法是像这样制作一行:
<div class="row">
<div class="col s6"></div>
<div class="col s6"></div>
</div>
然后用帖子填充列。继续向第一列添加帖子,当它已满时开始填充第二列。如果您有 10 个帖子并且想在第一个中放置 5 个,一个简单的方法是在成功函数中添加一个计数器,如果 < 5 则附加到第 1 列,否则附加到第 2 列。
(没有使用过实体化,所以不确定 s6 是否正确 class 或者您是否需要其他东西,但想法是分成 2 列,每列 6 个网格列宽。)
那么您也可以去掉 table,但是如果您还需要帖子垂直对齐,这将不起作用。
所以我有一个博客 post 供稿。我希望提要显示在我的主页上,分为两列。
-----------------------
Recent | 4th Recent
2nd Recent | 5th Recent
3rd Recent | 6th Recent
-----------------------
我正在使用来自 http://materializecss.com 的 Material 设计,并成功获得了提要。 问题只是将它对齐成两列。
这里是 HTML 代码,它允许我在单个列中显示项目。
<table id="blogPostTable"><tbody id="blogPostBody"></tbody></table>
这里是 JavaScript:
<script>
$(document).ready(function() {
$.ajax({
type: "GET",
url: "http://www.foxinflame.tk/blog/feed/",
dataType: "xml",
success: function (xml) {
$(xml).find("item").each(function () {
var title = $(this).find("title").text();
var description = $(this).find("description").text();
var comments = +($(this).find("slash:comments").text());
var pubDate = $(this).find("pubDate").text();
$("#blogPostTable").append("<tr class=\"blogpostTR\"><td class=\"z-depth-1 blogpost\"><h5>"+title+"</h5><p>"+description+"<br><i>"+comments+" Comments. Published "+pubDate+"</i></p></td></tr>");
});
}
});
})
</script>
这里是 CSS
#blogPostTable {
border-collapse: separate;
border-spacing: 20px;
}
.blogpost {
color: black;
background-color: #dedede;
}
.blogpostTR:nth-child(n+4){
display:none;
}
CSS 允许我最多只显示 3 个,因为太多只会造成混乱。
因此,对于我当前的 JavaScript,它会为每个博客在其中生成一个 TR 和一个 TDpost。如果我在其中添加另一个 TD 元素,网格的顺序将不同。
现在,如何按照指定的顺序将其分成 2 列?我想我应该从 CSS 开始,将 nth-child 改为 7...?
如果你可以使用CSS3,那么就有一个按你需要的方式拆分段落的功能。
最好和最干净的方法是像这样构造:
<div id="collection">
<div>title,description,comments</div>
....
</div>
并根据 w3schools 的示例将该规则应用于 ID 集合。表格不起作用。
一种方法是像这样制作一行:
<div class="row">
<div class="col s6"></div>
<div class="col s6"></div>
</div>
然后用帖子填充列。继续向第一列添加帖子,当它已满时开始填充第二列。如果您有 10 个帖子并且想在第一个中放置 5 个,一个简单的方法是在成功函数中添加一个计数器,如果 < 5 则附加到第 1 列,否则附加到第 2 列。
(没有使用过实体化,所以不确定 s6 是否正确 class 或者您是否需要其他东西,但想法是分成 2 列,每列 6 个网格列宽。)
那么您也可以去掉 table,但是如果您还需要帖子垂直对齐,这将不起作用。