Bootstrap学习笔记之css样式设计(1)


Posted in Javascript onJune 07, 2016

由于项目需要,所以打算好好学习下bootstrap框架,之前了解一点,框架总体不难,但涉及到的东西还是很多,想要熟练掌握它,还是要多练练。

一、bootstrap是什么?

bs是什么? 即前端页面搭建的标准化框架工具,已经写好了css.js样式,只需要拿来用即可。

怎么用bs呢?主要是通过使用不同的类增加效果,每一种类,对应的功能不同。

bs好处:增加了开发效率,页面设计更加美观,支持响应式开发。下载地址:https://github.com/foreverjiangting/bootstrap

学习文档:http://v3.bootcss.com/getting-started/

二、css样式设计

1.基于Html文档

bootstrap引用了部分html元素,所以头部需写成下面所示的样列。

<!DOCTYPE html> ---包含HTML5文档声明,所有浏览器均开启标准模式
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后!确保支持响应式布局 -->
<title>Bootstrap</title>
[/code][code]<!-- 新 Bootstrap 核心 CSS 文件 --><link rel="stylesheet" href="//cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css"><!-- 可选的Bootstrap主题文件(一般不用引入) --><link rel="stylesheet" href="//cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap-theme.min.css"><!-- jQuery文件。务必在bootstrap.min.js 之前引入 --><script src="//cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script><!-- 最新的 Bootstrap 核心 JavaScript 文件 --><script src="//cdn.bootcss.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
</head>
<body>
<h1>Hello, world!</h1>
</body>
</html>

2.栅格系统布局

通过设置行和列来进行内容的布局。bootstrap把页面设置为12列。通过改变列的数字来进行布局,比如设置三个等宽的列:

<!DOCTYPE html> 
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
 <!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
<title></title>
<link href="css/bootstrap.css" rel="stylesheet">
<link href="css/bootstrap.min.css" rel="stylesheet">
<script src="http://cdn.bootcss.com/jquery/1.11.2/jquery.min.js"></script>
<script src="http://cdn.bootcss.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
</head>
<body>
<!-- 设置栅栏式布局-->
<div class="container"><!--或者container-fluid-->
 <div class="row">  -- col-xs-4 : 指小于768px的小设备
  <div class="col-xs-4">11</div> -- col-sm-4 :指>=768px的设备
  <div class="col-xs-4">22</div> -- col-md-4 :指>=992px设备
  <div class="col-xs-4">33</div> -- col-lg-4 :值1200px设备
 </div>
 <div class="row">
  <div class="col-md-4">11</div>
  <div class="col-md-4">22</div>
  <div class="col-md-4">33</div>
 </div>
 <div class="row">
  <div class="col-sm-4">11</div>
  <div class="col-sm-4">22</div>
  <div class="col-sm-4">33</div>
 </div>
 <div class="row">
  <div class="col-lg-4">11</div>
  <div class="col-lg-4">22</div>
  <div class="col-lg-4">33</div>
 </div>

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

css网格式有四种写法,主要应用于不同设备的分辨率。

2:平移列

使用offset来进行平移。即平移的列数

<div class="container"><!--或者container-fluid-->
 <div class="row">
  <div class="col-xs-4">11</div>
  <div class="col-xs-4">22</div>
  <div class="col-xs-offset-2 col-xs-4">33</div>---指33向右平移了两列
 </div>
 <div class="row">
  <div class="col-md-4">11</div>
  <div class="col-md-4 col-md-offset-2">22</div>
  <div class="col-md-4">33</div>
 </div> 
 <div class="row">
 <div class="col-md-4">11</div>
 <div class="col-md-4 col-md-offset-2">22</div> 
 <div class="col-md-4">33</div> 
 </div> 
</div>
<!-- 平移列-->

效果如下:

Bootstrap学习笔记之css样式设计(1)

33由于平移了两列,不能满足它占4列的要求,于是被挤到下一行开始占据4列。简单来说,相当于将整个div块右移。

Bootstrap学习笔记之css样式设计(1)

3:嵌套列

即在网格列里面再嵌套列。我们对比来看。

<div class="container"><!--或者container-fluid-->
 <div class="row">
  <div class="col-xs-8">
  <div class="col-xs-2">11</div>
  <div class="col-xs-4">22</div>
  <div class="col-xs-2">33</div>
  </div>
 </div>
 <div class="row"> 
  <div class="col-xs-8">11</div>
 </div>
 <div class="row"> 
  <div class="col-xs-4">11</div>
  <div class="col-xs-4">22</div>
  <div class="col-xs-4">33</div>
 </div> 
 
</div>

效果如下:

Bootstrap学习笔记之css样式设计(1)

有没有发现问题?为什么上面的没有平均分配8?
原因:我们来看下调试控制台

.col-xs-1, .col-xs-10, .col-xs-11, .col-xs-12, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9 {
 min-height: 1px;
 padding-left: 15px;
 padding-right: 15px;
 position: relative;
}

发现padding-left 和padding-right均为15px,这是因为,列与列之间存在padding值得影响,那为什么第二个div没有影响呢?我们来探究一下栅栏格的原理。
1.“行(row)”必须包含在 .container (固定宽度)或 .container-fluid (100% 宽度)中,以便为其赋予合适的排列(aligment)和内补(padding)。
2.通过为“列(column)”设置 padding 属性,从而创建列与列之间的间隔(gutter)。通过为 .row 元素设置负值 margin 从而抵消掉为 .container 元素设置的 padding
也就间接为“行(row)”所包含的“列(column)”抵消掉了padding
注意:此时row已经把列的padding给抵消了,所以,没有出现padding的值情况。

4:列排序
主要是使用col-xs-push-* col-xs-pull-*(*表示0-11的数字)如何理解这两个类呢?push表示推,pull表示拉。

<div class="row"> 
  <div class="col-xs-4">21</div>
  <div class="col-xs-8">24</div> 
 </div>
 <div class="row">
 
  <div class="col-xs-4 col-xs-push-8">21</div>
  <div class="col-xs-4 col-xs-pull-4">24</div> 
 
 </div>

效果图如下:

Bootstrap学习笔记之css样式设计(1)

<div class="col-xs-4 col-xs-push-8">21</div>---记为div1
 <div class="col-xs-8 col-xs-pull-4">24</div>---记为div2

即可理解为交换两者位置,需要将div1向右推8列,div2需要向左拉4列。

三、流式网格布局
1.列宽使用百分比,而不是像素
2.将row类换成row-fluid
3.其它基本功能与上面的固定布局一样,支持响应式。
4.平分某一个列时,由于流式布局采用的是百分比,所以应该按照6来计算。

//注意下面这种情况,平分8列时,并不是设置它为两个4,而是两个6,因为bootstrap中是12列栅格分布。
 <div class="row">
 <div class="col-xs-8">
  <div class="col-xs-6">2</div>
  <div class="col-xs-6">2</div>
 
 </div>
 </div>

下面来看一下流式布局的应用,对比固定布局来看。

<!-- 流式布局-->
<div class="container">
 <div class="col-xs-6">333</div>
 <div class="col-xs-6">444</div>
</div>
<div class="container-fluid"> ---声明container-fluid类,表明内容是流式布局,作用:作为一个包含块,来包含流式内容
 <div class="row-fluid">
  <div class="col-xs-6 col-md-12">333</div>
  <div class="col-xs-6 col-md-12">444</div>

 </div>
</div>

<div class="row-fluid"> ----没用声明container和container-fluid类,此时为屏幕的宽度
  <div class="col-xs-6">333</div>
  <div class="col-xs-6">444</div>

</div>

当屏幕小于768px时,效果如下:

Bootstrap学习笔记之css样式设计(1)

当屏幕大于992px时,效果如下:此时独占一行

Bootstrap学习笔记之css样式设计(1)

row-fluid类(非常重要),决定是否是流布局。然后里面的内容块代码编写与网格系统一致,依然是从col-md-1到col-md-12,分别对应于不同的百分比.

Bootstrap学习笔记之css样式设计(1)

四、响应式设计
简单来说就是支持不同设备(手机,PC)的分辨率(960PX,1366PX,978PX等等)进行自适应响应。

<div class="row"> 
  <div class="col-xs-6 col-md-12">21</div>
  <div class="col-xs-6 col-md-12">24</div> 
 
 </div>

当设备小于768px时,效果如下:

Bootstrap学习笔记之css样式设计(1)

当设备>=992px时。效果如下:

Bootstrap学习笔记之css样式设计(1)

上面两种类,分别表示的分辨率不一样。col-md-12此时表示每列独占一行即12列。

