Files
ant-design/docs/pattern/navigation.html
T
2017-01-21 00:48:58 +08:00

84 lines
23 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="An enterprise-class UI design language and React-based implementation">
<meta name="description" content="A set of high-quality React components">
<meta name="description" content="One of best React UI library for enterprise background">
<title>Ant Design - A UI Design Language</title>
<link rel="icon" href="https://t.alipayobjects.com/images/T1QUBfXo4fXXXXXXXX.png" type="image/x-icon">
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.cnpmjs.org/css?family=Lato:400,700|Raleway"/>
<link rel="stylesheet" type="text/css" href="/index.css"/>
<style id="nprogress-style">
#nprogress { display: none }
</style>
<!--[if lte IE 10]>
<script
src="https://as.alipayobjects.com/g/component/??console-polyfill/0.2.2/index.js,media-match/2.0.2/media.match.min.js"></script>
<![endif]-->
<script>
if (!window.Intl) {
document.writeln('<script src="https://as.alipayobjects.com/g/component/intl/1.0.1/??Intl.js,locale-data/jsonp/en.js,locale-data/jsonp/zh.js">' + '<' + '/script>');
}
if (!window.Promise) {
document.writeln('<script src="https://as.alipayobjects.com/g/component/es6-promise/3.2.2/es6-promise.min.js"' + '>' + '<' + '/' + 'script>');
}
</script>
<script>
// Enable Google Analytics
if (!location.port) {
/* eslint-disable */
(function (i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r;
i[r] = i[r] || function () {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date();
a = s.createElement(o),
m = s.getElementsByTagName(o)[0];
a.async = 1;
a.src = g;
m.parentNode.insertBefore(a, m)
})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
ga('create', 'UA-72788897-1', 'auto');
ga('send', 'pageview');
/* eslint-enable */
}
</script>
</head>
<body>
<div id="react-content">
<div class="page-wrapper" data-reactroot="" data-reactid="1" data-react-checksum="1976090717"><header id="header" class="clearfix" data-reactid="2"><div class="ant-row" data-reactid="3"><div class="ant-col-xs-24 ant-col-sm-24 ant-col-md-6 ant-col-lg-4" data-reactid="4"><a id="logo" href="/" data-reactid="5"><img alt="logo" src="https://t.alipayobjects.com/images/rmsweb/T1B9hfXcdvXXXXXXXX.svg" data-reactid="6"/><span data-reactid="7">Ant Design</span></a></div><div class="ant-col-xs-0 ant-col-sm-0 ant-col-md-18 ant-col-lg-20" data-reactid="8"><div id="search-box" data-reactid="9"><div class="ant-select ant-select-combobox ant-select-enabled" data-reactid="10"><div class="ant-select-selection
ant-select-selection--single" role="combobox" aria-autocomplete="list" aria-haspopup="true" aria-expanded="false" data-reactid="11"><div class="ant-select-selection__rendered" data-reactid="12"><div style="display:block;user-select:none;-webkit-user-select:none;" unselectable="unselectable" class="ant-select-selection__placeholder" data-reactid="13">Search Components...</div><ul data-reactid="14"><li class="ant-select-search ant-select-search--inline" data-reactid="15"><div class="ant-select-search__field__wrap" data-reactid="16"><input value="" class="ant-select-search__field" data-reactid="17"/><span class="ant-select-search__field__mirror" data-reactid="18"></span></div></li></ul></div><span class="ant-select-arrow" style="user-select:none;-webkit-user-select:none;" unselectable="unselectable" data-reactid="19"><b data-reactid="20"></b></span></div></div></div><button type="button" class="ant-btn ant-btn-ghost ant-btn-sm lang" data-reactid="21"><span data-reactid="22">中文</span></button><ul class="ant-menu ant-menu-horizontal ant-menu-light ant-menu-root" role="menu" aria-activedescendant="" id="nav" tabindex="0" data-reactid="23"><li class="ant-menu-item" role="menuitem" aria-selected="false" data-reactid="24"><a href="/" data-reactid="25"><span data-reactid="26">Home</span></a></li><li class="ant-menu-item" role="menuitem" aria-selected="false" data-reactid="27"><a href="/docs/spec/introduce" data-reactid="28"><span data-reactid="29">Specification</span></a></li><li class="ant-menu-item" role="menuitem" aria-selected="false" data-reactid="30"><a href="/docs/react/introduce" data-reactid="31"><span data-reactid="32">Components</span></a></li><li class="ant-menu-item-selected ant-menu-item" role="menuitem" aria-selected="true" data-reactid="33"><a href="/docs/pattern/navigation" data-reactid="34"><span data-reactid="35">Pattern</span></a></li><li class="ant-menu-item" role="menuitem" aria-selected="false" data-reactid="36"><a href="/docs/practice/cases" data-reactid="37"><span data-reactid="38">Practice</span></a></li><li class="ant-menu-item" role="menuitem" aria-selected="false" data-reactid="39"><a href="/docs/resource/download" data-reactid="40"><span data-reactid="41">Resource</span></a></li></ul></div></div></header><div class="main-wrapper" data-reactid="42"><div class="ant-row" data-reactid="43"><div class="ant-col-xs-24 ant-col-sm-24 ant-col-md-6 ant-col-lg-4" data-reactid="44"><ul class="ant-menu ant-menu-inline aside-container ant-menu-light ant-menu-root" role="menu" aria-activedescendant="" tabindex="0" data-reactid="45"><li style="padding-left:24px;" class="ant-menu-item-disabled ant-menu-item" role="menuitem" aria-selected="false" aria-disabled="true" data-reactid="46"><a disabled="" href="/docs/pattern/classic" data-reactid="47">Classic</a></li><li style="padding-left:24px;" class="ant-menu-item-selected ant-menu-item" role="menuitem" aria-selected="true" data-reactid="48"><a href="/docs/pattern/navigation" data-reactid="49">Navigation</a></li><li style="padding-left:24px;" class="ant-menu-item" role="menuitem" aria-selected="false" data-reactid="50"><a href="/docs/pattern/form" data-reactid="51">Form</a></li><li style="padding-left:24px;" class="ant-menu-item" role="menuitem" aria-selected="false" data-reactid="52"><a href="/docs/pattern/list" data-reactid="53">List</a></li><li style="padding-left:24px;" class="ant-menu-item" role="menuitem" aria-selected="false" data-reactid="54"><a href="/docs/pattern/table" data-reactid="55">Table</a></li><li style="padding-left:24px;" class="ant-menu-item" role="menuitem" aria-selected="false" data-reactid="56"><a href="/docs/pattern/complex-table" data-reactid="57">Complex Table</a></li><li style="padding-left:24px;" class="ant-menu-item" role="menuitem" aria-selected="false" data-reactid="58"><a href="/docs/pattern/advanced-search" data-reactid="59">Advanced Search</a></li></ul></div><div class="main-container ant-col-xs-24 ant-col-sm-24 ant-col-md-18 ant-col-lg-20" data-reactid="60"><article class="markdown" data-reactid="61"><h1 data-reactid="62"><!-- react-text: 63 -->Navigation<!-- /react-text --><a class="edit-button" href="https://github.com/ant-design/ant-design/blob/master/docs/pattern/navigation.md" data-reactid="64"><i class="anticon anticon-edit" data-reactid="65"></i></a></h1><section class="markdown" data-reactid="66"><p data-reactid="67"><!-- react-text: 68 -->在广义上,任何告知用户他在哪里,他能去什么地方以及如何到达那里的方式,都可以称之为导航。而我们将中后台常见的导航方式进行提炼和封装,帮助设计者快速构建清晰和流畅的系统。当设计者使用导航或者自定义一些导航结构时,请注意:<!-- /react-text --></p><ol data-reactid="69"><li data-reactid="70"><p data-reactid="71"><!-- react-text: 72 -->尽可能提供标示、上下文线索以及网站地图,避免用户迷路;<!-- /react-text --></p></li><li data-reactid="73"><p data-reactid="74"><!-- react-text: 75 -->保持导航样式和行为一致或者减少导航数量,降低用户学习成本;<!-- /react-text --></p></li><li data-reactid="76"><p data-reactid="77"><!-- react-text: 78 -->尽可能减少页面间的跳转(eg:一个常见任务需要多个页面跳转时,请减少至一至两次),让用户移动距离保持简短。<!-- /react-text --></p></li></ol></section><section class="toc" data-reactid="79"><ul data-reactid="80"><li data-reactid="81"><a class="bisheng-toc-h2" href="#常见导航" data-reactid="82"><!-- react-text: 83 -->常见导航<!-- /react-text --></a></li><li data-reactid="84"><a class="bisheng-toc-h2" href="#侧栏导航" data-reactid="85"><!-- react-text: 86 -->侧栏导航<!-- /react-text --></a></li><li data-reactid="87"><a class="bisheng-toc-h2" href="#顶部导航" data-reactid="88"><!-- react-text: 89 -->顶部导航<!-- /react-text --></a></li></ul></section><section class="markdown" data-reactid="90"><h2 id="常见导航" data-reactid="91"><span data-reactid="92"><!-- react-text: 93 -->常见导航<!-- /react-text --></span><a href="#常见导航" class="anchor" data-reactid="94">#</a></h2><table style="font-size:12px;float:right;width:600px;margin-left:60px;margin-bottom:100px;" data-reactid="95"><tbody data-reactid="96"><tr data-reactid="97"><th data-reactid="98"></th><th data-reactid="99"><!-- react-text: 100 -->侧栏导航<!-- /react-text --></th><th data-reactid="101"><!-- react-text: 102 -->顶部导航<!-- /react-text --></th></tr><tr data-reactid="103"><th data-reactid="104"><!-- react-text: 105 -->优点<!-- /react-text --></th><td data-reactid="106"><!-- react-text: 107 -->导航的层级扩展性强;水平空间利用率高,可展示更多内容;导航可以固定,使得用户在操作和浏览时可以快速定位和切换当前位置,非常高效。<!-- /react-text --></td><td data-reactid="108"><!-- react-text: 109 -->人的浏览习惯是自上而下的,便于浏览和点击;通常将内容放在固定尺寸(例如:1208px)内,整个页面排版稳定,不受用户终端显示器影响。<!-- /react-text --></td></tr><tr data-reactid="110"><th data-reactid="111"><!-- react-text: 112 -->缺点<!-- /react-text --></th><td data-reactid="113"><!-- react-text: 114 -->内容区域一般放置在栅格上,所以排版受用户终端显示器影响大。<!-- /react-text --></td><td data-reactid="115"><!-- react-text: 116 -->目前显示器多为宽屏,顶部导航对垂直空间占用率大,而对水平空间利用率低;由于中英文都是横向书写,顶部导航会限制导航类目的数量和长度。<!-- /react-text --></td></tr><tr data-reactid="117"><th data-reactid="118"><!-- react-text: 119 -->总结<!-- /react-text --></th><td data-reactid="120"><!-- react-text: 121 -->适用在操作性强、中后台管理性质的应用。<!-- /react-text --></td><td data-reactid="122"><!-- react-text: 123 -->一般适用在浏览性强、门户性质的网站,以及一些比较前台化的应用。<!-- /react-text --></td></tr></tbody></table><p data-reactid="124"><!-- react-text: 125 -->我们将常见的导航模式分为:侧栏导航和顶部导航,两者各有优缺点,设计者可以根据各自的业务需求进行选择。<!-- /react-text --></p><p data-reactid="126"><!-- react-text: 127 -->前端实现代码可以参考 <!-- /react-text --><a href="/docs/spec/layout#docs-spec-layout-demo-top" data-reactid="128">常用布局</a><!-- react-text: 129 --><!-- /react-text --></p><h2 id="侧栏导航" data-reactid="130"><span data-reactid="131"><!-- react-text: 132 -->侧栏导航<!-- /react-text --></span><a href="#侧栏导航" class="anchor" data-reactid="133">#</a></h2><hr data-reactid="134"/><div class="preview-image-boxes clearfix" data-reactid="135"><div class="preview-image-box" data-reactid="136"><div class="preview-image-wrapper false false" data-reactid="137"><img class="preview-img no-padding" src="https://os.alipayobjects.com/rmsportal/hutiGZWQYmIspjw.png" alt="结构示例" data-reactid="138"/></div><div class="preview-image-title" data-reactid="139">结构示例</div><div class="preview-image-description" data-reactid="140"></div><!-- react-empty: 141 --></div></div><p data-reactid="142"><!-- react-text: 143 -->导航的结构由以下几部分组成。<!-- /react-text --></p><ol data-reactid="144"><li data-reactid="145"><p data-reactid="146"><!-- react-text: 147 -->产品 Logo 和名称<!-- /react-text --></p></li><li data-reactid="148"><p data-reactid="149"><!-- react-text: 150 -->业务类目<!-- /react-text --></p></li><li data-reactid="151"><p data-reactid="152"><!-- react-text: 153 -->登陆工具<!-- /react-text --></p></li><li data-reactid="154"><p data-reactid="155"><!-- react-text: 156 -->面包屑(可选)<!-- /react-text --></p></li></ol><h4 id="关于面包屑" data-reactid="157"><span data-reactid="158"><!-- react-text: 159 -->关于面包屑<!-- /react-text --></span><a href="#关于面包屑" class="anchor" data-reactid="160">#</a></h4><blockquote data-reactid="161"><ol data-reactid="162"><li data-reactid="163"><p data-reactid="164"><!-- react-text: 165 -->尽可能不使用面包屑,尤其是当前页面的导航能清晰的告诉用户他在哪里时。<!-- /react-text --></p></li><li data-reactid="166"><p data-reactid="167"><!-- react-text: 168 -->面包屑可以分为这几类:<!-- /react-text --></p><ul data-reactid="169"><li data-reactid="170"><p data-reactid="171"><!-- react-text: 172 -->路径型:是一个动态显示用户到达页面经过的途径。<!-- /react-text --></p></li><li data-reactid="173"><p data-reactid="174"><!-- react-text: 175 -->位置型:位置型是固定的,显示了页面在网站结构中的位置。<!-- /react-text --></p></li><li data-reactid="176"><p data-reactid="177"><!-- react-text: 178 -->属性型:属性型给出当前页面的分类信息。<!-- /react-text --></p></li></ul></li></ol></blockquote><p data-reactid="179"><br data-reactid="180"/></p><div class="preview-image-boxes clearfix" data-reactid="181"><div class="preview-image-box" data-reactid="182"><div class="preview-image-wrapper false false" data-reactid="183"><img class="preview-img no-padding" src="https://os.alipayobjects.com/rmsportal/IeuIHdFfKCIABHV.png" alt="一级类目" data-reactid="184"/></div><div class="preview-image-title" data-reactid="185">一级类目</div><div class="preview-image-description" data-reactid="186"></div><!-- react-empty: 187 --></div></div><div class="preview-image-boxes clearfix" data-reactid="188"><div class="preview-image-box" data-reactid="189"><div class="preview-image-wrapper false false" data-reactid="190"><img class="preview-img no-padding" src="https://os.alipayobjects.com/rmsportal/kAbbeJekohMtubV.png" alt="二级类目" data-reactid="191"/></div><div class="preview-image-title" data-reactid="192">二级类目</div><div class="preview-image-description" data-reactid="193"></div><!-- react-empty: 194 --></div></div><div class="preview-image-boxes clearfix" data-reactid="195"><div class="preview-image-box" data-reactid="196"><div class="preview-image-wrapper false false" data-reactid="197"><img class="preview-img no-padding" src="https://os.alipayobjects.com/rmsportal/qaOifucSTWooBTL.png" alt="三级类目及以上" data-reactid="198"/></div><div class="preview-image-title" data-reactid="199">三级类目及以上</div><div class="preview-image-description" data-reactid="200"></div><!-- react-empty: 201 --></div></div><p data-reactid="202"><!-- react-text: 203 -->我们定义了不同类目层级所对应的导航样式。<!-- /react-text --></p><h2 id="顶部导航" data-reactid="204"><span data-reactid="205"><!-- react-text: 206 -->顶部导航<!-- /react-text --></span><a href="#顶部导航" class="anchor" data-reactid="207">#</a></h2><hr data-reactid="208"/><div class="preview-image-boxes clearfix" data-reactid="209"><div class="preview-image-box" data-reactid="210"><div class="preview-image-wrapper false false" data-reactid="211"><img class="preview-img no-padding" src="https://os.alipayobjects.com/rmsportal/MVccMQxgCeYfwjS.png" alt="结构示例" data-reactid="212"/></div><div class="preview-image-title" data-reactid="213">结构示例</div><div class="preview-image-description" data-reactid="214"></div><!-- react-empty: 215 --></div></div><p data-reactid="216"><!-- react-text: 217 -->导航的结构由以下几部分组成。<!-- /react-text --></p><ol data-reactid="218"><li data-reactid="219"><p data-reactid="220"><!-- react-text: 221 -->产品 Logo 和名称<!-- /react-text --></p></li><li data-reactid="222"><p data-reactid="223"><!-- react-text: 224 -->业务类目<!-- /react-text --></p></li><li data-reactid="225"><p data-reactid="226"><!-- react-text: 227 -->登陆工具<!-- /react-text --></p></li><li data-reactid="228"><p data-reactid="229"><!-- react-text: 230 -->面包屑(可选)<!-- /react-text --></p></li></ol><p data-reactid="231"><br data-reactid="232"/></p><div class="preview-image-boxes clearfix" data-reactid="233"><div class="preview-image-box" data-reactid="234"><div class="preview-image-wrapper false false" data-reactid="235"><img class="preview-img no-padding" src="https://os.alipayobjects.com/rmsportal/KvEsIDOYzknbsPT.png" alt="一级类目" data-reactid="236"/></div><div class="preview-image-title" data-reactid="237">一级类目</div><div class="preview-image-description" data-reactid="238"></div><!-- react-empty: 239 --></div></div><div class="preview-image-boxes clearfix" data-reactid="240"><div class="preview-image-box" data-reactid="241"><div class="preview-image-wrapper false false" data-reactid="242"><img class="preview-img no-padding" src="https://os.alipayobjects.com/rmsportal/xXaCRVPIfmjDyIL.png" alt="二级类目" data-reactid="243"/></div><div class="preview-image-title" data-reactid="244">二级类目</div><div class="preview-image-description" data-reactid="245"></div><!-- react-empty: 246 --></div></div><div class="preview-image-boxes clearfix" data-reactid="247"><div class="preview-image-box" data-reactid="248"><div class="preview-image-wrapper false false" data-reactid="249"><img class="preview-img no-padding" src="https://os.alipayobjects.com/rmsportal/ollkHeFUFQElelm.png" alt="三级类目及以上" data-reactid="250"/></div><div class="preview-image-title" data-reactid="251">三级类目及以上</div><div class="preview-image-description" data-reactid="252"></div><!-- react-empty: 253 --></div></div><p data-reactid="254"><!-- react-text: 255 -->不同类目层级。<!-- /react-text --></p></section></article></div></div><div class="ant-row" data-reactid="256"><div class="ant-col-xs-24 ant-col-sm-24 ant-col-md-18 ant-col-md-offset-6 ant-col-lg-20 ant-col-lg-offset-4" data-reactid="257"><section class="prev-next-nav" data-reactid="258"><a disabled="" class="prev-page" href="/docs/pattern/classic" data-reactid="259">Classic</a><a class="next-page" href="/docs/pattern/form" data-reactid="260">Form</a></section></div></div></div><footer id="footer" data-reactid="261"><ul data-reactid="262"><li data-reactid="263"><h2 data-reactid="264">GitHub</h2><div data-reactid="265"><a target="_blank " href="https://github.com/ant-design/ant-design" data-reactid="266"><span data-reactid="267">Repository</span></a></div><div data-reactid="268"><a target="_blank" rel="noopener noreferrer" href="https://github.com/dvajs/dva" data-reactid="269">dva</a><!-- react-text: 270 --> - <!-- /react-text --><span data-reactid="271">Framework</span></div><div data-reactid="272"><a target="_blank" rel="noopener noreferrer" href="https://github.com/dvajs/dva-cli" data-reactid="273">dva-cli</a><!-- react-text: 274 --> -<!-- /react-text --><span data-reactid="275">Scaffold</span></div><div data-reactid="276"><a target="_blank" rel="noopener noreferrer" href="http://ant-tool.github.io" data-reactid="277">ant-tool</a><!-- react-text: 278 --> - <!-- /react-text --><span data-reactid="279">Developer Tools</span></div></li><li data-reactid="280"><h2 data-reactid="281"><span data-reactid="282">Links</span></h2><div data-reactid="283"><a href="http://mobile.ant.design" data-reactid="284">Ant Design Mobile</a><span data-reactid="285"> - </span><span data-reactid="286">Mobile</span></div><div data-reactid="287"><a href="https://g2.alipay.com/" data-reactid="288">G2</a><span data-reactid="289"> - </span><span data-reactid="290">Data Visualization</span></div><div data-reactid="291"><a href="https://antv.alipay.com/" data-reactid="292">AntV</a><span data-reactid="293"> - </span><span data-reactid="294">Data Visualization Specification</span></div><div data-reactid="295"><a href="http://motion.ant.design" data-reactid="296">Ant Motion</a><span data-reactid="297"> - </span><span data-reactid="298">Motion</span></div><div data-reactid="299"><a href="http://library.ant.design/" data-reactid="300">AntD Library</a><span data-reactid="301"> - </span><span data-reactid="302">Axure library of Ant Design</span></div><div data-reactid="303"><a href="http://ux.ant.design" data-reactid="304">Ant UX</a><span data-reactid="305"> - </span><span data-reactid="306">Sitemap Template</span></div></li><li data-reactid="307"><h2 data-reactid="308"><span data-reactid="309">Community</span></h2><div data-reactid="310"><a rel="noopener noreferrer" href="/changelog" data-reactid="311"><span data-reactid="312">Change Log</span></a></div><div data-reactid="313"><a target="_blank" rel="noopener noreferrer" href="https://github.com/ant-design/ant-design/issues" data-reactid="314"><span data-reactid="315">Feedback</span></a></div><div data-reactid="316"><a target="_blank" rel="noopener noreferrer" href="https://gitter.im/ant-design/ant-design" data-reactid="317"><span data-reactid="318">Chat Room</span></a></div><div data-reactid="319"><a target="_blank" rel="noopener noreferrer" href="https://github.com/ant-design/ant-design/issues/new" data-reactid="320"><span data-reactid="321">Bug Report</span></a></div></li><li data-reactid="322"><div data-reactid="323"><!-- react-text: 324 -->©2016 <!-- /react-text --><span data-reactid="325">Created by Ant UED</span></div><div data-reactid="326"><!-- react-text: 327 -->Powered by <!-- /react-text --><a href="https://github.com/benjycui/bisheng" data-reactid="328">BiSheng</a></div><div style="margin-top:10px;" data-reactid="329"><span data-reactid="330">Version: </span><div class="ant-select-sm ant-select ant-select-enabled" data-reactid="331"><div class="ant-select-selection
ant-select-selection--single" role="combobox" aria-autocomplete="list" aria-haspopup="true" aria-expanded="false" tabindex="0" data-reactid="332"><div class="ant-select-selection__rendered" data-reactid="333"><div class="ant-select-selection-selected-value" title="2.6.4" style="display:block;opacity:1;" data-reactid="334">2.6.4</div></div><span class="ant-select-arrow" style="user-select:none;-webkit-user-select:none;" unselectable="unselectable" data-reactid="335"><b data-reactid="336"></b></span></div></div></div></li></ul></footer></div>
</div>
<script>
function isZhCN(pathname) {
return /-cn\/?$/.test(pathname);
}
function getLocalizedPathname(path, zhCN) {
var pathname = path.startsWith('/') ? path : '/' + path;
if (!zhCN) { // to enUS
return /\/?index-cn/.test(pathname) ? '/' : pathname.replace('-cn', '');
} else if (pathname === '/') {
return '/index-cn';
} else if (pathname.endsWith('/')) {
return pathname.replace(/\/$/, '-cn/');
}
return pathname + '-cn';
}
var queryString = location.search;
if (queryString) {
var pathname = location.pathname;
var isZhCNConfig = queryString.indexOf('zh-CN') > -1;
if (isZhCNConfig !== isZhCN(pathname)) {
location.pathname = getLocalizedPathname(pathname, isZhCNConfig)
}
}
</script>
<script src="/common.js"></script>
<script src="/index.js"></script>
</body>
</html>