About modals

A streamlined, but flexible, take on the traditional javascript modal plugin with only the minimum required functionality and smart defaults.

Download file

Static example

Below is a statically rendered modal.

Live demo

Toggle a modal via javascript by clicking the button below. It will slide down and fade in from the top of the page.

Launch demo modal

Using bootstrap-modal

Call the modal via javascript:

$('#myModal').modal(options)

Options

Name type default description
backdrop boolean true Includes a modal-backdrop element. Alternatively, specify static for a backdrop which doesn't close the modal on click.
keyboard boolean true Closes the modal when escape key is pressed
show boolean true Shows the modal when initialized.

Markup

You can activate modals on your page easily without having to write a single line of javascript. Just set data-toggle="modal" on a controller element with a data-target="#foo" or href="#foo" which corresponds to a modal element id, and when clicked, it will launch your modal.

Also, to add options to your modal instance, just include them as additional data attributes on either the control element or the modal markup itself.

<a class="btn" data-toggle="modal" href="#myModal" >Launch Modal</a>
<div class="modal hide" id="myModal">
  <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal">×</button>
    <h3>Modal header</h3>
  </div>
  <div class="modal-body">
    <p>One fine body…</p>
  </div>
  <div class="modal-footer">
    <a href="https://S.kanv.com.cn/" class="btn" data-dismiss="modal">Close</a>
    <a href="https://Ke4.kanv.com.cn/" class="btn btn-primary">Save changes</a>
  </div>
</div>
Heads up! If you want your modal to animate in and out, just add a .fade class to the .modal element (refer to the demo to see this in action) and include bootstrap-transition.js.

Methods

.modal(options)

Activates your content as a modal. Accepts an optional options object.

$('#myModal').modal({
  keyboard: false
})

.modal('toggle')

Manually toggles a modal.

$('#myModal').modal('toggle')

.modal('show')

Manually opens a modal.

$('#myModal').modal('show')

.modal('hide')

Manually hides a modal.

$('#myModal').modal('hide')

Events

Bootstrap's modal class exposes a few events for hooking into modal functionality.

Event Description
show This event fires immediately when the show instance method is called.
shown This event is fired when the modal has been made visible to the user (will wait for css transitions to complete).
hide This event is fired immediately when the hide instance method has been called.
hidden This event is fired when the modal has finished being hidden from the user (will wait for css transitions to complete).
$('#myModal').on('hidden', function () {
  // do something…
})


This plugin adds quick, dynamic tab and pill functionality for transitioning through local content.

Download file

Example tabs

Click the tabs below to toggle between hidden panes, even via dropdown menus.

Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.

Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid. Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson artisan four loko farm-to-table craft beer twee. Qui photo booth letterpress, commodo enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl cillum PBR. Homo nostrud organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes anderson 8-bit, sustainable jean shorts beard ut DIY ethical culpa terry richardson biodiesel. Art party scenester stumptown, tumblr butcher vero sint qui sapiente accusamus tattooed echo park.


Using bootstrap-tab.js

Enable tabbable tabs via javascript (each tab needs to be activated individually):

$('#myTab a').click(function (e) {
  e.preventDefault();
  $(this).tab('show');
})

You can activate individual tabs in several ways:

$('#myTab a[href="#profile"]').tab('show'); // Select tab by name
$('#myTab a:first').tab('show'); // Select first tab
$('#myTab a:last').tab('show'); // Select last tab
$('#myTab li:eq(2) a').tab('show'); // Select third tab (0-indexed)

Markup

You can activate a tab or pill navigation without writing any javascript by simply specifying data-toggle="tab" or data-toggle="pill" on an element. Adding the nav and nav-tabs classes to the tab ul will apply the bootstrap tab styling.

<ul class="nav nav-tabs">
  <li><a href="#home" data-toggle="tab">Home</a></li>
  <li><a href="#profile" data-toggle="tab">Profile</a></li>
  <li><a href="#messages" data-toggle="tab">Messages</a></li>
  <li><a href="#settings" data-toggle="tab">Settings</a></li>
</ul>

Methods

$().tab

Activates a tab element and content container. Tab should have either a data-target or an href targeting a container node in the DOM.

<ul class="nav nav-tabs" id="myTab">
  <li class="active"><a href="#home">Home</a></li>
  <li><a href="#profile">Profile</a></li>
  <li><a href="#messages">Messages</a></li>
  <li><a href="#settings">Settings</a></li>
</ul>
<div class="tab-content">
  <div class="tab-pane active" id="home">...</div>
  <div class="tab-pane" id="profile">...</div>
  <div class="tab-pane" id="messages">...</div>
  <div class="tab-pane" id="settings">...</div>
