CSS之可折叠导航

简述

下面我们来讲述如何仅仅用CSS来实现一个可折叠的导航。

  • 简述
  • nav标签
  • summary标签
  • 效果
  • 源码
    • 解释
    • 为小三角添加CSS样式

<nav>标签

定义和用法

<nav>标签定义导航链接的部分。

HTML4.01与HTML5之间的差异

<nav>标签是HTML5中的新标签。

<summary>标签

定义和用法

<summary>标签包含details元素的标题,”details”元素用于描述有关文档或文档片段的详细信息。

HTML4.01与HTML5之间的差异

<summary>是HTML5中的新标签。

提示和注释

提示:请与<details>标签一起使用。标题是可见的,当用户点击标题时会显示出详细信息。
注释:”summary”元素应该是”details”元素的第一个子元素。

效果

源码

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>可折叠导航</title>
<style type='text/css'>
nav a {
  display: block;
}

summary {
  cursor: pointer;
}

summary::-webkit-details-marker {
  display: none;
}
</style>
</head>
<body>
  <details>
    <summary>Heading 这是一个可折叠的导航</summary>
    <nav>
      <a href="http://www.googto.com/">Googto</a>
      <a href="https://www.hao123.com/">hao123</a>
      <a href="http://blog.csdn.net/liang19890820">一去丶二三里</a>
    </nav>
  </details>
</body>
</html>

解释

display: block

可以将导航中的链接设置为块级元素,元素前后会带有换行符。

cursor: pointer

则可以将光标呈现为指示链接的指针(一只手)。

为小三角添加CSS样式

原本在标题前面会显示一个可折叠的三角,这里我们没有显示,这个小三角符号可以添加样式吗?Webkit内核的浏览器使用伪元素来解决这个问题:::-webkit-details-marker。

通过这个伪元素,我们可以定制小三角的前景色,背景色和尺寸大小:

summary::-webkit-details-marker {
    color: #fff;
    background-color: #000;
} 

但是,直接通过::-webkit-details-marker伪元素来修改小三角的样式是行不通的。目前,我们只能通过::before和::after伪元素来替换它们。

summary:before {
    content: "\2605"; /* 新图标 */
    color: #696f7c;
    margin-right: 5px;
}

其中2605属于常用的HTML特殊字符大全(css3 content)。

时间: 2024-12-15 06:19:36

CSS之可折叠导航的相关文章

div+css制作水平导航条

css|导航条 创建CSS样式文本导航条的最简单解决方法也许就是把所有的链接都放在一行文本里,就像例A里的一样. 这种方法看起来很合理也很直观.但问题是,把所有的链接都放在一行文本里就很难控制链接之间以及前后的空白.所以,为了避免所有的链接都挤在一起,你最 后通常都不得不插入管道(垂直条)和非换行的空白字符作为分隔符. 就如下面的代码所示,结果很难是我们所要的清晰.结构化的标示. 以下为引用的内容:<div id="navbar1">  <a href="l

DIV CSS列形导航一例,超酷解析!

核心提示:DIV CSS列形导航一例,超酷解析! 如图效果: 先看看XHTML代码: Item one Subitem one Subitem two Subitem three Subitem four Item two Item three Item four 看看CSS是如何定久相关元素的: #navcontainer { margin-left: 30px; } #navcontainer ul { margin: 0; padding: 0; list-style-type: none

CSS实现横向导航菜单

CSS实现横向导航菜单教程,一步一步教你制作.   主题代码部分: <ul id="nav">      <li><a href="http://www.alixixi.com/">CSS趋势</a></li>      <li><a href="http://www.alixixi.com/">CSS教程</a></li>      &l

Javascript +CSS横向三级导航菜单

css|javascript|菜单|导航 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-eq

创建一个纯CSS的水平导航条

css|创建 按照传统的方法,导航条由放在一行表格单元里的图形图像构成.由于人们不再推荐用表格来定位任何非表格的页面内容,所以很多制作Web的人正在寻找(新的)方法,用结构化的XHTML标记和CSS格式来创建导航条. 一个简单的CSS导航条 创建CSS样式文本导航条的最简单解决方法也许就是把所有的链接都放在一行文本里,就像例A里的一样. 这种方法看起来很合理也很直观.但问题是,把所有的链接都放在一行文本里就很难控制链接之间以及前后的空白.所以,为了避免所有的链接都挤在一起,你最后通常都不得不插入

html5-如何用HTML和CSS编写一个导航下拉菜单,要鼠标经过显示

问题描述 如何用HTML和CSS编写一个导航下拉菜单,要鼠标经过显示 如题如何用HTML和CSS编写一个导航下拉菜单,要鼠标经过显示,只要一个就行 解决方案 hover就好了,ie6-不支持,不过也不需要考虑ie6了.. <!doctype html> <style> ul.menu, ul.menu li{margin:0px;padding:0px;list-style:none;position:relative;} ul.menu li{line-height:25px}

纯CSS制作二级导航

原文:纯CSS制作二级导航 一.问题描述 做一个类似校园网首页,主要是导航栏的设置,ul默认纵向排列,如何横向排列,同时去掉圆点. 二.问题解决 2.1 先写导航条 用两个ul嵌套,一个ul是横向导航条,另一个是每个小项目下连一个竖向的ul. 1 <ul id="nav_ul"> 2 <li> 3 <a href="#">首页</a> 4 <ul class="nav_ul_ul"> 5

纯CSS横向二级导航菜单代码

提示:您可以先修改部分代码再运行 纯CSS横向二级导航菜单代码 Home Single Level Dropdown Dropline Flyout Support Contact 提示:您可以先修改部分代码再运行

纯css+div经典导航菜单代码

提示:您可以先修改部分代码再运行 纯css+div经典导航菜单代码 Home Single Level Dropdown Dropline Flyout Support Contact 提示:您可以先修改部分代码再运行