响应式的css引入方式,响应式布局与bootstrap框架

网页布局方式

1、固定宽度布局:为网页设置一个固定的宽度,通常以px做为长度单位,常见于PC端网页。

2、流式布局:为网页设置一个相对的宽度,通常以百分比做为长度单位。

3、栅格化布局:将网页宽度人为的划分成均等的长度,然后排版布局时则以这些均等的长度做为度量单位,通常利用百分比做为长度单位来划分成均等的长度。

4、响应式布局:通过检测设备信息,决定网页布局方式,即用户如果采用不同的设备访问同一个网页,有可能会看到不一样的内容,一般情况下是检测设备屏幕的宽度来实现。

注:以上几种布局方式并不是独立存在的,实际开发过程中往往是相互结合使用的。

响应式布局

Responsive design,意在实现不同屏幕分辨率的终端上浏览网页的不同展示方式。通过响应式设计能使网站在手机和平板电脑上有更好的浏览阅读体验。屏幕尺寸不一样展示给用户的网页内容也不一样,我们利用媒体查询可以检测到屏幕的尺寸(主要检测宽度),并设置不同的CSS样式,就可以实现响应式的布局。

我们利用响应式布局可以满足不同尺寸的终端设备非常完美的展现网页内容,使得用户体验得到了很大的提升,但是为了实现这一目的我们不得不利用媒体查询写很多冗余的代码,使整体网页的体积变大,应用在移动设备上就会带来严重的性能问题。

响应式布局常用于企业的官网、博客、新闻资讯类型网站,这些网站以浏览内容为主,没有复杂的交互。

响应式开发

什么是响应式开发

在移动互联日益成熟的时候,桌面浏览器上开发的网页已经不能满足移动端的设备的展示和阅读

之前,通常的做法是对移动端单独开发一套特定的版本

但是,如果移动终端设备起来越多的时候赋发成本太大,是因为需要做所有屏幕的适配

响应式开发的目的就是:一个网站能够兼容多种终端

在新建的网站上一般都会使用响应式开发

移动web开发和响应式开发是必须具备的技能

演示响应者页面

响应式开发的原理:媒体查询:

查询媒介,查询到当前屏幕(媒介媒体)的宽度,针对不同的屏幕宽度设置不同的样式来适应不同屏幕。当你重置浏览器大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面。简单说,你可以设置 不同屏幕下面的不同的样式,达到适配不同的屏幕的目的。

实现方式:通过查询screen的宽度来指定某个宽度区间的网页布局。

超小屏幕 (移动设备) w<768px<>

小屏设备 768px-992px 768 <=>

中等屏幕 992px-1200px 992 =< w <1200<>

宽屏设备 1200px以上 w>=12001200<>=>768px<>

CSS 语法

@media mediatype and|not|only (media feature) { CSS-Code;

}

也可以针对不同的媒体使用不同 stylesheets :

媒体类型

值 描述

all 用于所有设备

print 用于打印机和打印预览

screen 用于电脑屏幕,平板电脑,智能手机等。

speech 应用于屏幕阅读器等发声设备

媒体功能

值 描述

device-height 定义输出设备的屏幕可见高度。

device-width 定义输出设备的屏幕可见宽度。

max-device-height 定义输出设备的屏幕可见的最大高度。

max-device-width 定义输出设备的屏幕最大可见宽度。

min-device-width 定义输出设备的屏幕最小可见宽度。

min-device-height 定义输出设备的屏幕的最小可见高度。

max-height 定义输出设备中的页面最大可见区域高度。

max-width 定义输出设备中的页面最大可见区域宽度。

min-height 定义输出设备中的页面最小可见区域高度。

min-width 定义输出设备中的页面最小可见区域宽度。

简单案例说明:控制不同屏幕尺寸下的屏幕背景色

7e1c05f78241b377b434682523070332.gif

800d57e72b50753207f68661afbac106.gif

CSS框架

随着Web应用变的越来越复杂,在大量的开发过程中我们发现有许多功能模块非常相似,比如轮播图、分页、选项卡、导航栏等,开发中往往会把这些具有通用性的功能模块进行一系列封装,使之成为一个个组件应用到项目中,可以极大的节约开发成本,将这些通用的组件缩合到一起就形成了前端框架。

Bootstrap框架:提高web开发效率

Bootstrap简介:当前最流行的前端UI框架(有预制界面组件), Bootstrap 是最受欢迎的 HTML、CSS 和 JS 框架,用于开发响应式布局、移动设备优先的 WEB 项目

Bootstrap,来自 Twitter,是目前很受欢迎的前端框架。Bootstrap 是基于 HTML、CSS、JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷

Bootstrap是基于HTML5和CSS3开发的,它在jQuery的基础上进行了更为个性化和人性化的完善,形成一套自己独有的网站风格,并兼容大部分jQuery插件

为什么 使用Bootstrap:

有自己的生态圈,不断的更新迭代

提供一套简洁,直观,强悍的组件

标准化的html+css编码规范

让开发更简单,提高了开发效率

可以进行自定义扩展

BootStrap的版本了解

2.x.x:兼容性好  / 代码不够简洁,功能不够完善

3.x.x:稳定性好,放弃了IE6-IE7,对IE8的支持一般 /偏向于响应式布局开发,移动设备优先的web项目开发

4.x.x:测试阶段,偏向于响应式,移动设备

BootStrap基本模板

e7858c7076b86c210e418ab57287b0ff.gif

Bootstrap 101 Template

你好,世界!

ed83af66bd5d4cb8a37cea020224dd8a.gif

Bootstarp全局css样式

HTML5 文档类型

0188bde932d63a75d2f3d56c23742697.gif ...

bc9198a60e88100817e006bfde3267e4.gif

移动设备优先

Normalize.css:为了增强跨浏览器表现的一致性,使用了 Normalize.css

BootStrap版心容器—布局容器.

分类:

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

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

针对.container,当屏幕宽度>992px的时候,布局容器宽度为1170px

否则,当宽度>768px的时候,布局容器宽度为970px

当宽度<768px的时候,布局容器宽度为100%(750px)<>768px的时候,布局容器宽度为100%(750px)<>

BootStrap栅格系统

概念:Bootstrap 提供了一套响应式、移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列。栅格系统用于通过一系列的行(row)与列(column)的组合来创建页面布局,你的内容就可以放入这些创建好的布局中

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

