1、flex弹性盒模型

在父容器中添加display:flex;把父容器变为弹性盒模型

作用(写)在flex容器上 作用(写)在flex子项上

flex-direction order

flex-wrap flex-grow

flex-flow flex-shrink

justify-content flex-basis

align-items flex

align-content align-self

*快速写子类的方法:
div.parent>div.box按下tab:
<div class="parent">
<div class="box"></div>
</div>
1、作用在flex容器上的属性:
1、flex-direction:
用来控制子项整体布局方向的,是从左往右还是从右往左,是从上往下还是从下往上。
取值:
row:默认值,显示为行,默认方向为当前文档水平流方向,默认情况下是从左往右
row-reverse:显示为杭,但是方向与row属性值相反
column:显示为列
column-reverse:显示为列,方向与column属性值相反 2、flex-wrap:
用来控制子项整体单行显示还是换行显示
取值:
nowrap:默认值,表示单行显示,不换行
wrap:宽度不足换行显示
wrap-reverse:宽度不足换行显示,但是是从下往上开始,也就是原本换行在下面的子项现在跑到上面 注:子元素不会轻易溢出,而是在无法自动调节大小适应父容器后才溢出。 3、flew-flow
flex-flow属性是flex-direction和flex-wrap的缩写,表示flex布局的flow流动特性,第一个值表示方向,第二个值表示换行,中间用空格隔开。 4、justify-content(针对主轴)
决定了主轴方向上所有子项的对齐和分布方式。
取值:
flex-start:默认值,表现为其实位置对齐
flex-end:表现为结束位置对齐
center:表现为居中对齐
space-between:表现为两端对齐,between是中间的意思,意思是多余的空白间距只在元素中间区域分配
space-around:around是环绕的意思,意思是每个flex子项两侧都环绕互不干扰的等宽的空白间距,最终视觉上边缘两侧的空白只有中间空白宽度一半。
space-evenly:evenly是匀称、平等的意思,也就是视觉上,每个flex子向两侧的空白间距完全相等。 5、align-items(在侧轴方向上操作子容器)
align-items中的items指的就是flex子项们当中的元素,因此align-items指的就是flex子项们相对于flex容器在侧轴方向上的对齐方式。
取值:
stretch:默认值,flex子项拉伸
flex-start:表现为容器顶部对齐
flex-end:表现为容器底部对齐
center:表现为垂直居中对齐 *flex-wrap:wrap;造成的换行会使父容器平均分配(换了多少行就分几份),这就解释了为何换行后两行间距这么大,这是因为,换行后容器分成几份,容器间挨着,容器里面的元素未填满时,乍一看两容器内,元素的间隔很大,其实两容器本身是挨着的 6、align-content(针对侧轴)
决定了侧轴方向上所有子项的对齐和分布方式。
align-content可以看成和justify-content是相似且对立的属性,如果所有flex子项中只有一行,则align-content属性是没有任何效果的
取值:
stretch:默认值,每一行flex元素都等比例拉伸,例如,如果共两行flex元素,则每一行拉伸高度是50%
flex-start:默认值,表现为起始位置对齐
flex-end:表现为结束位置对齐
center:表现为居中对齐
space-between:表现为两端对齐,between是中间的意思,意思是多余的空白间距只在元素中间区域分配
space-around:每一行元素上下都享有独立不重复的空白空间。
space-evenly:每一行元素都完全上下等分 *关于主轴、侧轴,比如在一个长方形盒子中,主轴类似于x轴,从左到右,起点在左(start),终点在右(end)
侧轴类似于Y轴,不过是从上到下,起点在上(start),终点在下(end)。
justify-content(针对主轴上各子容器的分布)
align-content(针对侧轴上各子容器的分布) 2、作用在flex子项上的属性
作用(写)在flex子项上
order:通过设置order改变某一个flex子项的排序位置,所有flex子项的默认order属性值为0(即全部元素都为0,元素按order值从左到右,由小到大排列) flex-grow:扩展就是flex子项所占据的宽度,扩展所侵占的空间就是除去元素外的剩余空白间隙,默认值为0(整个空余空间总大小为1,大于1时,比如一个值为1,一个为2则剩余空间分三份) flex-shrink:shrink是收缩的意思,flex-shrink主要处理当flex容器空间不足时,单个元素的搜索比例,默认值是1(0表示不收缩) flex-basis:定义了在分配剩余空间之前元素的默认大小(有空白空间时给的是确定值,没剩余空间时,由于优先级问题,不能按达到预期的大小),当与width一起写时,优先级高。 flex:flex属性是flex-grow、flex-shrink和flex-basis的缩写,默认值: flex:0 1 auto;(顺序与左边一一对应) 注:flex:1;比flex-grow;优先级高,前者可以覆盖默认宽度,后者不行。
align-self(针对侧轴,align-items是针对多个子项,该属性针对某个具体某某个子项,除此之外功能完全一样):
属性值默认为center(居中),指控制单独某一个flex子项的垂直对齐方式,属性值与align-items相同