</div>
<script>
  $(function () {
    $('#myTab a:last').tab('show');
  })
</script>

Events

Event Description
show This event fires on tab show, but before the new tab has been shown. Use event.target and event.relatedTarget to target the active tab and the previous active tab (if available) respectively.
shown This event fires on tab show after a tab has been shown. Use event.target and event.relatedTarget to target the active tab and the previous active tab (if available) respectively.
$('a[data-toggle="tab"]').on('shown', function (e) {
  e.target // activated tab
  e.relatedTarget // previous tab
})

About Tooltips

Inspired by the excellent jQuery.tipsy plugin written by Jason Frame; Tooltips are an updated version, which don't rely on images, use css3 for animations, and data-attributes for local title storage.

Download file

Example use of Tooltips

Hover over the links below to see tooltips:

Tight pants next level keffiyeh you probably haven't heard of them. Photo booth beard raw denim letterpress vegan messenger bag stumptown. Farm-to-table seitan, mcsweeney's fixie sustainable quinoa 8-bit american apparel have a terry richardson vinyl chambray. Beard stumptown, cardigans banh mi lomo thundercats. Tofu biodiesel williamsburg marfa, four loko mcsweeney's cleanse vegan chambray. A really ironic artisan whatever keytar, scenester farm-to-table banksy Austin twitter handle freegan cred raw denim single-origin coffee viral.


Using bootstrap-tooltip.js

Trigger the tooltip via javascript:

$('#example').tooltip(options)

Options

Name type default description
animation boolean true apply a css fade transition to the tooltip
placement string|function 'top' how to position the tooltip - top | bottom | left | right
selector string false If a selector is provided, tooltip objects will be delegated to the specified targets.
title string | function '' default title value if `title` tag isn't present
trigger string 'hover' how tooltip is triggered - hover | focus | manual
delay number | object 0

delay showing and hiding the tooltip (ms) - does not apply to manual trigger type

If a number is supplied, delay is applied to both hide/show

Object structure is: delay: { show: 500, hide: 100 }

Heads up! Options for individual tooltips can alternatively be specified through the use of data attributes.

Markup

For performance reasons, the Tooltip and Popover data-apis are opt in. If you would like to use them just specify a selector option.

<a href="https://4cv.kanv.com.cn/" rel="tooltip" title="first tooltip">hover over me</a>

Methods

$().tooltip(options)

Attaches a tooltip handler to an element collection.

.tooltip('show')

Reveals an element's tooltip.

$('#element').tooltip('show')

.tooltip('hide')

Hides an element's tooltip.

$('#element').tooltip('hide')

.tooltip('toggle')

Toggles an element's tooltip.

$('#element').tooltip('toggle')

About popovers

Add small overlays of content, like those on the iPad, to any element for housing secondary information.

* Requires Tooltip to be included

Download file

Example hover popover

Hover over the button to trigger the popover.


Using bootstrap-popover.js

Enable popovers via javascript:

$('#example').popover(options)

Options

Name type default description
animation boolean true apply a css fade transition to the tooltip
placement string|function 'right' how to position the popover - top | bottom | left | right
selector string false if a selector is provided, tooltip objects will be delegated to the specified targets
trigger string 'hover' how tooltip is triggered - hover | focus | manual
title string | function '' default title value if `title` attribute isn't present
content string | function '' default content value if `data-content` attribute isn't present
delay number | object 0

delay showing and hiding the popover (ms) - does not apply to manual trigger type

If a number is supplied, delay is applied to both hide/show

Object structure is: delay: { show: 500, hide: 100 }

Heads up! Options for individual popovers can alternatively be specified through the use of data attributes.

Markup

For performance reasons, the Tooltip and Popover data-apis are opt in. If you would like to use them just specify a selector option.

Methods

$().popover(options)

Initializes popovers for an element collection.

.popover('show')

Reveals an elements popover.

$('#element').popover('show')

.popover('hide')

Hides an elements popover.

$('#element').popover('hide')

.popover('toggle')

Toggles an elements popover.

$('#element').popover('toggle')

About alerts

The alert plugin is a tiny class for adding close functionality to alerts.

Download

Example alerts

The alerts plugin works on regular alert messages, and block messages.

Holy guacamole! Best check yo self, you're not looking too good.

Oh snap! You got an error!

Change this and that and try again. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum.

Take this action Or do this


Using bootstrap-alert.js

Enable dismissal of an alert via javascript:

$(".alert").alert()

Markup

Just add data-dismiss="alert" to your close button to automatically give an alert close functionality.

<a class="close" data-dismiss="alert" href="https://4cv.kanv.com.cn/">&times;</a>

Methods

$().alert()

Wraps all alerts with close functionality. To have your alerts animate out when closed, make sure they have the .fade and .in class already applied to them.

.alert('close')

Closes an alert.

$(".alert").alert('close')

Events

Bootstrap's alert class exposes a few events for hooking into alert functionality.

Event Description
close This event fires immediately when the close instance method is called.
closed This event is fired when the alert has been closed (will wait for css transitions to complete).
$('#my-alert').bind('closed', function () {
  // do something…
})

About

Do more with buttons. Control button states or create groups of buttons for more components like toolbars.

Download file

Example uses

Use the buttons plugin for states and toggles.

Stateful
Single toggle
Checkbox
Radio

Using bootstrap-button.js

Enable buttons via javascript:

$('.nav-tabs').button()

Markup

Data attributes are integral to the button plugin. Check out the example code below for the various markup types.

<!-- Add data-toggle="button" to activate toggling on a single button -->
<button class="btn" data-toggle="button">Single Toggle</button>
<!-- Add data-toggle="buttons-checkbox" for checkbox style toggling on btn-group -->
<div class="btn-group" data-toggle="buttons-checkbox">
  <button class="btn">Left</button>
  <button class="btn">Middle</button>
  <button class="btn">Right</button>
</div>
<!-- Add data-toggle="buttons-radio" for radio style toggling on btn-group -->
<div class="btn-group" data-toggle="buttons-radio">
  <button class="btn">Left</button>
  <button class="btn">Middle</button>
  <button class="btn">Right</button>
</div>

Methods

$().button('toggle')

Toggles push state. Gives the button the appearance that it has been activated.

Heads up! You can enable auto toggling of a button by using the data-toggle attribute.
<button class="btn" data-toggle="button" >…</button>

$().button('loading')

Sets button state to loading - disables button and swaps text to loading text. Loading text should be defined on the button element using the data attribute data-loading-text.

<button class="btn" data-loading-text="loading stuff..." >...</button>
Heads up! Firefox persists the disabled state across page loads. A workaround for this is to use autocomplete="off".

$().button('reset')

Resets button state - swaps text to original text.

$().button(string)

Resets button state - swaps text to any data defined text state.

<button class="btn" data-complete-text="finished!" >...</button>
<script>
  $('.btn').button('complete')
</script>

About

Get base styles and flexible support for collapsible components like accordions and navigation.

Download file

* Requires the Transitions plugin to be included.

Example accordion

Using the collapse plugin, we built a simple accordion style widget:

Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.

Using bootstrap-collapse.js

Enable via javascript:

$(".collapse").collapse()

Options

Name type default description
parent selector false If selector then all collapsible elements under the specified parent will be closed when this collapsible item is shown. (similar to traditional accordion behavior)
toggle boolean true Toggles the collapsible element on invocation

Markup

Just add data-toggle="collapse" and a data-target to element to automatically assign control of a collapsible element. The data-target attribute accepts a css selector to apply the collapse to. Be sure to add the class collapse to the collapsible element. If you'd like it to default open, add the additional class in.

<button class="btn btn-danger" data-toggle="collapse" data-target="#demo">
  simple collapsible
</button>
<div id="demo" class="collapse in"> … </div>
Heads up! To add accordion-like group management to a collapsible control, add the data attribute data-parent="#selector". Refer to the demo to see this in action.

Methods

.collapse(options)

Activates your content as a collapsible element. Accepts an optional options object.

$('#myCollapsible').collapse({
  toggle: false
})

.collapse('toggle')

Toggles a collapsible element to shown or hidden.

.collapse('show')

Shows a collapsible element.

.collapse('hide')

Hides a collapsible element.

Events

Bootstrap's collapse class exposes a few events for hooking into collapse functionality.

Event Description
show This event fires immediately when the show instance method is called.
shown This event is fired when a collapse element has been made visible to the user (will wait for css transitions to complete).
hide This event is fired immediately when the hide method has been called.
hidden This event is fired when a collapse element has been hidden from the user (will wait for css transitions to complete).
$('#myCollapsible').on('hidden', function () {
  // do something…
})


About

A basic, easily extended plugin for quickly creating elegant typeaheads with any form text input.

Download file

Example

Start typing in the field below to show the typeahead results.


Using bootstrap-typeahead.js

Call the typeahead via javascript:

$('.typeahead').typeahead()

