>  기사  >  웹 프론트엔드  >  2018년 최고의 프론트엔드 프레임워크인 Bootstrap에 대한 자세한 설명

2018년 최고의 프론트엔드 프레임워크인 Bootstrap에 대한 자세한 설명

PHPz
PHPz원래의
2018-02-01 10:34:334367검색

Bootstrap은 HTML, CSS 및 JAVASCRIPT를 기반으로 하며 반응형 레이아웃, 모바일 우선 웹 프로젝트를 개발하는 데 사용됩니다. Bootstrap은 JQuery를 기반으로 보다 개인화된 개선을 통해 고유한 웹 사이트 스타일을 형성했으며 대부분의 jQuery 플러그인과 호환됩니다. 프런트엔드 개발을 더 빠르고 간단하게 만듭니다.

기본 구조: Bootstrap은 그리드 시스템, 링크 스타일 및 배경을 갖춘 기본 구조를 제공합니다.

CSS: Bootstrap에는 전역 CSS 설정, 기본 HTML 요소 스타일 정의, 확장 가능한 클래스 및 고급 그리드 시스템과 같은 기능이 포함되어 있습니다.

구성 요소: Bootstrap에는 이미지 생성, 드롭다운 메뉴, 탐색, 경고 상자, 팝업 상자 등을 위한 재사용 가능한 구성 요소가 12개 이상 포함되어 있습니다.

JavaScript 플러그인: Bootstrap에는 12개 이상의 사용자 정의 jQuery 플러그인이 포함되어 있습니다. 모든 플러그인을 직접 포함할 수도 있고 하나씩 포함할 수도 있습니다.

사용자 정의: Bootstrap 구성 요소, LESS 변수 및 jQuery 플러그인을 사용자 정의하여 자신만의 버전을 얻을 수 있습니다.

【관련 영상 추천: 부트스트랩 튜토리얼

1. 부트스트랩 기본 템플릿

<!DOCTYPE html>
<html lang="zh-CN">
 <head>
 <meta charset="utf-8">
 <!--让浏览器使用最新的IE内核进行渲染页面-->
 <meta http-equiv="X-UA-Compatible" content="IE=edge">
 <!--设置视口宽度等于当前设备宽度,默认缩放比为1-->
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
 <title>Bootstrap 101 Template</title>
 <!-- 导入Bootstrap核心CSS文件 -->
 <link href="css/bootstrap.css" rel="external nofollow" rel="stylesheet">
 <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
 <!-- WARNING: Respond.js doesn&#39;t work if you view the page via file:// -->
 <!--
 ①<!--[if lt IE 9]>…… <![endif]- ->这一对标签用于检测当前浏览器的版本,lt表示小于,gt表示大写。所以这句话作用是,当浏览器版本低于IE9执行。
 ②html5shiv:解决ie9以下浏览器对html5新增标签的不识别,并导致CSS不起作用的问题。
 ③respond.min:让不支持css3 Media Query的浏览器包括IE6-IE8等其他浏览器支持查询。 
 -->
 <!--[if lt IE 9]>
 <script src="https://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script>
 <script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
 <![endif]-->
 </head>
 <body>
 <h1>你好!</h1>
 <script src="js/jquery-3.1.1.js"></script>
 <!-- 导入BootStrap的JS插件
 ①如果不使用BootStrap提供的JS插件,则这个JS文件无需导入;
 ②BootStrap的JS插件功能依赖JQuery,因此这个JS必须在JQuery之后导入;
 -->
 <script src="js/bootstrap.min.js"></script>
 </body>
</html>

위의 HTML 코드를 복사하여 붙여넣는 가장 간단한 부트스트랩 페이지입니다. Bootstrap용 JavaScript 플러그인은 모두 jQuery에 의존하므로 Bootstrap보다 먼저 jQuery를 도입해야 한다는 점을 기억하는 것이 중요합니다.

2. 구성 요소

Bootstrap에는 이러한 구성 요소를 기반으로 아름답고 완전한 기능을 갖춘 웹 사이트를 빠르게 구축할 수 있습니다. 여기에는 다음 구성 요소가 포함됩니다:

  드롭다운 메뉴, 버튼 그룹, 버튼 드롭다운 메뉴, 탐색, 탐색 모음, 경로 탐색, 페이징, 레이아웃, 썸네일, 경고 대화 상자, 진행률 표시줄, 미디어 개체 등

2.1 글꼴 아이콘

bootstrap은 기본적으로 200개 이상의 아이콘을 제공합니다. 스팬 태그를 통해 다음 아이콘을 사용할 수 있습니다.

<h3>图标</h3> 
 <span class="glyphicon glyphicon-home"></span>
 <span class="glyphicon glyphicon-signal"></span>
 <span class="glyphicon glyphicon-cog"></span>
 <span class="glyphicon glyphicon-apple"></span>

