如何将父项li移到子项ul的末尾

时间:2013-02-04 作者:Dustin Armstrong

我正在把一个网站从HTML/CSS翻译成Wordpress,我遇到了一个问题。本着从仪表板上完全定制网站的精神,我一直在使用Wordpress的默认菜单系统来创建导航,但我无法让它像硬编码HTML那样。我需要将父列表项(父的a元素)移动到其子ul下面,如下所示:

<li id="generalinfo">
    <ul>
        <li><a href="#">About the Festival</a></li>
        <li><a href="#">History</a></li>
        <li><a href="#">Sponsors</a></li>
        <li><a href="#">Contact Us</a></li>
    </ul>
    <a class="cat" href="#">General Info</a>
</li>
但默认情况下,Wordpress会强制它这样做:

<li id="generalinfo">
    <a class="cat" href="#">General Info</a>
    <ul>
        <li><a href="#">About the Festival</a></li>
        <li><a href="#">History</a></li>
        <li><a href="#">Sponsors</a></li>
        <li><a href="#">Contact Us</a></li>
    </ul>
</li>
对于设计而言,链接位于无序列表之后是至关重要的,因为它将是一个向下的横幅,如下所示:

http://i.imgur.com/oFRJdl7.png

图形元素是具有悬停状态的背景元素。这是他们看起来像是下拉的,左边的主页按钮就是横幅完全升起的一个例子。这就是为什么在末尾显示父链接元素很重要的原因。

想法?

2 个回复
最合适的回答,由SO网友:Nasif 整理而成

由于这是一种风格上的改变,并且由于语义上的原因不想对DOM进行重新排序,所以我认为js解决方案不是最好的方法。最好将其保存在CSS中,保持标记完整。

有两种方法:

Flexbox:

#generalinfo{
  display: flex;
  flex-direction: column-reverse;
}

CSS Grid:

#generalinfo{
  display: grid;
}

.cat{
  grid-row: 2;
}

SO网友:Thought Space Designs

$(".cat").each(function(){
    $(this).appendTo($this.parent(".li"));
    $(this).remove();
}
);
应该做到这一点。就可访问性而言,大多数现代爬虫程序(阅读Googlebot)都会对其进行处理和爬网,因为它不涉及处理触发器(请参阅-http://www.thoughtspacedesigns.com/blog/search-engine-optimization/whats-this-googlebot-processes-javascript/). 更加流畅,以保持灵敏的设计。在大多数情况下,我避免像瘟疫一样进行绝对定位(除非包含在位置:相对容器中)。

结束

相关推荐

在插件中加入内联的css行吗?

通常在插件中,我会使用wp\\u enqueue\\u样式添加样式。然而,我目前正在创建一个只需要几行CSS的插件,我想知道是否最好是内联提供样式来保存请求。显然,使用wp\\u enqueue\\u样式有很多优点,但它们值得为这么一小段CSS额外请求吗?这方面是否有公认的“最佳实践”?