GVKun编程网logo

PHP – 简单嵌套无序列表(UL)数组(html有序列表中嵌套无序列表)

9

如果您对PHP–简单嵌套无序列表(UL)数组感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于PHP–简单嵌套无序列表(UL)数组的详细内容,我们还将为您解答html有序列表中

如果您对PHP – 简单嵌套无序列表(UL)数组感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于PHP – 简单嵌套无序列表(UL)数组的详细内容,我们还将为您解答html有序列表中嵌套无序列表的相关问题,并且为您提供关于AngularJS之无序列表、css – 如何垂直对齐锚点元素内的文本,该元素嵌套在无序列表中、HTML5(六)有序列表、无序列表、定义列表、html中的有序列表和无序列表的有价值信息。

本文目录一览:

PHP – 简单嵌套无序列表(UL)数组(html有序列表中嵌套无序列表)

PHP – 简单嵌套无序列表(UL)数组(html有序列表中嵌套无序列表)

我在stackoverflow上看到了这个嵌套的UL数组问题的一些变体,但我认为我的比其他更简单.我正在寻找一个简单的数组循环,允许无限量的主题(父母)与无限量的项目(儿童),如:

<ul>
    <li>Topic</li>
        <ul>
            <li>Item</li>
            <li>Item</li>
            <li>Item</li>
            <li>Item</li>
        </ul>
</ul>

我用以下代码尝试了这个:

<?PHP
$result = MysqL_query("SELECT * FROM News");

$topicname = false;

while($row = MysqL_fetch_array($result)) {
    if (!$row['TopicID']) {
            $row['TopicName'] = 'Sort Me';
    }
    if ($topicname != $row['TopicName']) {
        echo '<ul><li>' . $row['TopicName'] . '</li><ul>';
        $topicname = $row['TopicName'];
    }
    echo '';
    echo '<li>' . $row['NewsID'] . '"</li>';
    echo '';
}
if ($topicname != $row['TopicName']) {
    echo '</ul>';
    $topicname = $row['TopicName'];
}   
?>

上面的代码呈现如下:

* Topic A
      o News 1
      o News ...
      o News 51000
            + Topic B
                  # News 1
                  # News ...
                  # News 51000
                        * Topic C
                              o News 1
                              o News ...
                              o News 51000
                                    + Topic D
                                          # News 1
                                          # News ...
                                          # News 51000

希望代码呈现以下内容:

* Topic A
      o News 1
      o News ...
      o News 51000
* Topic B
      o News 1
      o News ...
      o News 51000
* Topic C
      o News 1
      o News ...
      o News 51000
* Topic D
      o News 1
      o News ...
      o News 51000

任何想法将不胜感激!

马克解决的问题;有可能解决这个相关的问题吗?

嗨Mark:是的,这就行了!非常有帮助,谢谢.我想知道你是否能够帮助我把它带到另一个复杂程度.如果你认为在这个问题中提出问题是不合适的,请告诉我,我会另外提出,但你的代码是可靠的,所以我想我会跟进它.

使用上面相同的代码,我希望通过选择1列,2列,3列,4列,5列等(最多10个)为用户提供查看数据的选项.数据行将被分成单独的DIV标记,行计数将包括主题和新闻项.我将使用我的CSS控制DIV标签,但我想将行计数均匀地分组到指定数量的列的DIV标签中.我希望儿童新闻项目不要与其父母和群体分开,以尽可能地分开.如果有一个断点,其中1列可以比另一列长,并且它是偶数/任意的,优先级将转到最左边的列,如:这个迷你插图:

XXX
XX
X

我不知道这有多清楚,所以这里有一个例子.如果用户选择1列,他们将看到以下30行“数据”:

<div id="Columns1Group1of1">
* Topic A
      o News 1
      o News 2
      o News 3
* Topic B
      o News 1
      o News 2
      o News 3
      o News 4
* Topic C
      o News 1
      o News 2
      o News 3
      o News 4
      o News 5
* Topic D
      o News 1
      o News 2
      o News 3
* Topic E
      o News 1
      o News 2
      o News 3
      o News 4
* Topic F
      o News 1
      o News 2
      o News 3
      o News 4
      o News 5
</div>

如果用户选择2列,他们会看到以下30行“数据”分为2组,每组包含DIV标签.巧合的是,这种情况很好地解决了:

<div id="Columns2Group1of2">        <div id="Columns2Group2of2">
* Topic A                           * Topic D
      o News 1                          o News 1
      o News 2                          o News 2
      o News 3                          o News 3
* Topic B                           * Topic E
      o News 1                          o News 1
      o News 2                          o News 2
      o News 3                          o News 3
      o News 4                          o News 4
* Topic C                           * Topic F
      o News 1                          o News 1
      o News 2                          o News 2
      o News 3                          o News 3
      o News 4                          o News 4
      o News 5                          o News 5
</div>                              </div>

如果用户选择3列,他们会看到以下30行“数据”分为3组,每组包含DIV标签.间距开始变得棘手,我愿意接受建议.

<div id="Columns3Group1of3">        <div id="Columns3Group2of3">        <div id="Columns3Group3of3">
* Topic A                           * Topic C                           * Topic E
      o News 1                          o News 1                            o News 1
      o News 2                          o News 2                            o News 2
      o News 3                          o News 3                            o News 3
* Topic B                               o News 4                            o News 4
      o News 1                          o News 5                        * Topic F
      o News 2                      * Topic D                               o News 1
      o News 3                          o News 1                            o News 2
      o News 4                          o News 2                            o News 3
</div>                                  o News 3                            o News 4
                                    </div>                                  o News 5
                                                                        </div>

如果用户选择4列,他们会看到以下30行“数据”分为4组,每组包含DIV标签.同样,我甚至不知道如何为我的插图手动分配它,但是让孩子们留在父母身边很重要.

<div id="Columns4Group1of4">        <div id="Columns4Group2of4">        <div id="Columns4Group3of4">        <div id="Columns4Group4of4">
* Topic A                           * Topic C                           * Topic D                           * Topic F
      o News 1                        o News 1                            o News 1                            o News 1
      o News 2                        o News 2                            o News 2                            o News 2
      o News 3                        o News 3                            o News 3                            o News 3
* Topic B                             o News 4                          * Topic E                             o News 4
      o News 1                        o News 5                            o News 1                            o News 5
      o News 2                      </div>                                o News 2                          </div>
      o News 3                                                            o News 3
      o News 4                                                            o News 4
</div>                                                                  </div>

解决方法

这应该做的伎俩:

$result = MysqL_query("SELECT * FROM News");
$topicname = '';

// open list of topics
echo '<ul>';

// loop through topics
while($row = MysqL_fetch_array($result)) {
    if (!$row['TopicID']) {
        // fake topic name for unsorted stuff
        $row['TopicName'] = 'Sort Me';
    }
    if ($topicname != $row['TopicName']) {
        if($topicname != ''){
            // had a topic name,means we opened a list
            // that hasn't been closed,close it.
            echo '</ul>';
        }
        // print this topic and open the list of articles
        echo '<li>' . $row['TopicName'] . '</li><ul>';
        // update the current topic to be this TopicName
        $topicname = $row['TopicName']; 
    }
    // the news item
    echo '<li>' . $row['NewsID'] . '"</li>';
}
if($topicname != ''){
    // we saw at least one TopicName,we need to close
    // the last open list.
    echo '</ul>';
}
// end topic list
echo '</ul>';

我认为你真正的问题是你每次打开两个列表,但只关闭一个(甚至移动列表中的最后一个块).

对于(新)问题的第二部分:

我要指出的是,对于较大的列表(比如超过300个项目),我在制作关于将列表存储在内存中并进行两次迭代而不仅仅是查询所需的计数时所做的权衡会转向另一种方式.也就是说,下面的解决方案将所有内容放入内存中,然后再次迭代以将其打印出来;另一种方法是运行两个查询,一个查找唯一的TopicNames,另一个查找列表中的项目总数.

另外,对于显示,你真的想要解决布局的一些优化,我会天真地做这个,并且每列只做一个(大致)相同数量的主题,当除法不成功时,这将向左重.你会看到你可以在哪里调整或替换一些代码来获得不同的(并且更好的?)结果.

$columns = // user specified;

$result = MysqL_query("SELECT * FROM News");
$num_articles = 0;

// $dataset will contain array( 'Topic1' => array('News 1','News2'),... )
$dataset = array();
while($row = MysqL_fetch_array($result)) {
    if (!$row['TopicID']) {
        $row['TopicName'] = 'Sort Me';
    }
    $dataset[$row['TopicName']][] = $row['NewsID'];
    $num_articles++;
}