2、Grid网格布局

 在父容器中添加display:grid;把父容器变为网格模型 

Grid布局死一个二维的布局方法,纵横两个方向总是同时存在的
作用(写)在grid容器上 作用子啊grid子项上
grid-template-columns grid-column-start
grid-template-rows grid-column-end
grid-template-ares grid-row-start
grid-template grid-row-end
grid-column-gap grid-column
grid-row-gap grid-row
grid-gap grid-area
justify-items justify-self
align-items align-self
place-items place-self
justify-content
align-content
place-content *创建12个div,内容分别为1~12:div{$}*12
1、作用在grid容器上的属性
1、 grid-template-columns 与 grid-template-rows
对网格进行横纵划分,形成二维布局。单位可以是像素,百分比,自适应及fr单位(网格剩余空间比例单位)。
有时候,我们网格的划分是很规律的,如果需要添加多个横纵网格时,可以利用repeat()语法进行简化操作。 创建三行,四列的网格:
grid-template-rows: 100px auto 25%;
grid-template-columns: 100px 100px 200px 100px;
fr分配剩余空间:
均分为三行三列:
grid-template-rows: 1fr 1fr 1fr;(fr的值累加后大于1才撑满剩余空间,与flex-grow的值类似)
grid-template-columns: 1fr 1fr 1fr;
值使用repeat表示(横纵较多且相同的简写方式)
repeat(3,1fr):表示三个大小为1fr的行/列 2、grid-template-ares和grid-template
area是区域的意思,grid-template-area就是给我们的网格划分区域的。此时grid子项只要使用grid-area属性指定其隶属于哪个区.(区域划分不能形成特殊图形) grid-template是以上三个属性的复合写法
分开写法:
grid-template-rows: repeat(3,1fr);
grid-template-columns:repeat(3,1fr);
grid-template-areas:
"a1 a1 a1"
"a2 a2 a3"
"a2 a2 a3";
复合写法:(比较麻烦)
grid-template:
"a1 a1 a1" 1fr
"a2 a2 a3" 1fr
"a2 a2 a3" 1fr
/1fr 1fr 1fr; 3、grid-column-gap和grid-row-gap
这两个属性使用来定义网格中网格间隙的尺寸。
CSS grid-gap属性是该两个属性的复合写法。 grid-gap: 20px 20px;第一个表示横向,第二个为纵向 4、justify-items和align-items
justify-items指定了网格元素的水平(主轴)呈现方式,是水平拉伸显示,还是左中右对齐。align-items制定了网格元素的垂直(侧轴)呈现方式,是垂直拉伸显示,还是上中下对齐。 place-items是这两个属性的复合写法。
place-items: center start;注意顺序,第一个针对纵向,第二个针对水平 取值:
stretch:默认值,拉伸。表现水平或垂直填充
start:表现为容器左侧或顶部对齐(即主轴或侧轴的起点)
end:表现为容器右侧或底部对齐(即主轴或侧轴的终点)
center:表现为水平或垂直居中对齐。 5、justify-content和align-content
justify-content指定了网格元素的水平分布方式。align-content指定了网格元素的垂直分布方式。place-content是这两种属性的复合写法。
place-content: center start;同样值的顺序为纵横 取值:
stretch:默认值,拉伸,表现为水平或者垂直填充
start:表现为容器左侧或顶部对齐
end:表现为容器右侧或底部对齐
center:表现为水平或垂直居中对齐。
space-between:表现为两端对齐
space-around:享有独立不重叠打的空白空间
space-evenly:平均分配空白空间 *justify-content与justify-items的区别(务必弄清楚区别)
justify-content针对的是整个网格在容器内的排列。
justify-items针对的是每个网格里面元素的排列。 2、作用在grid子项上的属性
1、grid-column-start表示子项起始纵线是那一条, grid-column-end表示的是子项结束纵线是哪一条
定义网格是每一条线都是有序号的,横线,从上往下从1开始;纵线从左往右,从1开始
grid-column-start: 2;
grid-column-end: 3;(定义子项容器区域为第二条纵线到第三条纵线)
*简写grid-column:2/3;斜线前表示起始位置,斜线后表示结束为止 2、grid-row-start表示子项起始的横线是那一条, grid-row-end表示的是子项结束横线是哪一条
grid-row-start: 2;
grid-row-end: 3;(定义子项容器区域为第二条横线到第三条横线)
grid-row-end: span 2;(span表示结束地方占两个网格)
*简写grid-row:2/3;或者grid-row:2/span 3;斜线前表示起始位置,斜线后表示结束为止 3、grid-area:表示当前网格所占的区域,有名字和位置两种表示方法。
位置表示法: grid-area: 3/2/4/4;分别表示,横线起始位置、纵线起始位置、横线结束位置、纵线结束位置。 4、justify-self:针对单个网格元素的水平(主轴)对齐方式;align-self:单个网格元素的垂直(侧轴)对齐方式
复合写法: place-self: start end;值的顺序为纵横

3、移动端模拟器

切换平台之后一定要重新刷新浏览器

4、去访问一些网站的PC端和移动端

大一点的公司都是分开开发的,PC端一套代码,移动端一套代码

访问淘宝-->后端检测当前设备->如果是PC端->www.taobao.com
访问淘宝-->后端检测当前设备->如果是移动端->www.taobao.com重定向->h5.m.taobao.com

5、viewport视口?

在移动端viewport视口就是浏览器显示页面内容的屏幕区域,在viewport中有两种视口,分别表示为,visual viewport(可视视口)和layout viewport(布局视口)

    visual viewport大小固定跟屏幕大小相同,在上面,而Layout viewport可改变大小,在下面。Layout viewport默认大小为980像素,可通过document.documentElement.clientWidth获取

    现代王爷需要将layout viewport设置成visual viewport等同的大小,方便进行网页制作。

viewport设置成
通过<meta>标签进行设置,name属性指定viewport的值,content属性进行视口配置。
取值:
width:设置layout viewport的宽度特定值,deice-width表示设备宽
height:设置layout-viewport的高度特定值,一般不进行设置
initial-scale:设置页面的初始缩放
minimum-scale:设置页面的最小缩放
maximum-scale:设置页面的最大缩放
user-scalable:设置页面是否可以进行缩放(应禁止no) 例如:做移动端网页时一定要加下面这句代码
<meta name="viewport" content="width=device-width, initial-scale=1.0,user-scalable=no">

6、移动端的适配方案

1、百分比布局,也叫流式布局(随着屏幕的变大,容器间的间隔会变大)。代表网站:优酷、百度、天猫、腾讯。
好处:大屏幕下显示更多的内容;
坏处:宽屏比例下会有一点不协调 2、等比缩放布局,也叫作rem布局(随着屏幕的变大,容器间的间隔不会变)。代表网站:网页、爱奇艺、淘宝、美团。
rem布局:
单位:
em:是一个相对的单位,1em等于当前元素或者父元素的font-size值
rem:是一个相对单位,1rem等于根元素的font-size值
vw/vh:把屏幕分成100份,1vw等于屏幕宽的1%
动态设置font-size的值:
通过JS
通过vw:
vw:把屏幕分成100份,屏幕宽等于100vw
iphone 375 则1vw->3.75
iphone plus 414 则1vw->4.14 如果在iphone下想得到100px,则应该设置多少个vw呢?(100/3.75)
有插件可以解决px到rem的换算问题 注:使用rem布局时要给body重置一下font-size:16px;否则字体会过大
例子:先添加如下样式:
html{font-size: 26.66667vw;}
body{font-size: 16px;}
在通过插件设置每1rem=100px(对应的尺寸)
再选中相关样式:alt+z把其中的px单位转化为rem单位

