Bootstrap复习二——栅格系统(form表单示例)

1.关于低版本的IE浏览器兼容性问题的解决:

<!--[if lt IE 9]>            //注意:这部分不是注释
<script src="//cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="//cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
上面的代码注释后显示是这样的:

<!--&lt;!&ndash;[if lt IE 9]>-->
<!--<script src="//cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js"></script>-->
<!--<script src="//cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>-->
<!--<![endif]&ndash;&gt;-->
注意红色部分的内容

2.栅格系统:

1)Bootstrap 提供了一套响应式、移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列。

2)行(row)”必须包含在 .container (固定宽度)或 .container-fluid (100% 宽度)中,以便为其赋予合适的排列(aligment)和内补(padding)。

3)内容必须放在列(column)里面,而列放在行(row)里面。

4)如果一“行(row)”中包含了的“列(column)”大于 12,多余的“列(column)”则会掉下来到下一行,即作为一个整体另起一行排列。

栅格参数

通过下表可以详细查看 Bootstrap 的栅格系统是如何在多种屏幕设备上工作的。

  超小屏幕 手机 (<768px) 小屏幕 平板 (≥768px) 中等屏幕 桌面显示器 (≥992px) 大屏幕 大桌面显示器 (≥1200px)
栅格系统行为 总是水平排列 开始是堆叠在一起的,当大于这些阈值时将变为水平排列C
.container 最大宽度 None (自动) 750px 970px 1170px
类前缀 .col-xs- .col-sm- .col-md- .col-lg-
列(column)数 12
最大列(column)宽 自动 ~62px ~81px ~97px
槽(gutter)宽 30px (每列左右均有 15px)
可嵌套
偏移(Offsets)
列排序
示例代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>栅格系统</title>
    <link href="bootstrap-3.3.5-dist/css/bootstrap.min.css" rel="stylesheet">
    <script src="bootstrap-3.3.5-dist/js/jquery-1.11.3.min.js"></script>
    <script src="bootstrap-3.3.5-dist/js/bootstrap.min.js"></script>
</head>
<body>
  <div class="container">
      <div class="row" style="margin:50px auto;">
          <div class="col-lg-4" style="height: 500px;border: #97ff9b solid 1px;padding: 10px;">
              《飞鸟集[1]》是泰戈尔的代表作之一,具有很大的影响,在世界各地被译为多种中文字版本,是最早被译为
              中文版本的泰戈尔[2]作品之一,包括了三百余首清丽的小诗。这些诗歌描写小草,流萤,落叶,飞鸟,山水,河流。简短的诗句如
              同阳光撒落在挂着水珠的树叶上,又如天边几朵白云在倘翔,一切都是那样地清新,亮丽,可是其中韵味却很厚实,耐人寻味。
          </div>
          <div class="col-lg-6" style="height: 500px;border: #97ff9b solid 1px; padding: 10px">
              《飞鸟集[1]》是泰戈尔的代表作之一,具有很大的影响,在世界各地被译为多种中文字版本,是最早被译为
              中文版本的泰戈尔[2]作品之一,包括了三百余首清丽的小诗。这些诗歌描写小草,流萤,落叶,飞鸟,山水,河流。简短的诗句如
              同阳光撒落在挂着水珠的树叶上,又如天边几朵白云在倘翔,一切都是那样地清新,亮丽,可是其中韵味却很厚实,耐人寻味。
          </div>
      </div>
  </div>
</body>
</html>
运行效果:


3.列偏移

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

示例代码:

<body>
  <div class="container">
      <div class="row" style="margin:50px auto;">
          <div class="col-lg-4" style="height: 500px;border: #97ff9b solid 1px;padding: 10px;">
              《飞鸟集[1]》是泰戈尔的代表作之一,具有很大的影响,在世界各地被译为多种中文字版本,是最早被译为
              中文版本的泰戈尔[2]作品之一,包括了三百余首清丽的小诗。这些诗歌描写小草,流萤,落叶,飞鸟,山水,河流。简短的诗句如
              同阳光撒落在挂着水珠的树叶上,又如天边几朵白云在倘翔,一切都是那样地清新,亮丽,可是其中韵味却很厚实,耐人寻味。
          </div>
          <div class="col-lg-6 col-md-offset-2" style="height: 500px;border: #97ff9b solid 1px; padding: 10px">
              娜塔丽·波特曼,本名娜塔莉·赫许勒(Natalie Hershlag,198169-),出生于 以色列耶路撒冷,美国女演员。13岁时,她
              出演 《这个杀手不太冷》的女主角,开始了一边读书一边拍戏的生涯。1997年,波特曼以《管到太平洋》片中安·奥格斯特一角获得
              金球奖最佳女配角的提名。1999年,成年后的她凭借 《星球大战》三部曲 帕德梅·艾米达拉女王一角...
          </div>
      </div>
  </div>
</body>
运行效果:



4.所有设置了.form-control 类的 <input>、<textarea> 和 <select> 元素都将被默认设置宽度属性为 width: 100%;。 

但是在

<input type="file">

中就没有必要添加了,添加之后效果反而会不好。因为文件按钮没必要添加一个100%的外框。

将 label 元素和前面提到的控件包裹在 .form-group 中可以获得最好的排列。
5.内联单选和多选框
通过将 .checkbox-inline 或 .radio-inline 类应用到一系列的多选框(checkbox)或单选框(radio)控件上,可以使这些控件排列在一行。
示例代码:
(来自bootstrap官网)

<label class="checkbox-inline">
  <input type="checkbox" id="inlineCheckbox1" value="option1"> 1
</label>
注意:input标记放在label标签里面,id和value属性可以不写。 type="checkbox"

<label class="checkbox-inline">
  <input type="checkbox" id="inlineCheckbox2" value="option2"> 2
</label>
<label class="checkbox-inline">
  <input type="checkbox" id="inlineCheckbox3" value="option3"> 3
</label>

<label class="radio-inline">
  <input type="radio" name="inlineRadioOptions" id="inlineRadio1" value="option1"> 1
</label>
注意:input标记放在label标签里面,class="radio-inline"放在label标签里面。在input标签中
id和value属性可以不写,name属性的值保持一致,type="radio"。
<label class="radio-inline"> <input type="radio" name="inlineRadioOptions" id="inlineRadio2" value="option2"> 2</label><label class="radio-inline"> <input type="radio" name="inlineRadioOptions" id="inlineRadio3" value="option3"> 3</label>

6.Button的默认样式以及大小的设定
1) 为 <a>、<button> 或 <input> 元素添加按钮类(button class)即可使用 Bootstrap 提供的样式。
<a class="btn btn-default" href="#" role="button">Link</a>
<button class="btn btn-default" type="submit">Button</button>
<input class="btn btn-default" type="button" value="Input">
<input class="btn btn-default" type="submit" value="Submit">
2)Button 的预定义样式: 可以通过class="btn btn-default"、class="btn btn-primary"等来设置button的背景色
3) 使用 .btn-lg.btn-sm 或 .btn-xs 就可以获得不同尺寸的按钮。

7.Label标签可以获得光标

8.水平排列的表单:

过为表单添加 .form-horizontal 类,并联合使用 Bootstrap 预置的栅格类,可以将 label 标签和控件组水平并排布局。这样做将改变 .form-group 的行为,使其表现为栅格系统中的行(row),因此就无需再额外添加 .row 了。

如下代码:

<form class="form-horizontal">
  <div class="form-group">
    <label for="inputEmail3" class="col-sm-2 control-label">Email</label>
    <div class="col-sm-10">
      <input type="email" class="form-control" id="inputEmail3" placeholder="Email">   
//这里的input标签要放在div里面,在div里面才可以添加类class="col-sm-10",不能直接在input标签里面添加
    </div>
  </div>
</form>

9..control-label  :默认情况下文字采用右对齐

水平式(参考链接:http://bootstrap.kinghack.com/base-css.html)

右对齐的标签和左浮动, 使它们在同一行一一对照. 需要从默认的表格中改动一些的标记:

  • 在表格添加 .form-horizontal
  • 把标签和控件包含在 .control-group
  • 在标签添加 .control-label
  • 为任何关联的控件添加 .controls 来确保位置正确
效果及代码:


10.列偏移

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


11.完整表单代码示例及运行效果:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Form练习</title>
    <link href="bootstrap-3.3.5-dist/css/bootstrap.min.css" rel="stylesheet">
    <script src="bootstrap-3.3.5-dist/js/jquery-1.11.3.min.js"></script>
    <script src="bootstrap-3.3.5-dist/js/bootstrap.min.js"></script>

</head>
<body>
<div class="container" style="margin-top: 50px">
    <form class="form-horizontal">          <!--class="form-horizontal"-->
        <div class="form-group">
            <label for="username" class="col-lg-2 control-label ">用户名:</label>            <!--control-label-->
            <div class="col-lg-10">
                <input type="text" id="username" class="form-control" placeholder="请输入用户名"> <!--form-control-->
            </div>
        </div>
        <div class="form-group">
            <label for="password" class="col-lg-2 control-label ">密码:</label>
            <div class="col-lg-10">
                <input type="password" class="form-control" id="password" placeholder="请输入密码">
            </div>
        </div>
        <div class="form-group">
            <label class="col-lg-2 control-label">上传图片:</label>
            <div class="col-lg-10">
                <input type="file">
            </div>
        </div>
        <div class="form-group">
            <label class="col-lg-2 control-label">兴趣爱好:</label>
            <div class="col-lg-10">
                <label class="checkbox-inline"><input type="checkbox">唱歌</label><!--<label class="checkbox-inline">-->
                <label class="checkbox-inline"><input type="checkbox">运动</label>
                <label class="checkbox-inline"><input type="checkbox">看书</label>
                <label class="checkbox-inline"><input type="checkbox">下棋</label>
                <label class="checkbox-inline"><input type="checkbox">购物</label>
                <label class="checkbox-inline"><input type="checkbox">电影</label>
            </div>
        </div>
        <div class="form-group">
            <label class="col-lg-2 control-label">学历:</label>
            <div class="col-lg-10">
                <label class="radio-inline"><input type="radio" name="radio">中学</label> <!--radio-inline、还没解决只能选一个的问题-->
                <label class="radio-inline"><input type="radio" name="radio">大专</label>
                <label class="radio-inline"><input type="radio" name="radio">本科</label>
                <label class="radio-inline"><input type="radio" name="radio">硕士</label>
                <label class="radio-inline"><input type="radio" name="radio">博士</label>
            </div>
        </div>
        <div class="form-group">
            <label class="col-lg-2 control-label">个人简介:</label>
            <div class="col-lg-10">
                <textarea placeholder="请输入个人简介" rows="8" class="form-control"></textarea>
                <!--<input type="text" placeholder="请输入个人简介">-->
            </div>
        </div>
        <div class="col-lg-10 col-lg-offset-2">
            <button class="btn btn-success btn-lg">提交</button>
        </div>

    </form>
</div>
</body>
</html>

运行效果:


  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值