Options

Name type default description
source array [ ] The data source to query against.
items number 8 The max number of items to display in the dropdown.
matcher function case insensitive The method used to determine if a query matches an item. Accepts a single argument, the item against which to test the query. Access the current query with this.query. Return a boolean true if query is a match.
sorter function exact match,
case sensitive,
case insensitive
Method used to sort autocomplete results. Accepts a single argument items and has the scope of the typeahead instance. Reference the current query with this.query.
highlighter function highlights all default matches Method used to highlight autocomplete results. Accepts a single argument item and has the scope of the typeahead instance. Should return html.

Markup

Add data attributes to register an element with typeahead functionality.

<input type="text" data-provide="typeahead">

Methods

.typeahead(options)

Initializes an input with a typeahead.

计算机信息安全资质网络通信与信息安全网络通信与信息安全微信seo全网营销第四届网络安全集团公司网站方案陕西省第三届网络安全做网站资讯免费网站网络安全等级认证通告周口网站建设加入小黑屋全勤码字群,与群内好友一起加油码字这个世界由三种基本粒子构成,分别对应了勤勉、博广和睿智。人类的灵魂自然也是由它们承载。在宇宙形成过程中,基本粒子产生了各种律动,是人类情感产生的源泉。不同的情感对应了不同的律动奥义,主角带你领悟不同的律动奥义……闲散退役兵王庄毕因缘巧合,住进了女神别墅,面对霸道美女总裁,他表示亚历山大。 庄毕:“女人,今日你对我拳打脚踢,来日我必然回报你一双儿女。”前世表白遭受拒绝的林萧河备受打击 今生又回到表白的那一天 已知结果的他选择慢慢放下开始新的生活 内心多愁伤感的江苏雪与重生过来的林萧河有将面临什么 重生过来的他蝴蝶效应是否会对这个世界有所改变樱花落在玫瑰园里,一场伺机而动的较量即将开始。书中的主人公萧云,当时只有十岁,萧家便惨遭屠杀,他为了报血海深仇,经历磨难,练成盖世武功重出江湖,灭杀仇家,书中既然表现出了曲折离奇,让人拍手称快的奇事,也体现了少年英豪的赤子纯情之心。穿越平行世界,参加选秀综艺,商献毫无意外成为偶像。 粉丝:明明可以靠脸吃饭,却偏偏靠才华,他重新定义了偶像! 商献:我不想做偶像啦,抄歌没有一点挑战性,想尝试去演戏! “人太帅,演什么都画风突兀,还是专心唱歌吧!” “这垃圾演技,安心当个偶像吧,演戏不适合你!” “演的什么鬼!差评!发首新歌我们才能原谅你!” ———— 多年后,当商献入选《时代周刊》年度风云人物,人们才恍然惊觉,这个偶像并不简单…… 年度风云人物评语:他创造了一个时代,在各种意义上!我想写个剧情套路可以不一样的小说 陈曦暗暗发誓:“小曦拼命,是为了可以骄傲的站在你身边。” 篝火旁,陈默倚在一块巨大的石头上,半眯着眼看着眼前的这个女孩,手指微微一动,握拳,再松开。 ”可...执剑“在陈州,他隐忍多年,终于手刃仇敌; 在南京,他沉浮官场,尝遍人世丑恶; 在京城,他享尽富贵,却已心灰意冷。 叶府嗣子叶永甲,以他的视角,看末世众人或生、或隐、或死的结局,唱一曲改革者的时代悲歌。上古世界,神魔共舞,凶兽横行,修士纵横…… 这一切终归跳不出天道法则的支配。 净世法则之下,一切皆归虚无。 毁灭不过一瞬间,重塑辉煌却需无数岁月。 天道崩灭,推倒重塑,谁甘心再入轮回!
网络安全 电影 网络营销的未来 网络信息安全网站 网络安全 人 网络安全宣传月 网站jianshe 2014年信息安全事故 半成品网站 搜索关于网络安全或计算机/网络取证方面的论坛将网址记录下来. 手机介绍网站 性压抑的前世影响咨询【www.richdady.cn】 长期失业对个人的影响【www.richdady.cn】 去世的父亲的前世记忆【www.richdady.cn】 忧郁症的心理调适咨询【www.richdady.cn】 婴灵的超度方法咨询【www.richdady.cn】 外灵干扰对日常生活的影响咨询【企鹅383550880】√转ihbwel 头脑混沌的前世因果咨询【σσЗ8З55О88О√转ihbwel 婚姻生活不顺的前世记忆咨询【微:qq383550880 】√转ihbwel 感觉整天没精神怎么办咨询威:⒊⒏⒊⒌⒌O⒏⒏O√转ihbwel 冤亲债主干扰的前世记忆咨询【σσЗ8З55О88О√转ihbwel 无形干扰的心理调适咨询【Q⒊⒏⒊⒌⒌O⒏⒏O】√转ihbwel 大龄剩女的前世记忆咨询【企鹅383550880】√转ihbwel 去世的父亲的前世案例【Q⒊⒏⒊⒌⒌O⒏⒏O】√转ihbwel 孩子不爱读书的阅读环境如何营造?咨询【企鹅383550880】√转ihbwel 官司的前世因果【www.richdady.cn】√转ihbwel 强迫症的环境影响咨询【微:qq383550880 】√转ihbwel 与女友前世的前世缘分咨询威:⒊⒏⒊⒌⒌O⒏⒏O√转ihbwel 婴灵的超度过程【微:qq383550880 】√转ihbwel 老公家暴的咨询技巧咨询【企鹅383550880】√转ihbwel 升职加薪的障碍分析【www.richdady.cn】√转ihbwel 房地产网站建设 做网站 网络营销的未来 高大上网站 国家信息安全体系 建网站方法 半成品网站 网站建设计划书 手机介绍网站 免费建网站系统平台 网络安全失泄密黑板报 台州哪里做网站 低价网站建设 2017网络安全大会 2014年 网络安全形势 网站的价值与网站建设的价格 败笔网络安全小组 远控3.0 手机介绍网站 北邮 信息安全 国家线 网络安全审计原理 泰安建网站 网站推广方法 未来网络营销的趋势 低价网站建设 做网站 台州卫浴网站建设 北大 信息安全实验平台 如何保护自己的网络安全 郑州做网站汉狮网络 营销型手机网站 半成品网站 做网站 深圳 中国网络安全信息小组 手机介绍网站 网络安全认证官网 php网站设计 未来网络营销的趋势 网络安全解决方案.doc 王老吉 春节营销案例 一体化网络与信息安全 医院营销4P.4C.STP vpn与网络安全pdf 制作校园网站 企业网站怎么建站 办公室信息安全考试 飞鱼星 网络安全 网络安全与信息化 杂志 营销型手机网站 网络安全基线标准 全网营销的优势 建ic网站 企业信息安全的问题网络营销产品特点 网络安全论坛 2017 营销培训费用 企业网站怎么建站 深州网站 搜索关于网络安全或计算机/网络取证方面的论坛将网址记录下来. 商品营销软件 网站营销培训 山西做网站 周口网站建设 防网络安全教育 湖南企业网站建设 信息安全工程师证 网络安全解决方案.doc 网络安全宣传月 陕西省第三届网络安全 晴朗网络 网络安全的学习 广州网站建设信息科技有限公司 2014年 网络安全形势 后台与网站 建ic网站 东莞网站定制重庆网络营销推广辅导 信息网络安全评估报告 美国国家网络安全中心 网络安全的文章 网络信息安全网站 中国信息安全认证中心诈骗 网络信息安全公司的售后 网站建设所出现的问题 河南省信息安全 手机介绍网站 后台与网站 免费网站制作 信息安全专业技术培训 律师网站建设 网络安全认证官网 网络安全失泄密黑板报 武汉国家网络安全中心 公司手机网站设计 未来网络营销的趋势 南昌网站制作 网站的价值与网站建设的价格 通信网络安全服务能力评定管理办法 广州h5网站开发 网络信息安全网站 p2p平台 信息安全 报告 网站的价值与网站建设的价格 网站信息安全维护协议 第四届网络安全 2017年网络安全 网站信息安全维护协议 php网站设计 网站建设空间申请 南昌网站建设公司渠道 企业信息安全管理方案 北邮智能网络安全实验室 事件方面的营销举例 哈尔滨网站建设 电子邮件营销是指什么地方 太原网站公司 网络信息安全网站 p2p平台 信息安全 报告 微企免费网站建设 国家信息安全体系 第四届网络安全 2017年网络安全 网站信息安全维护协议 郑州做网站汉狮网络 网站建设空间申请 做网站 深圳 企业信息安全管理方案 北邮智能网络安全实验室 事件方面的营销举例 泰安建网站 电子邮件营销是指什么地方 网站jianshe 请问大连谁家做网站 律师网站建设 泰安建网站 北邮 网络安全 导师 微博网络营销案例 医院营销4P.4C.STP 北邮 网络安全 导师 信息安全日志分析工具