$num_topics = count($dataset);

// naive topics to column allocation
$topics_per_column = ceil($num_topics / $columns);

$i = 0; // keeps track of number of topics printed
$c = 1; // keeps track of columns printed
foreach($dataset as $topic => $items){
    if($i % $topics_per_columnn == 0){
        if($i > 0){
            echo '</ul></div>';
        }
        echo '<div><ul>';
        $c++;
    }
    echo '<li>' . $topic . '</li>';
    // this lists the articles under this topic
    echo '<ul>';
    foreach($items as $article){
        echo '<li>' . $article . '</li>';
    }
    echo '</ul>';
    $i++;
}
if($i > 0){
    // saw at least one topic,need to close the list.
    echo '</ul></div>';
}

AngularJS之无序列表

AngularJS之无序列表

1、问题背景

AngularJS利用自带的指令,设计出无序列表


2、实现源码

<!DOCTYPE html>
<html>
	<head>
		<Meta charset="UTF-8">
		<title>AngularJS之无序列表</title>
		<script type="text/javascript" src="../js/angular.min.js" ></script>
		<script>
			var app = angular.module("ulApp",[]);
			app.controller("ulCon",function($scope){
				$scope.season = [
					{times:"春季"},{times:"夏季"},{times:"秋季"},{times:"冬季"}
				];
			});
		</script>
	</head>
	<body>
		<div ng-app="ulApp" ng-controller="ulCon">
			<ul>
				<li ng-repeat="s in season">
					{{s.times}}
				</li>
			</ul>
		</div>
	</body>
</html>

3、问题说明

ul是无序列表

css – 如何垂直对齐锚点元素内的文本,该元素嵌套在无序列表中

css – 如何垂直对齐锚点元素内的文本,该元素嵌套在无序列表中

我已经广泛搜索并看到了许多关于如何使用vertical-align属性和line-height属性垂直对齐文本的示例.然而,我所有的努力似乎都没有结果,因为我无法让我的文本垂直对齐.如何将文本垂直对齐以居中?高度属性不固定,所以我不能使用行高.

HTML

<nav>
    <ul>
        <li><a href="html/login.html">Login</a></li>
        <li><a href="html/user_registration.html">Register</a></li>
        <li><a href="#">Programmes Offered</a></li>
    </ul>
</nav>

CSS

nav
{
    height: 30%;
    width: 100%;
}

nav ul
{
    height: 100%;
    margin: 0px;
}

nav ul li
{
    height: 33%;
    width: 100%;
    vertical-align: middle;
}

解决方法

您可以使用显示为内联框的伪元素,使用li的全高和垂直对齐midlle. DEMO
body,html {
    height:100%; /* needed for demo */
}
nav {
    height: 50%; /* increased for demo */
    width: 100%;
}
nav ul {
    height: 100%;
    margin: 0px;
}
nav ul li {
    height: 33%;
    Box-shadow:inset 0 0 0 1px; /* show me li,for demo */
}
nav ul li:before {
    content:'';
    height:100%;
    display:inline-block;
    vertical-align: middle;
}

编辑

如果您还重置了< a>上的显示和垂直对齐,则可以在几行上展开链接(下面的演示):

body,html {
  height: 100%;
}

nav {
  height: 70%; /* height set for snippet demo purpose,Could be really too much  */
  width: 100%;
}

nav ul {
  height: 100%; /* will follow height,inherit height value,set in nav if any avalaible  */
  margin: 0px;
}

nav ul li {
  height: 33%;
  /* see me and my center*/
  Box-shadow: inset 0 0 0 1px;
  background:linear-gradient(to top,rgba(0,0.1) 50%,0.2) 50%);
}

nav ul li:before {
  content: '';
  height: 100%;
  display: inline-block;
  vertical-align: middle;
}

a {
  display: inline-block;
  vertical-align: middle;
}
<nav>
  <ul>
    <li><a href="html/login.html">Login</a>
    </li>
    <li><a href="html/user_registration.html">Register</a>
    </li>
    <li><a href="#">Programmes<br/> Offered</a>
    </li>
  </ul>
</nav>

HTML5(六)有序列表、无序列表、定义列表

HTML5(六)有序列表、无序列表、定义列表

有序列表通常用来表示内容之间的顺序或者是重要性关系,每一个列表都分为多个子项,每一个子项都有相应的编号。