효과를 살펴보겠습니다.

2.2 버튼

버튼 스타일의 집합입니다. 버튼의 기본 크기 외에도 부트스트랩은 버튼의 크기를 조정하는 세 가지 매개변수, 즉 btn-lg, btn-sm 및 btn-xs도 제공합니다.

<h3>按钮</h3>
 <button type="button" class="btn btn-default">按钮</button>
 <button type="button" class="btn btn-primary">primary</button>
 <button type="button" class="btn btn-success">success</button>
 <button type="button" class="btn btn-info">info</button>
 <button type="button" class="btn btn-warning">warning</button>
 <button type="button" class="btn btn-danger">danger</button>
 <h3>按钮尺寸</h3>
 <button type="button" class="btn btn-default">按钮</button>
 <button type="button" class="btn btn-primary btn-lg">primary</button>
 <button type="button" class="btn btn-success btn-sm">success</button>
 <button type="button" class="btn btn-info btn-xs">info</button>
 <h3>把图标显示在按钮里</h3>
 <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-home"></span>  按钮</button>

효과:

2.3 드롭다운 메뉴

드롭다운 메뉴는 가장 일반적인 상호 작용 중 하나이며 부트스트랩은 아름다운 스타일을 제공합니다.​

 <h3>下拉菜单</h3>
 <p class="dropdown">
 <button class="btn btn-primary dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-expanded="true">
 Dropdown
 <span class="caret"></span>
 </button>
 <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1">
 <li role="presentation"><a role="menuitem" tabindex="-1" href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >Action</a></li>
 <li role="presentation"><a role="menuitem" tabindex="-1" href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >Another action</a></li>
 <li role="presentation"><a role="menuitem" tabindex="-1" href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >Something else here</a></li>
 <li role="presentation"><a role="menuitem" tabindex="-1" href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >Separated link</a></li>
 </ul>
 </p>

효과 보기:

2.4 입력 상자

태그를 통해 입력 상자를 만듭니다.

 <h3>输入框</h3>
 <p class="input-group">
 <span class="glyphicon glyphicon-user"></span>
 <input type="text" placeholder="username">
 </p>
 <p class="input-group">
 <span class="glyphicon glyphicon-lock"></span>
 <input type="password" placeholder="password">
 </p>

Rendering:

2.5 Navigation Bar

네비게이션 바는 전체 웹사이트의 가이드로서 필수적입니다.

 <h3>导航栏</h3>
 <nav class="navbar navbar-inverse navbar-fixed-top">
 <p id="navbar" class="navbar-collapse collapse">
 <ul class="nav navbar-nav">
 <li class="active"><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >Home</a></li>
 <li><a href="#about" rel="external nofollow" >About</a></li>
 <li><a href="#contact" rel="external nofollow" >Contact</a></li>
 <li class="dropdown">
 <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Dropdown <span class="caret"></span></a>
 <ul class="dropdown-menu" role="menu">
 <li><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >Action</a></li>
 <li><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >Another action</a></li>
 <li class="pider"></li>
 <li class="dropdown-header">Nav header</li>
 <li><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >Separated link</a></li>
 </ul>
 </li>
 </ul>
 </p><!--/.nav-collapse -->
 </p>
 </nav>

효과↓

2.6 Form

사람과 시스템 간의 데이터 전송은 양식에 의존해야 합니다. 예를 들어, 등록/로그인 정보 제출, 쿼리 조건 제출 등 양식을 만들려면

태그를 사용하세요.

<h3>表单</h3>
 <form>
 <p class="form-group">
 <span class="glyphicon glyphicon-user"></span>
 <input type="email" id="exampleInputEmail1" placeholder="Enter email">
 </p>
 <p class="form-group">
 <span class="glyphicon glyphicon-lock"></span>
 <input type="password" id="exampleInputPassword1" placeholder="Password">
 </p>
 <p class="form-group">
 <label for="exampleInputFile">File input</label>
 <input type="file" id="exampleInputFile">
 <p class="help-block">Example block-level help text here.</p>
 </p>
 <p class="checkbox">
 <label>
 <input type="checkbox"> Check me out
 </label>
 </p>
 <button type="submit" class="btn btn-default">Submit</button>
 </form>

효과는 다음과 같습니다.

2.7 경고 상자

경고 상자는 시스템이 사용자에게 정보를 전달하고 안내를 제공하는 중요한 수단입니다. 경고 상자에는 태그가 없습니다. 부트스트랩에서 제공하는 스타일을 통해 즉시 아름다운 경고 상자를 만들 수 있습니다.

 <h3>警告框</h3>
 <p class="alert alert-warning alert-dismissible" role="alert">
 <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
 <strong>Warning!</strong> Better check yourself, you're not looking too good.
 </p>
 <p class="alert alert-success" role="alert">
 <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="alert-link">success!</a>
 </p>
 <p class="alert alert-info" role="alert">
 <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="alert-link">info!</a>
 </p>
 <p class="alert alert-warning" role="alert">
 <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="alert-link">warning!</a>
 </p>
 <p class="alert alert-danger" role="alert">
 <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="alert-link">danger!</a>
 </p>

렌더링:

2.8 진행률 표시줄

시스템 처리 과정에서 사용자가 기다려야 하는 경우가 많습니다. 진행률 표시줄을 통해 사용자는 시스템 처리 과정을 인지할 수 있으므로 허용 범위가 늘어납니다.

 <h3>进度条</h3>
 <p class="progress">
 <p class="progress-bar" role="progressbar" aria-valuenow="70" aria-valuemin="0" aria-valuemax="100" style="width: 60%;">
 70%
 </p>
 </p>

3. 부트스트랩 그리드 시스템

먼저 그리드 시스템이 무엇인지 이해해야 합니다! 아래로 보기 ↓

Bootstrap은 화면이나 뷰포트 크기가 증가함에 따라 자동으로 최대 12개의 열로 분할되는 반응형 모바일 우선 유동 그리드 시스템을 제공합니다. 여기에는 보다 의미 있는 레이아웃을 생성하기 위한 사용하기 쉬운 사전 정의된 클래스와 강력한 믹스인이 포함되어 있습니다.

그리드 시스템은 행과 열의 일련의 조합을 통해 페이지 레이아웃을 생성하는 데 사용되며, 생성된 레이아웃에 콘텐츠를 배치할 수 있습니다. 다음은 부트스트랩 그리드 시스템의 작동 방식에 대한 소개입니다.

"행"은 적절한 정렬과 패딩을 제공하기 위해 .container(고정 너비) 또는 .container-fluid(100% 너비)에 포함되어야 합니다.
"행"을 통해 가로 방향으로 "열" 집합을 만듭니다.

你的内容应当放置于“列(column)”内,并且,只有“列(column)”可以作为行(row)”的直接子元素。

类似 .row 和 .col-xs-4 这种预定义的类,可以用来快速创建栅格布局。Bootstrap 源码中定义的 mixin 也可以用来创建语义化的布局。

通过为“列(column)”设置 padding 属性,从而创建列与列之间的间隔(gutter)。通过为 .row 元素设置负值 margin 从而抵消掉为 .container 元素设置的 padding,也就间接为“行(row)”所包含的“列(column)”抵消掉了padding。
栅格系统中的列是通过指定1到12的值来表示其跨越的范围。例如,三个等宽的列可以使用三个 .col-xs-4 来创建。

如果一“行(row)”中包含了的“列(column)”大于 12,多余的“列(column)”所在的元素将被作为一个整体另起一行排列。

栅格类适用于与屏幕宽度大于或等于分界点大小的设备 , 并且针对小屏幕设备覆盖栅格类。 因此,在元素上应用任何 .col-md-*栅格类适用于与屏幕宽度大于或等于分界点大小的设备 , 并且针对小屏幕设备覆盖栅格类。 因此,在元素上应用任何 .col-lg-*不存在, 也影响大屏幕设备。

3.1媒体查询

在栅格系统中,我们在 Less 文件中使用以下媒体查询(media query)来创建关键的分界点阈值。

/* 超小屏幕(手机,小于 768px) */
/* 没有任何媒体查询相关的代码,因为这在 Bootstrap 中是默认的( Bootstrap 是移动设备优先) */
/* 小屏幕(平板,大于等于 768px) */
@media (min-width: @screen-sm-min) { ... }
/* 中等屏幕(桌面显示器,大于等于 992px) */
@media (min-width: @screen-md-min) { ... }
/* 大屏幕(大桌面显示器,大于等于 1200px) */
@media (min-width: @screen-lg-min) { ... }

3.2栅格参数

<p class="row">
 <p class="col-md-1">.col-md-1</p>
 <p class="col-md-1">.col-md-1</p>
 <p class="col-md-1">.col-md-1</p>
 <p class="col-md-1">.col-md-1</p>
 <p class="col-md-1">.col-md-1</p>
 <p class="col-md-1">.col-md-1</p>
 <p class="col-md-1">.col-md-1</p>
 <p class="col-md-1">.col-md-1</p>
 <p class="col-md-1">.col-md-1</p>
 <p class="col-md-1">.col-md-1</p>
 <p class="col-md-1">.col-md-1</p>
 <p class="col-md-1">.col-md-1</p>
</p>
<p class="row">
 <p class="col-md-8">.col-md-8</p>
 <p class="col-md-4">.col-md-4</p>
</p>
<p class="row">
 <p class="col-md-4">.col-md-4</p>
 <p class="col-md-4">.col-md-4</p>
 <p class="col-md-4">.col-md-4</p>
</p>
<p class="row">
 <p class="col-md-6">.col-md-6</p>
 <p class="col-md-6">.col-md-6</p>
</p>

输入上面的代码就可以实现上图的样式,是不是已经对栅格系统有所了解了,我们继续往下看↓

3.3响应式列重置

即便有给出的栅格class,你也不免会碰到一些问题,例如,在某些阈值时,某些列可能会出现比别的列高的情况。为了克服这一问题,建议联合使用 .clearfix 和响应式工具类。

<p class="row">
 <p class="col-xs-6 col-sm-3">.col-xs-6 .col-sm-3</p>
 <p class="col-xs-6 col-sm-3">.col-xs-6 .col-sm-3</p>
 <p class="clearfix visible-xs-block"></p>
 <p class="col-xs-6 col-sm-3">.col-xs-6 .col-sm-3</p>
 <p class="col-xs-6 col-sm-3">.col-xs-6 .col-sm-3</p>
</p>

除了列在分界点清除响应, 您可能需要 重置偏移, 后推或前拉某个列。

<p class="row">
 <p class="col-sm-5 col-md-6">.col-sm-5 .col-md-6</p>
 <p class="col-sm-5 col-sm-offset-2 col-md-6 col-md-offset-0">.col-sm-5 .col-sm-offset-2 .col-md-6 .col-md-offset-0</p>
</p>
<p class="row">
 <p class="col-sm-6 col-md-5 col-lg-6">.col-sm-6 .col-md-5 .col-lg-6</p>
 <p class="col-sm-6 col-md-5 col-md-offset-2 col-lg-6 col-lg-offset-0">.col-sm-6 .col-md-5 .col-md-offset-2 .col-lg-6 .col-lg-offset-0</p>
</p>
<h2 style="margin: 8px 0px 0px; padding: 0px; font-weight: bold; font-size: 16px; line-height: 28px; max-width: 100%; color: #59c3f9; min-height: 32px; border-bottom-width: 1.5px; border-bottom-style: solid; border-color: #59c3f9; text-align: justify;"><span style="font-family: &#39;Microsoft YaHei&#39;; font-size: 14px;"><span class="autonum" style="background-color: #59c3f9; color: #ffffff; display: block; float: left; line-height: 20px; margin: 0px 8px 0px 0px; max-width: 100%; padding: 4px 10px; word-wrap: break-word !important;" title="" src-title="">3.2.1</span><span style="font-size: 16px;"><strong class="135brush" style="border-color: #59c3f9; color: inherit;" data-brushtype="text">内部类作为事件监听器</strong></span></span></h2>

3.4列偏移

使用 .col-md-offset-* 类可以将列向右侧偏移。这些类实际是通过使用 * 选择器为当前元素增加了左侧的边距(margin)。例如,.col-md-offset-4 类将 .col-md-4 元素向右侧偏移了4个列(column)的宽度。

<p class="row">
 <p class="col-md-4">.col-md-4</p>
 <p class="col-md-4 col-md-offset-4">.col-md-4 .col-md-offset-4</p>
</p>
<p class="row">
 <p class="col-md-3 col-md-offset-3">.col-md-3 .col-md-offset-3</p>
 <p class="col-md-3 col-md-offset-3">.col-md-3 .col-md-offset-3</p>
</p>
<p class="row">
 <p class="col-md-6 col-md-offset-3">.col-md-6 .col-md-offset-3</p>
</p>

3.5嵌套列

为了使用内置的栅格系统将内容再次嵌套,可以通过添加一个新的 .row 元素和一系列 .col-sm-* 元素到已经存在的 .col-sm-* 元素内。被嵌套的行(row)所包含的列(column)的个数不能超过12(其实,没有要求你必须占满12列)。

<p class="row">
 <p class="col-sm-9">
 Level 1: .col-sm-9
 <p class="row">
 <p class="col-xs-8 col-sm-6">
 Level 2: .col-xs-8 .col-sm-6
 </p>
 <p class="col-xs-4 col-sm-6">
 Level 2: .col-xs-4 .col-sm-6
 </p>
 </p>
 </p>
</p>

3.6列排序

通过使用 .col-md-push-* 和 .col-md-pull-* 类就可以很容易的改变列(column)的顺序。

<p class="row">
 <p class="col-md-9 col-md-push-3">.col-md-9 .col-md-push-3</p>
 <p class="col-md-3 col-md-pull-9">.col-md-3 .col-md-pull-9</p>
</p>

相关推荐:

BootStrap点击保存后模态框自动关闭代码分享

Bootstrap Tooltip显示换行和左对齐实现方法

BootStrap自定义popover实现点击区域隐藏功能

위 내용은 2018년 최고의 프론트엔드 프레임워크인 Bootstrap에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.