你的内容应当放置于“列(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-* 栅格类,就可以创建一个基本的栅格系统,在手机和平板设备上一开始是堆叠在一起的(超小屏幕到小屏幕这一范围),在桌面(中等)屏幕设备上变为水平排列。所有“列(column)必须放在 ” .row 内。

代码:

510cd75eb5d13c66e3a0b5fc8a2c1a9a.gif

.col-md-1

.col-md-1

.col-md-1

.col-md-1

.col-md-1

.col-md-1

.col-md-1

.col-md-1

.col-md-1

.col-md-1

.col-md-1

.col-md-1

------------------------------------------------

.col-md-8

.col-md-4

------------------------------------------------

.col-md-4

.col-md-4

.col-md-4

------------------------------------------------

.col-md-6

.col-md-6

56f702ae21a5f48fe9328ef8effab62a.gif

简单说:栅格系统就是规范了你的column占据的宽度,只不过这个宽度是bootstrap事先规范好了。

栅格系统的意义:移动设备和桌面屏幕:它可以规范在不同尺寸的屏幕下,当前的列占据的宽度。或者说一行可以放置几个列。

代码:

a4fc41592205dbee4001620f74229140.gif

.col-xs-12 .col-md-8

.col-xs-6 .col-md-4

.col-xs-6 .col-md-4

.col-xs-6 .col-md-4

.col-xs-6 .col-md-4

.col-xs-6

.col-xs-6

bae3f42ea004a508a3cce75438ac9a4c.gif

细节:

栅格系统是往上兼容的:意味着小屏幕上的效果在大屏幕上也是可以正常显示的人,但是大屏幕上的设置在小屏幕上却无法正常显示。

Row可以再次嵌套在列中。如果不能填满整列,则默认从左排列,如果超出,则换行展示

栅格系统扩展说明:

嵌套列

代码:

3039e4899ef268f19b2f573450e2e11a.gif

5d5709c446ebf746a727fe3ed2e3987d.gif

列偏移

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

注意:如果偏移前面的列,那么会将当前列后面所有的列都往后偏移

代码:

51aee8820613965d8a4d76893806b86d.gif

1

2

3

293b2711f2cf542c895b314fa829706c.gif

排序

后推:push

前拉:pull

代码

d1342a7d06374ce273caa15913b0ef06.gif

1

2

2b22ab88d77d4b7e8bf93daab887864f.gif

BootStrap文档查看:可以利用bootstrap提供好的一些组件或者js效果来帮助我们快速的完成页面的开发,提高开发的效果。

LESS:LESS 是动态的样式表语言,通过简洁明了的语法定义,使编写 CSS 的工作变得非常简单,本质上,LESS 包含一套自定义的语法及一个解析器。

安装Node.js

1、安装Nodejs环境 Node Package Manager (验证 node -v  npm -v) npm:node packge manager

2、打开控制台(cmd),执行npm install -g less (验证 lessc -v) node packet manager

3、命令行编译 lessc path/xxx.less path/xxx.css

编译

浏览器只能识别CSS,LESS只是用来提升CSS可维护性的一个工具,所最终需要将LESS编译成CSS,然而通过命令行编译效率比较低下,一般都会借助于编辑器来完成编译,以sublime_text为例,sublime_text默认并不支持LESS的编译操作,需要安装插件实现。

1、执行npm install -g less-plugin-clean-css(使用sublime_text才用)

2、ctrl+shit+p打开命令面板

3、输入install package然后回车

4、安装 LESS、lessc、Less2Css三个插件

5、alt+s快捷键即可实现编译

语法

1、变量

格式:@变量名: 值,定义完成后可以重复使用

209d9d26b6c4770da4442a0e71ae951e.gif

@baseColor:#e92323;

a{

color: @baseColor;

}

div{

border: 1px solid @baseColor;

}

fde0f1021ec9cd0d4c9bc72f59bf60aa.gif

2、混合

我们可以像使用函数一样来使用CSS

9fcc7ef7eb08afb334b28bbf140b60cd.gif

/*相当于函数封装*/

.addRadius{ border-radius: 10px; -webkit-border-radius: 10px; -moz-border-radius: 10px;

}

/*定义带参的函数*/

.addRadius(@r){

border-radius: @r;

-webkit-border-radius: @r;

-moz-border-radius: @r;

}

/*可以定义带默认值的参数的函数*/

.addRadius(@r:5px){

border-radius: @r;

-webkit-border-radius: @r;

-moz-border-radius: @r;

}

div{

width: 200px;

height: 200px;

/*.addRadius;*/

/*相当于调用带参的函数*/

//.addRadius(4px)

.addRadius(10px);

}

f3bfeda5a976dfbe8de53923578e981e.gif

3、嵌套

嵌套可以非常方便的管理我们的CSS层级关系

459a89c9b65b088e8fb514d5533242b2.gif

.header{

heught:40px;

nav{ overflow:hidden; a{ display:block; width:100px; height:40px; float:left; } }

}

67e61239544d0ac5f664d86cea2d8f53.gif

浏览器中使用

了解了LESS基本语法后,可以用LESS写编写CSS代码了,但是需要实时的将LESS编译成CSS浏览器才能识别,利用编辑器能够编译,但是效率相对较低。

我们可以引入一个less.js文件,实现实时的解析,而不必每次修改都要编译,最后完成所有开发任务后,再通过编辑器编译成css文件。

1、下载然后引入less.js

2、引入xx.less文件,如:

注意:rel属性必须指定成stylesheet/less,并且styles.less要先于less.js引入。

必须以服务器方式访问,webstrom自带服务器功能也可以使用ghostlab调试工具的服务器。

3d655cb50d58141b50f4c16e32827d51.gif

Bootstrap 101 Template

你好,世界!

89a4939dce0ee9d291a119741c8de659.gif

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值