bootstrus

BootStrap

1、bootstrap概述

1.1、什么是bootstrap?bootstrap的作用?

Bootstrap,基于 HTML、CSS、JAVASCRIPT 的前端框架

该框架已经预定义了一套CSS样式和与样式对应的JS代码。(对应的样式有对应的特效)

 

开发人员只需要编写HTML结构,添加bootstrap固定的class样式,就可以轻松完成指定效果的实现。

 

作用:

①  Bootstrap 使得 Web 开发更加快捷,高效。

②  BootStrap支持响应式开发,解决了移动互联网前端开发问题

 

课外了解知识:

该框架由Twitter 公司的设计师Mark Otto和Jacob Thornton合作开发。

Bootstrap基础入门使用的都是自带CSS样式,高级开发中需要使用HTML5、CSS3、动态CSS语言Less 进行自定义开发,JavaEE课程中学习是“基础入门”。

中文官网:http://www.bootcss.com/

 

 

 

1.2、什么是响应式布局?响应式布局解决的问题?

l  响应式布局:一个网站的展示能够兼容多个终端(手机、iPad、PC等),而不需要为每个终端单独做一个展示版本。

 

l  此概念专为解决移动互联网浏览而诞生的。

 

响应式布局,使得网站仅适用一套样式,就可以在不同分辨率下展示出不同的舒适效果,大大降低了网站开发维护成本,并且能带给用户更好的体验性

 

 

 

 

 

未使用响应式开发:

 

使用了响应式开发:

2、bootstrap环境搭建

2.1、下载资源

l  中文官网地址:http://d.bootcss.com/bootstrap-3.3.5.zip

 

2.2、目录结构

 

 

Javaee使用bootStrap开发,主要使用dist发布版目录。

dist目录结构如下:

bootstrap/

├── css/

│   ├── bootstrap.css                                            //bootstrap完整版的CSS文件。

│   ├── bootstrap.css.map                                 

│   ├── bootstrap.min.css                                  //bootstrap压缩版CSS文件。

│   ├──bootstrap.min.css.map

│   ├── bootstrap-theme.css                              //主题文件

│   ├──bootstrap-theme.css.map

│   ├──bootstrap-theme.min.css

│   └──bootstrap-theme.min.css.map

├── js/

│   ├── bootstrap.js                                                        //bootstrap完整版的脚本文件。

│   └── bootstrap.min.js                                             // bootstrap压缩版的脚本文件。

└── fonts/

    ├── glyphicons-halflings-regular.eot             //字体 (字体图标)

    ├──glyphicons-halflings-regular.svg

    ├──glyphicons-halflings-regular.ttf

    ├──glyphicons-halflings-regular.woff

    └──glyphicons-halflings-regular.woff2

 

 

注:完整版用于源码学习,但因为文件大小问题,不适合网络间传递。

    压缩版用于网络发布,压缩版和完整版的唯一区别,仅为压缩版将代码间的大量空格和回车换行删除掉了,节约了大量的空间,功能上完全相同,适用于网络间快速传递。但因为没有了空格和换行,源代码难以阅读。

2.3、bootstrap的通用简洁模板

<!DOCTYPE html>

<html lang="zh-CN">

    <head>

        <metacharset="utf-8">

        <metahttp-equiv="X-UA-Compatible" content="IE=edge">

        <metaname="viewport"content="width=device-width,initial-scale=1" />

        <title>Bootstrap模板</title>

 

        <linkhref="../lib/bootstrap/css/bootstrap.min.css"rel="stylesheet">

        <scriptsrc="../lib/jquery/jquery-1.11.0.js"></script>

        <scriptsrc="../lib/bootstrap/js/bootstrap.min.js"></script>

 

    </head>

 

    <body>

        <h1>你好,世界!</h1>

    </body>

</html>

 

viewport:视口,即浏览器上网页的可视区域

视口作用:用于移动设备将 大型页面进行比例缩放显示。

 

 

 

视口的常见设置(了解):

width=device-width

视口的宽度,大多手机浏览器视口的宽度是980。

device-width 表示采用设备的宽度

例如:手机是5.5寸,那么视口也采用5.5寸宽度

initial-scale=1

移动设备上,打开页面时的初始化缩放级别。

取值:1-5

1表示100%,5表示500%

minimum-scale=1

移动设备上,页面可以 最小缩放的级别。

maximum-scale=1

移动设备上,页面可以 最大缩放的级别。

user-scalable=no

移动设备上,页面禁止缩放。

如果设置“user-scalable=no”,则“minimum-scale”和“maximum-scale”无效

 

3、布局容器

BootStrap必须需要至少一个布局容器,才能为页面内容进行封装和方便的样式控制。

相当于一个画板。

 

帮助手册位置:全局CSS样式-------》概览-------》布局容器

 

任意元素使用了布局容器的样式,都会成为一个布局容器,建议使用div作为布局容器

 

.container

类用于固定宽度并支持响应式布局的容器。

【特点:居中,两端留白】

<divclass="container"> ...</div>

 

.container-fluid

类用于 100%宽度,占据全部视口(viewport)的容器。

<divclass="container-fluid"> ...</div>

 

 

为了展示效果明显,我们为div加入了边框样式:

style="border:1px solid red;"

示例1:

效果1:

 

示例2:

效果2:

4、栅格系统

4.1、简述栅格系统

为了方便在布局容器中进行网页的布局操作。

BootStrap提供了一套专门用于响应式开发布局的栅格系统。

栅格系统将一行分为12,通过设定元素占用的列数来 布局元素在页面上的展示位置。

 

帮助手册位置:全局CSS样式-----栅格系统

作用:

         可以让开发人员更加轻松进行网页布局,并且轻松进行响应式开发。

4.2、栅格系统的特点及入门案例

l  栅格特点

n  “行(row)”必须包含在 .container (固定宽度)或 .container-fluid (100% 宽度)中

n  行使用的样式“.row”,列使用样式“col-*-*” 元素内容应当放置于“列(column)”内

n  基本的书写方式必须是:容器---------内容

HTML表格:定义一个表格----行-----单元格

l  栅格参数:“col-屏幕尺寸-占用列数”  

 

列元素的书写顺序,决定布局顺序,先写的列元素会被先布局到行上。

列元素的占用列数,定义列元素的大小

 

为了方便显示元素大小,我们为展示元素都赋予了相同样式:

border:1px solid red;height:100px;

示例1:一个元素占一行

效果1:

 

示例2:两个元素占一行

效果2:

 

 

 

 

示例3:三个元素占一行

效果3:

 

 

示例4:四个元素占一行

效果4:

 

 

注:

l 一个row下,如果设置的col列数总和小于等于12,那么该row下元素在一行排列;

l 一个row下,如果设置的col列数总和大于12,那么超出的元素会另起一行排列;

l 行和列可以进行无限嵌套,嵌套方式必须为列---行---列----行。。。。

l 一个row元素下,有12列的

 

4.3、栅格屏幕尺寸设置

屏幕尺寸简述:

l large : lg            -------大屏幕,一般PC尺寸

l medium : md   --------中等屏幕,小PC尺寸

l small: sm : sm -----小屏幕 ,iPad尺寸

l x small : xs        -----超小屏幕,智能手机尺寸

 

为了方便显示元素大小,我们为展示元素都赋予了相同样式:

border:1px solid red;height:100px;

示例:

效果:

4.4、设置屏幕尺寸时的注意事项

若设置了某个屏幕尺寸的样式,那么比该尺寸大的屏幕,会沿用该设置;比该尺寸小的屏幕,会默认一个元素占12列的设置。

 

例如:设置了col-md-4,那么相当于也设置了col-lg-4。

           其他屏幕尺寸均默认为col-sm-12,col-xs-12

4.5、列偏移

通常情况下我们需要将元素居中显示,需要左边空出一定的空白区域,这里我们就可以使用列偏移来达到效果。

 

.col-屏幕尺寸-offset-*

在指定屏幕尺寸下,向右偏移*个列

 


 

 

5、响应式工具

为针对性地在移动页面上展示和隐藏不同的内容,bootStrap提供响应式工具。

可以让开发人员通过该工具决定,在何种屏幕尺寸下,隐藏或者显示某些元素

 

帮助手册位置:全局CSS样式---响应式工具

6、列表

BootStrap同样提供了实用的列表样式供开发人员使用。

帮助手册位置:全局CSS样式----排版----列表

.list-inline

将列表所有元素放置于一行

 

示例:

效果:


 

 

7、按钮

BootStrap提供了丰富的按钮样式供开发人员使用。

 

帮助手册位置:全局CSS样式----按钮

任何HTML元素加上以下样式都会变成对应按钮

.btn btn-default

示例:

<aclass="btn btn-default">Link</a>

效果:

.btn btn-primary

示例:

<a class="btn btn-primary">(首选项)Primary</a>

效果:

.btn btn-success

示例:

<a class="btn btn-success">(成功)Success</a>

效果:

.btn btn-info

示例:

<a class="btn btn-info">(一般信息)Info</a>

效果:

 

.btn btn-warning

示例:

<a class="btn btn-warning">(警告)Warning</a>

效果:

 

.btn btn-danger

示例:

<a class="btn btn-danger">(危险)Danger</a>

效果:

 

.active

表示按钮被点击的样式

示例:

<a class=”btn btn-danger active”>(危险)Danger</a>

效果:

.disabled

表示按钮被禁用的样式

示例:

<a class=”btn btn-danger disabled”>(危险)Danger</a>

效果:

 

8、导航条

BootStrap已经提供了完整的导航条实例,通常情况下,我们仅需进行简单修改即可使用。

 

帮助手册位置:组件-------导航条

 

9、轮播图

BootStrap已经提供了完整的轮播图实例,通常情况下,我们仅需进行简单修改即可使用。

 

帮助手册位置:JavaScript插件--- Carousel

 

轮播图DIV的定时换图属性:

data-interval="毫秒值"

注意:多个轮播图必须修改轮播图的ID


 

 

10、排版-对齐方式

BootStrap提供统一的排版方式设置,方便开发人员对内容板式进行调整

帮助手册位置:全局CSS样式----排版----对齐

 

 

会将元素内所有的内容都进行排版设置

.text-left

使元素内容靠左显示

.text-center

使元素内容居中显示

.text-right

使元素内容靠右显示

 

示例:

效果:


 

 

11、表单元素

BootStrap同样提供了丰富的表单控件供开发人员来选择。

 

帮助手册位置:全局CSS样式-----表单

 

 

示例1:基本实例

效果1:

 

示例2:表单名和表单输入项共用一行

效果2:

 

 

示例3:校验状态-出错样式

效果3:

12、分页条

 

BootStrap为我们还准备了分页条的样式组件。

 

帮助手册位置:组件-----------分页

 

 

示例1:

效果1:

 

 

示例2:

效果2:(鼠标放入禁用按钮,鼠标变为禁用)


 

 

13、综合案例

13.1、案例需求

请做出如图所示的页面。

         要求:

1.        页面顶部的三部分在PC屏幕上显示为一行,在移动设备屏幕上显示为一部分一行;

2.        导航条在大屏幕展示全部内容,在移动设备上需要将内容能够折叠/展开;

3.        用户名/密码/确认密码不能为空,密码需和确认密码一致,如果不符合,阻止注册操作,并将错误信息展示给用户看。

onsubmit

               

      

13.2、需求分析

13.3、案例实现

 