无序列表仅仅用于表示内容之间存在有并列关系,也是分为多个子项,但是子项之前没有相应的编号,只有一个原点用于标识。

定义列表通常用于表示名词或者是概念的定义,每一个子项有两个部分组成,第一部分是名词或者是概念,第二部分是相应的解释和描述。

<!DOCTYPE html>
<html>
<head>
    <Meta charset="UTF-8">
    <title></title>
</head>
<body>
<!-- ol:order list-->
<!-- type 列表排序的类型共五种:默认阿拉伯数字,“a”小写字母,"A"大写字母,"I"大写罗马数字排序,"i"小写罗马数字排序-->
<!-- start 排序的其实位置如果type="a" start="5" 那么从字母e开始-->
<!-- reversed="true" 倒序排列-->
<ol type="I" start="5" reversed="true">
    <li>第一步:清洗面部</li>
    <li>第二部:涂爽肤水</li>
    <li>第三部:涂乳液</li>
    <li>第四部:涂防晒</li>
        <ol >
            <li>先涂粉底再涂防晒</li>
            <li>先涂防晒再涂粉底</li>
        </ol>
</ol>
<!-- 无序列表 unorder list 默认列表项前是小圆点-->
    <li>cpb粉底</li>
    <li>雪花秀气垫BB</li>
    <li>iope气垫BB</li>
<!-- 定义列表:表达对名词或概念的解释或者描述-->
<dl>
    <dt>cpb</dt>
    <dd>日本高端护肤品品牌</dd>
    <dt>雪花秀</dt>
    <dd>韩国中高端护肤品品牌</dd>
</dl>
</body>
</html>

效果图:

这里写图片描述

html中的有序列表和无序列表

html中的有序列表和无序列表

本篇文章主要介绍html中的有序与无序列表示如何编写的,对于刚开始学习的小伙伴还是非常有帮助的,感兴趣的朋友参考下。

有序列表代码如下:

<html>  
<h2>数字显示</h2>  
<ol>  
<li>第一天</li>  
<li>第二天</li>  
<li>第三天</li>  
<li>第四天</li>  
</ol>  
  
<h2>字母显示</h2>  
<ol type="a">  
<li>第一天</li>  
<li>第二天</li>  
<li>第三天</li>  
<li>第四天</li>  
</ol>  
  
<h2>小写罗马数字显示</h2>  
<ol type="i">  
<li>第一天</li>  
<li>第二天</li>  
<li>第三天</li>  
<li>第四天</li>  
</ol>  
  
<h2>大写罗马数字显示</h2>  
<ol type="I">  
<li>第一天</li>  
<li>第二天</li>  
<li>第三天</li>  
<li>第四天</li>  
</ol>  
  
<h2>数字显示,自己确定开始数字</h2>  
<ol start="5">  
<li>第一天</li>  
<li>第二天</li>  
<li>第三天</li>  
<li>第四天</li>  
</ol>  
<html>
登录后复制

效果如下:

55.png

无序列表代码如下:

立即学习“前端免费学习笔记(深入)”;

<html>  
********默认为实心圆*********  
<ul>  
<li>第一天</li>  
<li>第二天</li>  
<li>第三天</li>  
<li>第四天</li>  
</ul>  
  
********空心圆显示*********  
<ul type="circle">  
<li>第一天</li>  
<li>第二天</li>  
<li>第三天</li>  
<li>第四天</li>  
</ul>  
  
********实心矩形显示*********  
<ul type="square">  
<li>第一天</li>  
<li>第二天</li>  
<li>第三天</li>  
<li>第四天</li>  
</ul>  
</html>
登录后复制

效果如下:

56.png

相关推荐:

什么是无序列表、有序列表 、定义列表?html列表标签学习笔记

关于HTML列表的详细介绍

HTML列表标签dl、ul、ol 的使用

以上就是html中的有序列表和无序列表的详细内容,更多请关注php中文网其它相关文章!

今天关于PHP – 简单嵌套无序列表(UL)数组html有序列表中嵌套无序列表的讲解已经结束,谢谢您的阅读,如果想了解更多关于AngularJS之无序列表、css – 如何垂直对齐锚点元素内的文本,该元素嵌套在无序列表中、HTML5(六)有序列表、无序列表、定义列表、html中的有序列表和无序列表的相关知识,请在本站搜索。

本文标签: