核心:使用媒体查询针对不同宽度的设备进行布局和样式的设置,从而适配不同设备的目的。
媒体查询区间的写法 当屏幕宽度<=768,body的背景颜色是黄色 max-width:屏幕宽度小于等于某个尺寸 min-width: 屏幕宽度大于等于某个尺寸
移动端 先写公共样式,建议从小到大写:移动端优先 min-width pc端 先写公共样式,建议从大到小写:移动端优先 max-width
父容器版心的尺寸划分
超小屏幕(手机,小于 768px):宽度为 100%小屏幕(平板,大于等于 768px,小于992):宽度为 750px中等屏幕(桌面显示器,大于等于 992px ,小于1200):宽度为 970px大屏幕(大桌面显示器,大于等于 1200px):宽度为 1170pxpc端优先! max-width:1200px width:970px 一定是最大值为不超过上一个的数据,但是实际宽度为970px max-width:992px width:750px 一定是最大值为不超过上一个的数据,但是实际宽度为750px 下面以此类推
先写版心 公共布局 pc端优先,其他特殊样式覆盖掉pc端样式 .container { width: 1170px; margin: 0 auto; } 这里边距1% .container div { float: left; width: 23%; margin: 1%; height: 200px; } @media (max-width: 1200px) { .container { width: 970px; } .container div { width: 31%; } } @media (max-width: 992px) { .container { width: 768px; } .container div { width: 40%; } } @media (max-width: 768px) { .container { width: 100%; } .container div { width: 80%; } }难点:1.类名很多 2.你要知道它写的啥 3.主要讲了按钮,表格,表单 4.修改属性一般要给Li或者其他的父元素
Bootstrap 使用四步曲:
创建文件夹结构创建 html 骨架结构引入相关样式文件 !!! 前面两个是js文件,jquery一定要在上面,不然会出问题 < scriptsrc=" jquery.min.js"> </scriptsrc> < scriptsrc=" bootstrap.min.js"> </scriptsrc> <!-- Bootstrap 核心样式--> <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">书写内容 直接拿Bootstrap 预先定义好的样式来使用
修改Bootstrap 原来的样式,注意权重问题
学好Bootstrap 的关键在于知道它定义了哪些样式,以及这些样式能实现什么样的效果
这里是移动端优先!!!
移动端 0-768px 没有写默认100% pad 768-992px 750px 小pc 992-1200px 970px 大Pc >1200 1170px 左右各有15px的内边距Bootstrap 需要为页面内容和栅格系统包裹一个 .container 或者.container-fluid 容器,它提供了两个作此用处的类。
.container-fluid
流式布局容器 100%宽度占据全部视口(viewport)的容器。给边框,颜色和背景颜色一样,这样距离效果就出来了
如果lg.md,sm,xs都写了 ,那就需要从小到大去覆盖
按照不同屏幕划分为1~12 等份行(row)有左右-15px的外边距, 可以去除父容器左右padding:15px边距xs-extra small:超小; sm-small:小; md-medium:中等; lg-large:大;列(column)大于 12,多余的“列(column)”所在的元素将被作为一个整体另起一行排列每一列默认有左右15像素的 padding可以同时为一列指定多个设备的类名,以便划分不同份数 例如 class=" col-lg-3 col-md-4 col-sm-6 col-xs-12"栅格系统内置的栅格系统将内容再次嵌套。简单理解就是一个列内再分成若干份小列。我们可以通过添加一个新的 .row 元素和一系列 .col-sm-* 元素到已经存在的 .col-sm-*元素内。 最好再给一行row,取消container的padding值,并且让里面的子元素自动和父级一样高
<!-- 列嵌套 --> <div class="col-sm-4"> <div class="row"> <div class="col-sm-6">小列</div> <div class="col-sm-6">小列</div> </div> </div>不占位置! hidden-xs,sm,md,lg只再某个屏幕尺寸隐藏,其他屏幕显示 visible-xs,sm,md,lg只在某个屏幕上显示,其他屏幕隐藏
使用 .col-md-offset-* 类可以将列向右侧偏移。这些类实际是通过使用 * 选择器为当前元素增加了左侧的边距(margin)。
<!-- 列偏移 --> <div class="row"> <div class="col-lg-4">1</div> <div class="col-lg-4 col-lg-offset-4">2</div> </div>通过使用 .col-md-push-数字 和 .col-md-pull-数字, 类就可以很容易的改变列(column)的顺序。
<!-- 列排序 --> <div class="row"> <div class="col-lg-4 col-lg-push-8">左侧</div> <div class="col-lg-8 col-lg-pull-4">右侧</div> </div>1.visible-xx显示<span class="visible-lg">我来啦</span> 2.hidden-xx隐藏<div class="col-lg-3 hidden-sm">我会突然消失</div>
Bootstrap 使用四步曲:
创建文件夹结构
创建 html 骨架结构
引入相关样式文件
书写内容
container宽度修改
因为本效果图采取 1280的宽度, 而Bootstrap 里面 container宽度 最大为 1170px,因此我们需要手动改下container宽度
/* 利用媒体查询修改 container宽度适合效果图宽度 */ @media (min-width: 1280px) { .container { width: 1280px; } }这个项目的重点: 1.利用bootstrap,分配列 2.利用媒体查询,调整不同宽度下的内容分布 3.在不同宽度下使用hidden-xs 和visible-xs来隐藏和显示不同的内容
比如Jd手机版,淘宝触屏版,苏宁手机版
比如三星手机官网
建议:选取一种为主要技术选型,其他技术为辅助,这种混合技术开发
