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://tY.yaonang.cn/" class="btn" data-dismiss="modal">Close</a>
    <a href="https://HzV.yaonang.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://im4.yaonang.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://im4.yaonang.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.

绿盟 网络安全日网站制作报价企业通过信息安全等级检测营销页面策划北京wap网站开发php大型网站设计网站设计公司-信科网络北京429网络安全日网络安全等级保护工作南京微信营销软件京都大战后,洛辰意外回到了20岁,一身修为尽失。但还好,我还有美女徒弟们! 不过洛辰并没有过上想象中安逸的退休生活,体内竟然出现了第二个系统?意味着还有更大的危机等着他去面对……高中学霸男生女生的跨界成长之路,小欢喜、小灵异、小感动最终演变一场波澜壮阔的心灵冒险。本文按照作者的梦境加入幻想添补而成,所以会碎片化,没有完整的故事缘由与结局,甚至比较杂乱,全当娱玩即可。可能文笔和叙述不太好,更新时间也不定。 这本书,是我想记录梦境中的经历而作,会加上我对事物的看法,可能会偏激,会有人不赞同我的观点与写法,表示歉意,但也请勿喷,谢谢看读。 人生只不过是我们死之前的一点回忆。能否改变人生,不是从回忆里去改,而是从现在去改变。决定你未来命运的不是过去做过什么,而是你现在正在做什么。摆脱宿命的安排,挣脱命运的枷锁,打破这一切的双手长在我们自己身上。 天尊轮回,一个懵懂少年入踏入修仙路,不求长生,只为真我,寻找前世爱妻,解开前世之谜,打破今世枷锁,成就今世威名,改变天地法则,重塑未来。一步步成长为天地至尊回归真我。 当站在修炼之巅,蓦然回首,才懂得,上天注定的是一个结果而不是过程,由你做主的那部分是上天赋予你的权力,但最终谁也改变不了那个结果,人生只是一个自我认识,追求真我的过程,一场我们自己主宰的梦而已…………更多精彩请持续关注本书。我的古董店今日又有客人说要听故事了,店里一个小姑娘却打碎了我最为珍视的照片,也罢,便讲个我的回忆好了......比别人的人心更可怕的,是自己的人心。关于回忆录,所谓回忆录,那就是什么时候想起来什么,什么时候更新好了.......解放初期川西匪患猖獗一时,骆耀祖一家跟随共产党的故事简介:末世降临,一个出生于偏僻山村的普通草根小人物开启开挂人生,逆风成长,最终蜕变为人类守护者的故事。一个热血少年步入电子竞技后的故事。 如果给你一次机会回到高中,你会做什么?好好学习还是……她?一觉睡醒,竟成为大林皇帝! 看着满朝忠臣,本想成为千古一帝,却绑定了最强昏君系统! 林凡:“朕要暴征横敛,民不聊生。” 比干:“陛下,别增税了,国库装不下了!” 林凡:“朕要扩大疆土,发动战乱!” 岳飞:“世界已是我国疆土。” 林凡:“朕要兴修皇宫,醉生梦死!” 蔺相如:“陛下,八方来朝,皆是跪礼!” ...... 林凡大哭:“我真是昏君,你们快造反吧!”
信息安全等级评测师 营销沟通的案例分析网络安全宣传要求 信息安全竞赛策划书 建网站资料 营销的网站 手机应用网络安全 营销网络的方式 重庆网站建站价格 企业网络安全防护 沈阳建网站 前世今生的改命方法【www.richdady.cn】 投资项目的案例分享咨询【www.richdady.cn】 如何改善精神不振的状态【www.richdady.cn】 阴间生活的文化背景【www.richdady.cn】 财运不佳的改善方法咨询【www.richdady.cn】 升迁障碍的职场策略咨询【企鹅383550880】√转ihbwel 心特别累的原因分析【微:qq383550880 】√转ihbwel 自闭症的症状与诊断威:⒊⒏⒊⒌⒌O⒏⒏O√转ihbwel 投资项目的选择方法咨询【www.richdady.cn】√转ihbwel 灵魂治疗与心理辅导咨询【www.richdady.cn】√转ihbwel 家庭关系的相处之道有哪些?咨询【Q⒊⒏⒊⒌⒌O⒏⒏O】√转ihbwel 儿子抑郁症的治疗方法威:⒊⒏⒊⒌⒌O⒏⒏O√转ihbwel 财运不佳的改善方法【微:qq383550880 】√转ihbwel 前世缘份的故事如何改变命运?【企鹅383550880】√转ihbwel 财运问题在线咨询咨询【企鹅383550880】√转ihbwel 4. 财运与事业发展咨询【微:qq383550880 】√转ihbwel 亲子关系的教育策略【www.richdady.cn】√转ihbwel 冤亲债主的干扰案例咨询【企鹅383550880】√转ihbwel 婚姻生活不顺的前世因果【www.richdady.cn】√转ihbwel 忧郁症的心理调适【σσЗ8З55О88О√转ihbwel 信息安全评估机构 优秀网站案列 酒店网络营销具体方案 无线网络安全实例 网络营销的一些问题 vpn技术在网络安全中的应用 域名 备案号 网站的关系 中国信息安全认证 网络信息安全大学2014 洛阳网站优化 中国中央网络安全和信息化领导小组办公室 为什么要做一个营销型网站 国家信息安全服务资质查询 可是对于一些外贸网站来说谷歌的pr值还是决定是否交换友情链接 网络信息安全 ppt 第四届网络安全 南京微信营销软件 企业通过信息安全等级检测 2016年网络安全现状分析 网站的内容 网络信息安全攻防 优秀网站欣赏 飞塔网络安全专家 网站空间购买 网络营销平台 定价 西电信息安全专业排名 网络营销平台 定价 公安网络安全管理部门 北京429网络安全日 营销网络的方式 信息安全等级评测师 佛山网站设计特色 sem整合营销代理 营销的网站 传统营销的时域性 西电信息安全录取分 营销的网站 信息安全评估机构 网站制作流程 网络安全证 临沂网站维护公司 网络信息安全攻防 国家信息安全师 高级 临沂网站维护公司 网络营销调研的类型 网站设计公司-信科网络 营销的网站 台州网站优化 网络安全考试认证 工控信息安全事件 开放平台信息安全 企业通过信息安全等级检测 飞塔网络安全专家 昆明网站建设排名 营销要素 网络营销公司培训网站维护说明 中国中央网络安全和信息化领导小组办公室 网络营销平台 定价 建和做网站 网络安全实验室综合关 北京信息安全服务资质咨询公司,-1 互联网经济与网络安全 工控信息安全事件 有经验的南昌网站设计 认证代码 信息安全 网络营销平台建设方案 济南软件优化网站 国税网络安全宣传周 商业型网站 信息安全等级保护备案流程 长春给企业做网站的公司 经典网站设计 信息安全管理审核,-1 网站制作 广州 网站的后期维护工作一般做什么 信息安全管理审核,-1 网络营销平台建设方案 营销证 兰州网站制作 云南网站设计 网络安全专刊征文活动 信息安全工程研究中心有限公司,-1 企业网站制作公司 北京互联网营销公司 佛山网站设计特色 聊城集团网站建设 网络安全举办了几届 仙桃网站建设 长沙网站设计 关于网络安全的资料 网站设计公司-信科网络 宁波电子商务网上营销 内蒙古网站建站 php大型网站设计 高等学校信息安全系列教材·入侵检测技术 网络安全等级保护工作 北京wap网站开发 公安部信息安全监察 哈工大网络安全试验室 网络安全学院开工 经典网站设计 网站制作流程 2017北京信息安全峰会 哈工大网络安全试验室 你自己的计算机上网遭受网络安全威胁时你是怎么做的? 营销要素 辽宁省网络安全协会 你自己的计算机上网遭受网络安全威胁时你是怎么做的? 最强的网站建设电话 国家网络安全技术排名 信息安全防护方案 信息安全顾问视频,-1 信息安全等级保护备案流程 sem整合营销代理 网站空间购买 网络安全通告 信息安全包括数据安全和 网络安全法 元年 邮件营销的图片 福州做网站公司 全国信息安全测评中心 建网站啦 营销证 国家信息安全工程技术研究中心官网 信息安全三个发展阶段 casb 网络安全 网络营销简历怎么写 建和做网站 手机应用网络安全 定制建网站 建网站资料 杨波信息安全 内容营销作用 网络安全考试认证 对于网络营销的看法