HTML与CSS学习笔记(6)的更多相关文章

  1. CSS学习笔记

    CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...

  2. HTML+CSS学习笔记 (7) - CSS样式基本知识

    HTML+CSS学习笔记 (7) - CSS样式基本知识 内联式css样式,直接写在现有的HTML标签中 CSS样式可以写在哪些地方呢?从CSS 样式代码插入的形式来看基本可以分为以下3种:内联式.嵌 ...

  3. HTML+CSS学习笔记 (6) - 开始学习CSS

    HTML+CSS学习笔记 (6) - 开始学习CSS 认识CSS样式 CSS全称为"层叠样式表 (Cascading Style Sheets)",它主要是用于定义HTML内容在浏 ...

  4. HTML+CSS学习笔记(5)- 与浏览者交互,表单标签

    HTML+CSS学习笔记(5)- 与浏览者交互,表单标签 1.使用表单标签,与用户交互 网站怎样与用户进行交互?答案是使用HTML表单(form).表单是可以把浏览者输入的数据传送到服务器端,这样服务 ...

  5. HTML+CSS学习笔记(4) - 认识标签(3)

    HTML+CSS学习笔记(4) - 认识标签(3) 1.使用<a>标签,链接到另一个页面 使用<a>标签可实现超链接,它在网页制作中可以说是无处不在,只要有链接的地方,就会有这 ...

  6. HTML+CSS学习笔记(3)- 认识标签(2)

    HTML+CSS学习笔记(3)- 认识标签(2) 1.使用ul,添加新闻信息列表 在浏览网页时,你会发现网页上有很多信息的列表,如新闻列表.图片列表, 这些列表就可以使用ul-li标签来完成.ul-l ...

  7. HTML+CSS学习笔记(2) - 认识标签(1)

    HTML+CSS学习笔记(2) - 认识标签(1) 1.语义化,让你的网页更好的被搜索引擎理解 标签的用途: 我们学习网页制作时,常常会听到一个词,语义化.那么什么叫做语义化呢,说的通俗点就是:明白每 ...

  8. HTML+CSS学习笔记(1) - Html介绍

    HTML+CSS学习笔记(1) - Html介绍 1.代码初体验,制作我的第一个网页 <!DOCTYPE HTML> <html> <head> <meta ...

  9. css学习笔记四

    广州天气变冷了,css学习笔记还是要总结. 总结: 1:几米页面静态页面主要是一列结构头部banner图,mainbody部分放文字内容和图书图片,底部是页面的版权信息 2:腾讯软件中心静态页面制作( ...

  10. CSS学习笔记:溢出文本省略(text-overflow)

    原文:CSS学习笔记:溢出文本省略(text-overflow) 在CSS3中,text-overflow属性的基本语法如下: clip:表示不显示省略文本,简单的裁切. ellipsis:表示对象文 ...

随机推荐

  1. vue自定义指令笔记

    https://cn.vuejs.org/v2/guide/custom-directive.html 在vue中,有时候我们会把抽象的方法封装为一个自定义指令,多个地方共用 比如:拖拽指令 < ...

  2. verilog 基础知识

    mealy型状态机的下一状态和输出取决于当前状态和当前输入: moore型状态机的下一状态和输出取决于当前状态和当前输入,但其输出仅取决于现在的状态: 基本门原语的输出端口必须写在端口列表的前面,基本 ...

  3. seq参数 RANDOM 参数 openssl参数 cut参数

    #seq命令用于以指定增量从首数开始打印数字到尾数 语法: [2] seq [选项] 首数 尾数 [3] seq [选项] 首数 增量 尾数选项: seq 实例 一 存入数据库 然后 输出数据库的代码 ...

  4. 【转】Java中的关键字 transient

    阅读目录 先解释下Java中的对象序列化 关于transient关键字 举个例子 参考资料 先解释下Java中的对象序列化 在讨论transient之前,有必要先搞清楚Java中序列化的含义: Jav ...

  5. Codeforces Round #599 (Div. 1) B. 0-1 MST 图论

    D. 0-1 MST Ujan has a lot of useless stuff in his drawers, a considerable part of which are his math ...

  6. Codeforces Round #599 (Div. 1) A. Tile Painting 数论

    C. Tile Painting Ujan has been lazy lately, but now has decided to bring his yard to good shape. Fir ...

  7. 初学者用js做的计算题

    1.苹果3元一个,鸭梨2元一个,桃子1元一个.现在想用200元买100个水果,在控制台中打印出来. var apple = 0; //苹果 var pear = 0; //梨 var peach = ...

  8. 前端优化,包括css,jss,img,cookie

    前端优化,来自某懒观看麦子学院视频的笔记. 尽可能减少HTTP的请求数 使用CDN 添加Expirs头,或者Cache-control Gzip组件压缩文件内容 将CSS放在页面上方 将脚本放到页面下 ...

  9. python多项式求解

    例如:p(x) = x3 - 3x+5 可以使用向量P=[1,0,-3,5]表示,向量长度减一表示多项式最高项次数. 从右到左分别是变量x的0次幂.1次幂.2次幂……n次幂. 这里可以使用numpy的 ...

  10. java基础(14):Eclipse、面向对象、自定义数据类型的使用

    1. Eclipse的应用 1. 常用快捷操作 Ctrl+T:查看所选中类的继承树 例如,在下面代码中,选中Teacher类名,然后按Ctrl+T,就会显示出Teacher类的继承关系 //员工 ab ...