如果大家还想深入学习,可以点击这里进行学习,再为大家附3个精彩的专题:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
把字符串按照特定的字母顺序进行排序的js代码
Jan 28 Javascript
javascript简单实现图片预加载
Dec 03 Javascript
在jQuery中使用$而避免跟其它库产生冲突的方法
Aug 13 Javascript
js判断当前页面用什么浏览器打开的方法
Jan 06 Javascript
设计模式中的facade外观模式在JavaScript开发中的运用
May 18 Javascript
jQuery选择器特殊字符与属性空格问题
Aug 14 jQuery
浅谈使用React.setState需要注意的三点
Dec 18 Javascript
React为 Vue 引入容器组件和展示组件的教程详解
May 03 Javascript
解决vue 绑定对象内点击事件失效问题
Sep 05 Javascript
微信开发之企业付款到银行卡接口开发的示例代码
Sep 18 Javascript
深入学习JavaScript中的bom
May 27 Javascript
ES6 async、await的基本使用方法示例
Jun 06 Javascript
jQuery hover事件简单实现同时绑定2个方法
Jun 07 #Javascript
PassWord输入框代码分享
Jun 07 #Javascript
Bootstrap学习笔记之css组件(3)
Jun 07 #Javascript
JavaScript判断数组重复内容的两种方法(推荐)
Jun 06 #Javascript
JavaScript数组的定义及数字操作技巧
Jun 06 #Javascript
浅析$.getJSON异步请求和同步请求
Jun 06 #Javascript
使用RequireJS库加载JavaScript模块的实例教程
Jun 06 #Javascript
You might like
深入array multisort排序原理的详解
2013/06/18 PHP
PHP操作XML中XPath的应用示例
2019/07/04 PHP
javascript call方法使用说明
2010/01/11 Javascript
JavaScript实现的购物车效果可以运用在好多地方
2014/05/09 Javascript
关于两个jQuery(js)特效冲突的bug的解决办法
2016/09/04 Javascript
js 判断数据类型的几种方法
2017/01/13 Javascript
基于JavaScript实现的折半查找算法示例
2017/04/14 Javascript
JavaScript高阶函数_动力节点Java学院整理
2017/06/28 Javascript
React Native时间转换格式工具类分享
2017/10/24 Javascript
layui数据表格重载实现往后台传参
2019/11/15 Javascript
Vue学习之组件用法实例详解
2020/01/06 Javascript
javascript绘制简单钟表效果
2020/04/07 Javascript
jQuery实现鼠标滑动切换图片
2020/05/27 jQuery
Vue初始化中的选项合并之initInternalComponent详解
2020/06/11 Javascript
解决vue单页面多个组件嵌套监听浏览器窗口变化问题
2020/07/30 Javascript
vue-路由精讲 二级路由和三级路由的作用
2020/08/06 Javascript
[43:58]DOTA2-DPC中国联赛定级赛 LBZS vs SAG BO3第一场 1月8日
2021/03/11 DOTA
Python爬虫框架Scrapy实战之批量抓取招聘信息
2015/08/07 Python
python机器学习理论与实战(五)支持向量机
2018/01/19 Python
python 爬虫一键爬取 淘宝天猫宝贝页面主图颜色图和详情图的教程
2018/05/22 Python
Tensorflow 同时载入多个模型的实例讲解
2018/07/27 Python
python 构造三维全零数组的方法
2018/11/12 Python
在Python中Dataframe通过print输出多行时显示省略号的实例
2018/12/22 Python
python 遍历pd.Series的index和value
2019/11/26 Python
Python基于百度AI实现OCR文字识别
2020/04/02 Python
自我推荐信范文
2014/05/09 职场文书
党员个人对照检查材料思想汇报
2014/09/16 职场文书
公务员年度考核个人总结
2015/02/12 职场文书
中学生清明节演讲稿
2015/03/18 职场文书
2015年计生工作总结范文
2015/04/24 职场文书
2015小学教师德育工作总结
2015/05/12 职场文书
力克胡哲观后感
2015/06/10 职场文书
和领导吃饭祝酒词
2015/08/11 职场文书
2016幼儿园教师节新闻稿
2015/11/25 职场文书
python中if和elif的区别介绍
2021/11/07 Python
Pytorch中使用ImageFolder读取数据集时忽略特定文件
2022/03/23 Python