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://7K5O.n8ez.cn/" class="btn" data-dismiss="modal">Close</a>
    <a href="https://oa.n8ez.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://wva.n8ez.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://wva.n8ez.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.

信息安全 2017网络安全教程.pdf网站转微信小程序开发网站建设用哪种语言最好大连做网站电话企业网络与信息安全管理组织架构网站制作哪家专业网络安全 太极聊城网站推广宁夏网站设计公司出身社会底层的少年应该拥有怎样的人生?可能什么都不做只是在家啃老,可能在工厂暗做无天日的流水线工作,也可能在老家种地放羊…当然,如果不是现实世界的话,他就能抛开一切,去开启一段冒险之旅,经历更加精彩的故事!哪怕已经过去了很久很久,和平时代早已来临,他依然时常回想过去,回想起那座燃烧着的边境城市,那团火从那时便引燃了少年炽烈的心,如光,如炬,引领无数拥护者追随他的步伐,用铁与血推动了历史的车轮。“什么是灵气?”冷瑞提出了疑问。学化学的他穷尽天地之秘,纵横诸天万界,横扫仙鬼神魔。大千世界无奇不有林家长老借天降火雨开始谋权篡位,族长死亡,少族长也丧命。知情这或杀,或是心腹,唯独一个小仆人不仅知情,还逃出了林家。因为林家少族长对他如亲弟弟,他对少族长为亲哥哥。世道无情,人有情,且看我林天报仇雪恨,登上那至高无上的境界“十万块你还想结婚?根本就是想屁吃!”   “那些追我闺女的随便一个就比你好一万倍!”   “拿不出万彩礼,休想过我这一关!”   和女友即将修成正果之际,却遇上恶毒丈母娘的刁难,开口八十八万彩礼,让方路当场就要发飙走人,却没想到在一通电话后,母亲被逼自杀了。   竟是要用自己的命去换彩礼让方路结婚…… 一介神偷无意落入百年阴谋大局,在阴谋中成长,站在世界之巅。 赵紫宸穿越了,幸运的是获得了一个人气系统,而且还就职于女神赵颖颖的经纪公司。可是让他崩溃的是前世的女神赵颖颖如今却是他的亲姐姐,更加可气的是眼前公司还面临着倒闭的危机...... 面对前世的女神,这一世的姐姐赵颖颖陷入困境,赵紫宸选择毅然挺身而出,逆流而上,亲自来到赵颖颖的办公室的门口,抬手敲响了前世女神的办公室大门儿...... 何青穿越到天风大陆,开启金手指,竟然能探查人生剧本! 从此别叫我何青,请喊我龙傲天! 随意一看,我的婢女竟然是女帝之姿,还修炼什么? 开舔就完事了。 【姓名】:竺烟   【体质】:凤凰涅槃,浴火而生,女帝体质,号令众生   【命格】:天降大运   【人生剧本】:.....   【好感】:20   【近期经历】:..... 从此天风大陆多了一个左拥右抱,醉生梦死,羡煞旁人的...不知名大佬。记录走入大学之后的心路散情
建网站就找伍佰亿 陌陌营销 北京网站建设 信息网络安全协会联盟 网站创造 成都网络安全发展 企业网站制作设计公司 中山网站优化 商务网站建设 网络安全 ctf 阴间生活的前世案例【www.richdady.cn】 灵魂治疗与心理辅导【www.richdady.cn】 公司破产后如何重新创业咨询【www.richdady.cn】 阴间生活的前世解析咨询【www.richdady.cn】 为什么过世的前世因果【www.richdady.cn】 外灵干扰的前世故事【σσЗ8З55О88О√转ihbwel 自闭症的康复训练咨询【微:qq383550880 】√转ihbwel 发育倒退的原因分析咨询【企鹅383550880】√转ihbwel 冤亲债主干扰【企鹅383550880】√转ihbwel 外灵干扰的案例分享【微:qq383550880 】√转ihbwel 大龄剩女的婚姻建议【www.richdady.cn】√转ihbwel 事业不顺的心态如何调整?【σσЗ8З55О88О√转ihbwel 如何了解自己的前世今生咨询【www.richdady.cn】√转ihbwel 前世老婆的前世解析【www.richdady.cn】√转ihbwel 家庭关系的和谐共建【www.richdady.cn】√转ihbwel 老公家暴的环境影响【Q⒊⒏⒊⒌⒌O⒏⒏O】√转ihbwel 如何判断自己是否被冤亲债主干扰?【微:qq383550880 】√转ihbwel 阴间生活的前世记忆咨询威:⒊⒏⒊⒌⒌O⒏⒏O√转ihbwel 失业的前世记忆咨询威:⒊⒏⒊⒌⒌O⒏⒏O√转ihbwel 邪灵的防范方法咨询【www.richdady.cn】√转ihbwel 抄袭网站 广而告之微信营销平台 网站制作哪家专业 营销报价 中国网络安全和信息化领导小组成立时间 网络安全 ctf 网络安全历史 网络安全与信息安全的关系 目前个人网民的网络安全状况(结合2013年统计报告说明) 网站转微信小程序开发 石家庄手机建网站 网站建设用哪种语言最好 it服务质量与信息安全 信息安全的基本原则 阿里云 信息安全 医院营销技巧湖北警官学院 信息安全 信息安全 招聘 微机室网络安全管理 饮料创意营销策略 南昌seo网站开发 二级域名网站权重 安丘做网站 互联网信息安全中心 广告 "爬虫" 中山网站优化 昆山网站建设· 信息安全风险评估制度 二级域名网站权重 2017年360信息安全竞赛 2016年中国网络安全发展形势展望 深圳市网络与信息安全上海网站建设的企 个人新浪微博营销技巧 个人新浪微博营销技巧 中国信息安全测评中心官网 吉林网站建设 信息安全大赛 题目 信息安全大赛 题目 怎么维护社交网络安全 南京网站关键词优化 网络营销相关岗位 企业网站制作设计公司 个人做网站 全网营销培训 军用信息安全产品测评中心 商务网站建设 怎样给网站增加栏目 中央企业信息安全 聊城网站推广 新闻营销稿 移动营销形式包括 网络安全保卫部门 网站被黑 网络与信息安全会议,-1 信息安全行业新技术 信息安全的认证,-1 营销的宏观环境通讯网络营销. 企业网站的特点 全国网络安全办公室 深圳市网络与信息安全上海网站建设的企 聊城网站推广 珠海微信营销推广 社会媒体营销的方法 网站被黑 深圳市网站设计公司 网络安全法正式施行 国家计算机网络与信息安全管理办公室 企业信息安全培训内容 营销的宏观环境通讯网络营销. 尽快出台网络信息安全基本法 杭州专业做网站的公司 江西神州信息安全评估中心 信息安全 2017 外贸网站建设公司流程 网站b2c的营销方案 抄袭网站 网络安全教程.pdf 篇高端网站愿建设 徐州网站制作 网站制作哪家专业 病毒营销的传播机理 中国信息安全测评中心官网 海南网站建设 网络直播营销常见方式 宁夏网站设计公司 企业网站制作设计公司 设计官方网站 中国信息产业商会信息安全产业分会 深圳全网营销 商务网站建设 生活是最高的营销师 吉林网站建设 杭州互联网网站定制公司 信息安全认证体系,-1 天津交通信息安全网 安丘做网站 网站排版 网络与信息安全会议,-1 购物网站建设案例 网络营销研究调查问卷 信息安全的基本原则 设计网站的目的 嘉兴 网站 制作 成都网络安全发展 北邮网络安全学院 西安做网站公司? 万州做网站 网络安全2017的大事件 设计网站的目的 网络整合营销网络广告 中国信息产业商会信息安全产业分会 杭州专业做网站的公司 注册网站免费注册 网站开发制作 怎么维护社交网络安全 二级域名网站权重 互联网信息安全中心 广告 "爬虫" 网站制作预付款会计分录 信息网络安全协会联盟 国家网络安全委员会 目前个人网民的网络安全状况(结合2013年统计报告说明) 企业网络安全解决步骤 网站售后服务 警惕网络窃密 构筑网络安全防火墙 上海网站建设的价格 安丘做网站 病毒营销的传播机理 2016年中国网络安全发展形势展望 网站创建 新媒体营销效果 信息安全行业新技术 做网站步骤 信息安全 招聘 e春秋 网络安全实验室 2017网站风格 信息安全知名企业排名 企业信息安全培训内容