<script>

   

    //密码和确认密码一致性校验

    //前提:密码和确认密码必须填写

    function checkPwdAndRepwd(f1,f2){

         if(f1&&f2){

             //密码和确认密码不为空,进行非空校验

             //1、密码和确认密码值拿到

             varpwd=document.getElementById("password").value;

             varrepwd=document.getElementById("repassword").value;

             varmsg=document.getElementById("repasswordMsg");

             vardiv=document.getElementById("repasswordDiv");

             //2、一致性判断

             if(pwd==repwd){

                 div.className="form-group";

               msg.innerHTML="";

                 return true;

             }else{

                 div.className+="has-error";

               msg.innerHTML="必须和密码一致";

                 return false;

             }

         }else{

             //密码和确认密码有一个为空,直接返回false

             return false;

         }

    }

   

      //非空校验

    function checkNotNull(nid){

         //1、获取表单输入项元素对象

         var nodex=document.getElementById(nid);

         //获取对应的错误信息回显 label元素

         varmsg=document.getElementById(nid+"Msg");

         //获取对应的DIV

         vardiv=document.getElementById(nid+"Div");

         //2、对进行非空判断

         var reg = /^\s*$/;//如果有0~多个空白符,就为true

         if(reg.test(nodex.value)){

             //信息不合格

             div.className+=" has-error";

             msg.innerHTML="不能为空";

             return false;

         }else{

             //信息合格

             div.className="form-group";

             msg.innerHTML="";

             return true;

         }

    }

   

    //表单校验方法

    function checkForm(){

         //用户名

         varflag1=checkNotNull("username");

         //密码

         var flag2=checkNotNull("password");

         //确认密码

         varflag3=checkNotNull("repassword");

         //一致性校验

         var flag4=checkPwdAndRepwd(flag2,flag3);

         returnflag1&&flag2&&flag3&&flag4;

    }

   </script>

 </head>

 <body>

           <div class="container">

            <!-- 网站头部 -->

            <div class="row">

               <divclass="col-md-4">

                   <imgsrc="../img/logo2.png" />

               </div>

               <divclass="col-md-4">

                   <imgsrc="../img/header.png" />

               </div>

               <divclass="col-md-4">

                   <ulclass="list-inline" style="margin-top:10px;">

                       <li><ahref="" class="btn btn-primary">登录</a></li>

                       <li><ahref="" class="btn btn-primary">注册</a></li>

                       <li><ahref="" class="btn btn-danger">购物车</a></li>

                   </ul>

               </div>

            </div>

            <!-- 导航条 -->

            <nav class="navbarnavbar-inverse">

                  <div class="container-fluid">

                    <div class="navbar-header">

                      <button type="button"class="navbar-toggle collapsed" data-toggle="collapse"data-target="#bs-example-navbar-collapse-1"aria-expanded="false">

                        <spanclass="sr-only">Toggle navigation</span>

                        <spanclass="icon-bar"></span>

                        <spanclass="icon-bar"></span>

                        <spanclass="icon-bar"></span>

                      </button>

                      <a class="navbar-brand"href="#">首页</a>

                    </div>

               

                    <div class="collapsenavbar-collapse" id="bs-example-navbar-collapse-1">

                      <ul class="navnavbar-nav">

                        <liclass="active"><a href="#">手机数码<spanclass="sr-only">(current)</span></a></li>

                        <li><a href="#">电脑办公</a></li>

                        <li class="dropdown">

                          <a href="#"class="dropdown-toggle" data-toggle="dropdown"role="button" aria-haspopup="true"aria-expanded="false">更多<span class="caret"></span></a>

                          <ulclass="dropdown-menu">

                            <li><ahref="#">母婴用品</a></li>

                            <li><ahref="#">汽车配件</a></li>

                            <li role="separator"class="divider"></li>

                          </ul>

                        </li>

                      </ul>

                      <form class="navbar-formnavbar-right" role="search">

                        <divclass="form-group">

                          <input type="text"class="form-control" placeholder="Search">

                        </div>

                        <button type="submit"class="btn btn-default">Submit</button>

                      </form>

                    </div>

                  </div>

                    </nav>

            <!-- 注册页面主体-->

            <div class="row"style="background-image: url(../img/regist_bg.jpg)">

               <divclass="col-sm-8 col-sm-offset-2" style="border:5px solidgainsboro;background-color:white;">

                   <!--表单部分 -->

                   <divclass="row">

                       <divclass="col-sm-8 col-sm-offset-2">

                           <fontcolor="#204D74" size="4">会员注册</font>

                       </div>

                   </div>

                   <formclass="form-horizontal" onsubmit="return checkForm()">

                          <div id="usernameDiv"class="form-group">

                            <label class="col-sm-2control-label">用户名</label>

                            <div class="col-sm-8">

                              <input type="text"class="form-control" id="username"name="username" placeholder="请输入用户名">

                            </div>

                            <label id="usernameMsg"class="col-sm-2 control-label"></label>

                          </div>

                         

                          <div id="passwordDiv"class="form-group">

                            <label class="col-sm-2control-label">密码</label>

                            <div class="col-sm-8">

                              <input type="password"class="form-control" id="password"name="password" placeholder="请输入密码">

                            </div>

                            <label id="passwordMsg"class="col-sm-2 control-label"></label>

                          </div>

                          <div id="repasswordDiv"class="form-group">

                            <label class="col-sm-2control-label">确认密码</label>

                            <div class="col-sm-8">

                              <input type="password"class="form-control" id="repassword" placeholder="请输入确认密码">

                            </div>

                            <label id="repasswordMsg"class="col-sm-2 control-label"></label>

                          </div>

                          <div class="form-group">

                            <label class="col-sm-2control-label">email</label>

                            <div class="col-sm-8">

                              <input type="text"class="form-control" id="email" name="email"placeholder="请输入email">

                            </div>

                          </div>

                          <div class="form-group">

                            <label class="col-sm-2control-label">姓名</label>

                            <div class="col-sm-8">

                              <input type="text"class="form-control" id="name" name="name"placeholder="请输入姓名">

                            </div>

                          </div>

                          <div class="form-group">

                            <label class="col-sm-2control-label">性别</label>

                            <div class="col-sm-8">

                              <input type="radio" name="sex"value="man" checked="checked"/>男

                              <input type="radio"name="sex" value="woman"/>女

                            </div>

                          </div>

                          <div class="form-group">

                            <div class="col-sm-offset-2col-sm-10">

                              <input type="submit" class="btnbtn-danger btn-lg" value=" 注册 "/>

                            </div>

                          </div>

                        </form>

               </div>

            </div>

            <!-- 网站底部 -->

            <div class="row">

               <divclass="col-xs-12">

                   <imgsrc="../img/footer.jpg" width="100%"/>

               </div>

            </div>

            <div class="row">

               <divclass="col-xs-12 text-center">

                   <ulclass="list-inline">

                       <li><ahref="">联系我们</a></li>

                       <li><ahref="">联系我们</a></li>

                       <li><ahref="">联系我们</a></li>

                       <li><ahref="">联系我们</a></li>

                       <li><ahref="">联系我们</a></li>

                       <li><ahref="">联系我们</a></li>

                       <li><ahref="">联系我们</a></li>

                       <li><ahref="">联系我们</a></li>

                       <li><ahref="">联系我们</a></li>

                       <li><ahref="">联系我们</a></li>

                   </ul>

               </div>

            </div>

            <div class="row">

               <divclass="col-xs-12 text-center">

                   Copyright© 2005-2020 黑马商城 版权所有

               </div>

            </div>

           </div>

 </body>

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值