CSS3基础知识

基础知识

1.1 选择器

CSS3新增了许多灵活查找元素的方法,极大的提高了查找元素的效率和精准度CSS3选择器与jQuery中所提供的绝大部分选择器兼容。

1.1.1 属性选择器

其特点是通过属性来选择元素,具体有以下5种形式:

1E[attr] 表示存在attr属性即可;

2E[attr=val] 表示属性值完全等于val

3E[attr*=val] 表示的属性值里包含val字符并且在“任意”位置;

4E[attr^=val] 表示的属性值里包含val字符并且在“开始”位置;

5E[attr$=val] 表示的属性值里包含val字符并且在“结束”位置;

1.1.2 伪类选择器

除了以前学过的:link:active:visited:hoverCSS3又新增了其它的伪类选择器。

1、以某元素相对于其父元素或兄弟元素的位置来获取无素的结构伪类。

重点理解通过E来确定元素的父元素。

E:first-child第一个子元素

向上找到E的父元素,父元素的第一个子元素若为E,则实现选择效果,如果第一个不为E,则没有筛选到任何元素。

E:last-child最后一个子元素

E:nth-child(n) n个子元素,计算方法是E元素的全部兄弟元素;

E:nth-last-child(n) E:nth-child(n) 相似,只是倒着计算;

n遵循线性变化,其取值01234... 但是当n<=0时,选取无效。

n可是多种形式:nth-child(2n+0)nth-child(2n+1)nth-child(-1n+3)等;

需要满足y=ax+b

注:指E元素的父元素,并对应位置的子元素必须是E

nth-of-type

/*nth-of-type 是section里面的1 3 5 7...*/
/*匹配完成section后,在来 拿1 3 5 7.*/

section:nth-of-type(odd){
    
}

        /*
nth-child(index) 是从当前指定的元素去找父元素,拿到父元素下面的所有的子元素,给他们编一个序号
 再从序号中过滤我们要拿到的元素。
 nth-of-type(index) 拿到对应的指定的 类型的元素。
        */

E:empty 选中没有任何子节点的E元素;(使用不是非常广泛)

/*当元内容为空时会被选中*/
/*在某些特定场合灵活使用会带来很好的效果*/
/*学习它的目的只是知道有这个一个特殊的选择器*/
span:empty {
   display: none;
}

2、目标伪类

E:target 结合锚点进行使用,处于当前锚点的元素会被选中;

not();

/*
not()
 拿到没有指定的 类样式 的元素,并且给它设置样式.
*/
li:not(.special){
       background-color:red;
}

1.1.3 伪元素选择器

E::first-letter文本的第一个单词或字(如中文、日文、韩文等);

E::first-line 文本第一行;

E::selection 可改变选中文本的样式;

重点:E::beforeE::after

是一个行内元素,需要转换成块元素

E:afterE:before 旧版本里是伪元素,CSS3的规范里“:”用来表示伪类,“::”用来表示伪元素,但是在高版本浏览器下E:afterE:before会被自动识别为E::afterE::before,这样做的目的是用来做兼容处理。

E:afterE:before后面的练习中会反复用到,目前只需要有个大致了解

":" "::" 区别在于区分伪类和伪元素

/*
注意:
  after、before与content 一起使用!!!
  before 是一个行内元素(默认)
  伪元素使用2个冒号
*/

参考文档

:before::before的区别

https://www.qianduan.net/before-and-before-the-difference-between/

selection

/*
selection 将选中的字体设置样式,但是不支持 font-size
*/

div::selection{
    
    font-size:40px;
    color:red;
}

/*
 first-letter 拿到第一个字体,在设置样式。 常见的效果 首字母下沉
 */
li:first-letter{
    font-size:40px;
}

/* first-line 拿到首行字母(不管浏览器放大缩小,始终是第一行),设置样式  */
   div::first-line{
font-size:40px;
       color:yellow;
   }

1.1.4 对象文字占位

  • ::placeholder 伪元素用于控制表单输入框占位符的外观,它允许开发者/设计师改变文字占位符的样式,默认的文字占位符为浅灰色。
  • 当表单背景色为类似的颜色时它可能效果并不是很明显,那么就可以使用这个伪元素来改变文字占位符的颜色。
  • 需要注意的是,除了Firefox::[prefix]placeholder,其他浏览器都是使用 ::[prefix]input-placeholder
  • Firefox支持该伪元素使用text-overflow属性来处理溢出问题。
<input type="text" placeholder="占位符" />

input::-webkit-input-placeholder {

color: #999;

}

1.1.5 calc()函数值

.test {

width: calc(100% - 50px);

background: #eee;

}

<div class="test">我的宽度为100% - 50px</div>

1.1.6 attr()属性函数

div:after {

content: attr(title);

}

<div title="title"></div>

div.end();找到div前一个元素,就是父级元素

https://www.qianduan.net/before-and-before-the-difference-between/

1.2 颜色

新增了RGBAHSLA模式,其中的A 表示透明度通道,即可以设置颜色值的透明度,相较opacity,它们不具有继承性,即不会影响子元素的透明度。

RedGreenBlueAlphaRGBA

HueSaturation、Lightness、AlphaHSLA

RGB 取值范围0~255

H 色调 取值范围0~3600/360表示红色、120表示绿色、240表示蓝色

S 饱和度 取值范围0%~100%

L 亮度 取值范围0%~100%

A 透明度 取值范围0~1

关于透明度:

1opacity只能针对整个盒子设置透明度,子盒子及内容会继承父盒子的透明度;

2 transparent 不可调节透明度,始终完全透明

border:3px solid transparent;

/*transparent :透明,完全继承父元素的颜色,不能修改透明程度,相当于opacity:0;*/

/*子盒子会继承父盒子的opacity*/

background: hsla(120, 0%, 50%, 1);

RGBAHSLA可应用于所有使用颜色的地方。

1.3 文本

text-shadow,可分别设置偏移量、模糊度、颜色(可设透明度)。

1、水平偏移量 正值向右 负值向左;

2、垂直偏移量 正值向下 负值向上;

3、模糊度是不能为负值;

  

    /*
       text-shadow:
        第一个值,表示水平方向,如果给负数往左边走,如果是正数,往右边
        第二个值,表示垂直方向,正数表是像下,负数表示向上
        第三值,表 模糊程度,不能为负数
        第四个参数:表颜色 可以 red 
gb 
gba
      */
li {
   font-size: 24px;
   line-height: 40px;
   margin: 10px 0;
    text-shadow:1px 1px 10px yellow;
}

1.4 边框

其中边框圆角、边框阴影属性,应用十分广泛,兼容性也相对较好,具有符合渐进增强原则的特征,我们需要重点掌握。

1.4.1 边框圆角

border-radius

圆角处理时,脑中要形成圆、圆心、横轴、纵轴的概念,正圆是椭圆的一种特殊情况。如下图

 

可分别设置长、短半径,以/”进行分隔,遵循“1234”规则,“/”前面的1~4个用来设置横轴半径(分别对应横轴1234位置 ),“/”后面1~4个参数用来设置纵轴半径(分别对应纵轴1234位置 )

border-radius 给一个值,表示四个角
   如果是2个值:第一个值表示,左上,右下。第二个值:右上与左下。
    如果是3个值:第一个值表示左上,第二个值表示 右上与左下,第三个参数表示右下。
    如果是4个值:分别表示左上、右上、右下、左下
     1~4个参数用来设置纵轴半径(分别对应纵轴1234位置
如果是一个值得时候,参数大于半径的,默认会取半径

/:/前的是设置x,后边的是设置y

.border-radius {
   width: 200px;
   height: 200px;
   margin: 100px auto;
   /*border-radius:10px 30px 50px 80px;这种情况就是x=y*/
   /*border-radius: 100px 150px/100px 30px;*/
   /*border-radius:10px 40px  80px  100px;*/
   /*border-radius:40px 50px/ 40px;*/
   border-radius:50PX 100PX 100PX  20PX/ 50PX  70PX;
}

1.4.2 边框阴影

box-shadow

1、水平偏移量 正值向右 负值向左;

2、垂直偏移量 正值向下 负值向上;

3、模糊度是不能为负值;

4inset可以设置内阴影;

设置边框阴影不会改变盒子的大小,即不会影响其兄弟元素的布局。

可以设置多重边框阴影,实现更好的效果,增强立体感。

/*
 box-shadow: 表示盒子的阴影
   第一个参数:水平方向 正数是右边==>, 负数左边 《==
   第二个参数:垂直方式 正数是下边,负数是上边
   第三个参数:模糊程度
   第四参数:颜色
   第五个是:如果加上 inset 之 后是内阴影,否则默认是外阴影
*/


div{
    height:100px;
    width:100px;
    
    margin:2px;
    float:left;
   box-shadow:10px 10px  30px #c0c0c0 ,-10px -20px 10px  red ;
}

1.5 盒模型

CSS3中可以通过box-sizing 来指定盒模型,即可指定为content-boxborder-box,这样我们计算盒子大小的方式就发生了改变。

可以分成两种情况:

1box-sizing: border-box  计算方式为content = width – border - padding

2box-sizing: content-box  计算方式为content = width(默认)

兼容性比较好

1.6 背景

背景在CSS3中也得到很大程度的增强,比如背景图片尺寸、背景裁切区域、背景定位参照点、多重背景等。

1、background-size设置背景图片的尺寸

Background-size:cover/contain/auto/70% 50%/20px 50px;

cover会自动调整缩放比例,保证图片始终填充满背景区域,如有溢出部分则会被隐藏。

contain会自动调整缩放比例,保证图片始终完整显示在背景区域。可能会留空白。

也可以使用长度单位或百分比

 background-size:auto 默认值 只会显示部分,从左上角算起
background-size:100% 100%;给宽与高 进行100%的拉伸显示.完全显示,但是由于图片的比例与盒子的比例不协调,会导致失真

background-size:50px 50px;

2、background-origin设置背景定位的原点

background-origin:border-box/padding-box/content-box;

默认是从border里面,padding

background-origin:border-box;
图片的起点就是border-box
background-origin:content-box;
图片的起点就是content
background-origin:padding-box;
 图片的起点就是padding

border-box以边框做为参考原点;

padding-box以内边距做为参考原点;

content-box以内容区做为参考点;

3background-clip设置背景区域裁切

border-box裁切边框以内为背景区域;

padding-box裁切内边距以内为背景区域;

content-box裁切内容区做为背景区域;

background-clip:padding-box;
只会留下 padding-box 以为的内容作为背景图片
background-clip:content-box;
只会留下 content-box以为的内容作为背景图片
background-clip:border-box; 是默认值,留下边框以内的内容作为背景图片

4、以逗号分隔可以设置多背景,可用于自适应

background: url(./images/bg1.png) left top no-repeat,
         url(./images/bg2.png) right top no-repeat,
         url(./images/bg3.png) right bottom no-repeat,
         url(./images/bg4.png) left bottom no-repeat,
         url(./images/bg5.png) center center no-repeat;

背景图片尺寸在实际开发中应用十分广泛。

1.7渐变

渐变是CSS3当中比较丰富多彩的一个特性,通过渐变我们可以实现许多炫丽的效果,有效的减少图片的使用数量,并且具有很强的适应性和可扩展性。

可分为线性渐变、径向渐变

1.7.1 线性渐变

linear-gradient线性渐变指沿着某条直线朝一个方向产生渐变效果。

<linear-gradient> = linear-gradient([ [ <angle> | to <side-or-corner> ] ,]? <color-stop>[, <color-stop>]+);

<side-or-corner> = [left | right] || [top | bottom]

<color-stop> = <color> [ <length> | <percentage> ]?

取值:

下述值用来表示渐变的方向,可以使用角度或者关键字来设置:

<angle>

用角度值指定渐变的方向(或角度)。

to left:

设置渐变为从右到左。相当于: 270deg

to right:

设置渐变从左到右。相当于: 90deg

to top:

设置渐变从下到上。相当于: 0deg

to bottom:

设置渐变从上到下。相当于: 180deg。这是默认值,等同于留空不写。 

<color-stop> 用于指定渐变的起止颜色:

<color>

指定颜色。

<length>

用长度值指定起止色位置。不允许负值

<percentage>

用百分比指定起止色位置。

 

1、必要的元素:

a、方向

b、起始颜色

c、终止色;

2、关于方向如下图

 

0deg:表示顶部方向 top

90deg 表示右边方向right
180deg表示底部bottom
270deg 表示左边方式left

.bg{
    width:50px;
    height:400px;
    border:1px solid #000;
    background:linear-gradient(135deg, white 25%,black 25%,black  50%, white 50%,white 75%, #000 75%);
    background-size:40px 40px;
    animation:move 4s linear infinite ;
}
@keyframes move{
    from{}
    to{background-position:100px 100px;}
}

1.7.2 径向渐变

语法:

<radial-gradient> = radial-gradient([ [ <shape> || <size> ] [ at <position> ]? , | at <position>, ]?<color-stop>[ , <color-stop> ]+)

<position> = [ <length>① | <percentage>① | left | center① | right ]? [ <length>② | <percentage>② | top | center② | bottom ]?

<shape> = circle | ellipse

<size> = <extent-keyword> | [ <circle-size> || <ellipse-size> ]

<extent-keyword> = closest-side | closest-corner | farthest-side | farthest-corner

<circle-size> = <length>

<ellipse-size> = [ <length> | <percentage> ]{2}

<shape-size> = <length> | <percentage>

<color-stop> = <color> [ <length> | <percentage> ]?

取值:

<position> 确定圆心的位置。如果提供2个参数,第一个表示横坐标,第二个表示纵坐标;如果只提供一个,第二值默认为50%,即center

<percentage>①:

用百分比指定径向渐变圆心的横坐标值。可以为负值。

<length>①:

用长度值指定径向渐变圆心的横坐标值。可以为负值。

left:

设置左边为径向渐变圆心的横坐标值。

center①:

设置中间为径向渐变圆心的横坐标值。

right:

设置右边为径向渐变圆心的横坐标值。

<percentage>②:

用百分比指定径向渐变圆心的纵坐标值。可以为负值。

<length>②:

用长度值指定径向渐变圆心的纵坐标值。可以为负值。

top:

设置顶部为径向渐变圆心的纵坐标值。

center②:

设置中间为径向渐变圆心的纵坐标值。

bottom:

设置底部为径向渐变圆心的纵坐标值。

<shape> 确定圆的类型

circle:

指定圆形的径向渐变

ellipse:

指定椭圆形的径向渐变。

<extent-keyword> circle | ellipse 都接受该值作为 size

closest-side:

指定径向渐变的半径长度为从圆心到离圆心最近的边

closest-corner:

指定径向渐变的半径长度为从圆心到离圆心最近的角

farthest-side:

指定径向渐变的半径长度为从圆心到离圆心最远的边

farthest-corner:

指定径向渐变的半径长度为从圆心到离圆心最远的角

<circle-size> circle 接受该值作为 size

<length>

用长度值指定正圆径向渐变的半径长度。不允许负值。

<ellipse-size> ellipse 接受该值作为 size

<length>

用长度值指定椭圆径向渐变的横向或纵向半径长度。不允许负值。

<percentage>

用百分比指定椭圆径向渐变的横向或纵向半径长度。不允许负值。

<color-stop> 用于指定渐变的起止颜色:

<color>

指定颜色。

<length>

用长度值指定起止色位置。不允许负值

<percentage>

用百分比指定起止色位置。不允许负值

background:radial-gradient(50px at 100px 100px,red 40%,pink 50% ,blue 80% ,yellow);

radial-gradient径向渐变指从一个中心点开始沿着四周产生渐变效果

 

1、必要的元素:

a、辐射范围即圆半径

b、中心点 即圆的中心

c、渐变起始色

d、渐变终止色

2、关于中心点:中心位置参照的是盒子的左上角

3、关于辐射范围:其半径可以不等,即可以是椭圆

1.8 过渡transition

过渡是CSS3中具有颠覆性的特征之一,可以实现元素不同状态间的平滑过渡(补间动画),经常用来制作动画效果。

帧动画:通过一帧一帧的画面按照固定顺序和速度播放。如电影胶片

补间动画:自动完成从起始状态到终止状态的的过渡。

关于补间动画更多学习可查看http://mux.alimama.com/posts/1009

特点:当前元素只要有“属性”发生变化时,可以平滑的进行过渡。

transition-property设置过渡属性

transition-duration设置过渡时间

transition-timing-function设置过渡速度

transition-delay设置过渡延时

transition:all 0.5s 0s linear;

语法

transition: property duration timing-function delay;

描述

transition-property

规定设置过渡效果的 CSS 属性的名称。

none  all  property

transition-duration

规定完成过渡效果需要多少秒或毫秒。

transition-timing-function

规定速度效果的速度曲线。

transition-delay

定义过渡效果何时开始。

transition-timing-function

描述

linear

规定以相同速度开始至结束的过渡效果(等于 cubic-bezier(0,0,1,1))。

ease

规定慢速开始,然后变快,然后慢速结束的过渡效果(cubic-bezier(0.25,0.1,0.25,1))。

ease-in

规定以慢速开始的过渡效果(等于 cubic-bezier(0.42,0,1,1))。

ease-out

规定以慢速结束的过渡效果(等于 cubic-bezier(0,0,0.58,1))。

ease-in-out

规定以慢速开始和结束的过渡效果(等于 cubic-bezier(0.42,0,0.58,1))。

cubic-bezier(n,n,n,n)

cubic-bezier 函数中定义自己的值。可能的值是 0 1 之间的数值。

Steps(number,start/end)

第一个参数指定了时间函数中的间隔数量(必须是正整数)

第二个参数可选,接受 start end 两个值,指定在每个间隔的起点或是终点发生阶跃变化,默认为 end

step-start等同于steps(1,start),动画分成1步,动画执行时为开始左侧端点的部分为开始;

step-end等同于steps(1,end):动画分成一步,动画执行时以结尾端点为开始,默认值为end

1.9 2D转换(transform)

语法

transform: none|transform-functions;

描述

none

定义不进行转换。

matrix(n,n,n,n,n,n)

定义 2D 转换,使用六个值的矩阵。

matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n)

定义 3D 转换,使用 16 个值的 4x4 矩阵。

translate(x,y)

定义 2D 转换。

translate3d(x,y,z)

定义 3D 转换。

translateX(x)

定义转换,只是用 X 轴的值。

translateY(y)

定义转换,只是用 Y 轴的值。

translateZ(z)

定义 3D 转换,只是用 Z 轴的值。

scale(x[,y]?)

定义 2D 缩放转换。

scale3d(x,y,z)

定义 3D 缩放转换。

scaleX(x)

通过设置 X 轴的值来定义缩放转换。

scaleY(y)

通过设置 Y 轴的值来定义缩放转换。

scaleZ(z)

通过设置 Z 轴的值来定义 3D 缩放转换。

rotate(angle)

定义 2D 旋转,在参数中规定角度。

rotate3d(x,y,z,angle)

定义 3D 旋转。

rotateX(angle)

定义沿着 X 轴的 3D 旋转。

rotateY(angle)

定义沿着 Y 轴的 3D 旋转。

rotateZ(angle)

定义沿着 Z 轴的 3D 旋转。

skew(x-angle,y-angle)

定义沿着 X 和 Y 轴的 2D 倾斜转换。

skewX(angle)

定义沿着 X 轴的 2D 倾斜转换。

skewY(angle)

定义沿着 Y 轴的 2D 倾斜转换。

perspective(n)

为 3D 转换元素定义透视视图。

转换是CSS3中具有颠覆性的特征之一,可以实现元素的位移、旋转、变形、缩放,甚至支持矩阵方式,配合即将学习的过渡和动画知识,可以取代大量之前只能靠Flash才可以实现的效果。

1、移动 translate(x, y) 可以改变元素的位置,xy可为负值;

2、缩放 scale(x, y) 可以对元素进行水平和垂直方向的缩放,xy的取值可为小数,不可为负值;

4、旋转 rotate(deg) 可以对元素进行旋转,正值为顺时针,负值为逆时针;

5、倾斜 skew(deg, deg) 可以使元素按一定的角度进行倾斜

6、旋转原点transform-origin:top left;transform-origin:20px  70px;transform-origin:30%  20%;

1.10 3D转换(animation)

语法

animation: name duration timing-function delay iteration-count direction;

描述

animation-name

规定需要绑定到选择器的 keyframe 名称。。

animation-duration

规定完成动画所花费的时间,以秒或毫秒计。

animation-timing-function

规定动画的速度曲线。

animation-delay

规定在动画开始之前的延迟。

animation-iteration-count

规定动画应该播放的次数。

animation-direction

规定是否应该轮流反向播放动画。

13D坐标轴animation

XYZ分别表示空间的3个维度,三条轴互相垂直。如下图

 

2、左手坐标系

伸出左手,让拇指和食指成L形,大拇指向右,食指向上中指指向前方。这样我们就建立了一个左手坐标系,拇指、食指和指分别代表XYZ轴的正方向。如下图

 

3、左手法则

左手握住旋转轴,竖起拇指指向旋转轴正方向,正向就是其余手指卷曲的方向

配置3d环境:给父盒子添加

配置3d环境:给父盒子添加属性

transform-style:preserve-3d;

近大远小效果:(值越大元素越小)

perspective:1000px;

perspective: 1000px;
transform-style: preserve-3d;

/* 背面出现,就隐藏 */
backface-visibility: hidden;

 

1.11 动画

动画是CSS3中具有颠覆性的特征之一,可通过设置多个节点来精确控制一个或一组动画,常用来实现复杂的动画效果。

.bigbox{
    width:300px;
    animation:move  8s 2s linear 3 backwards;
}

animation:第一个参数是动画序列名称;第二个参数是动画完成时间;第三个参数是延时执行时长;第四个是动画执行速度;第五个是动画执行次数,不写默认1;第六个是动画执行完毕后状态。

keyframes : keyframes后面接上一个 定义的动画组名称, 可以将动画组划分100等份
0%{}..100%{}
另外一种
from{} to{}

@keyframes move{
    0%{height:0;}
    100%{height:200px;}
}

@keyframes move{
    from{height:0;}
    to{height:200px;}
}

1、必要元素:

a、通过@keyframes指定动画序列;

b、通过百分比将动画序列分割成多个节点;

c、在各节点中分别定义各属性

d、通过animation将动画应用于相应元素;

2、关键属性

aanimation-name设置动画序列名称

banimation-duration动画持续时间

canimation-delay动画延时时间

danimation-timing-function动画执行速度,linearease、ease-in-out、steps(60)(参数为分多少步完成)ease-inease-out等

eanimation-play-state动画播放状态,runningpaused(暂停)等

fanimation-direction动画播放方向alternate(先正方向再反方向,并交替进行)、reverse(反向)alternate-reverse(先反方向再正方向)、normal

normal: 正常方向
reverse: 反方向运行
alternate: 动画先正常运行再反方向运行,并持续交替运行
alternate-reverse: 动画先反运行再正方向运行,并持续交替运行

ganimation-fill-mode动画执行完毕后状态,forwards(停留在结束状态)backwards(停留在初始状态)等

hanimation-iteration-count动画执行次数,infinite,默认一次

1.12 伸缩布局(display:flex)

参考学习网址:http://blog.csdn.net/liujianhuan0622/article/details/46894857

CSS3在布局方面做了非常大的改进,使得我们对块级元素的布局排列变得十分灵活,适应性非常强,其强大的伸缩性,在响应式开中可以发挥极大的作用。

如下图,学习新的概念:

主轴:Flex容器的主轴主要用来配置Flex项目,默认是水平方向

侧轴:与主轴垂直的轴称作侧轴,默认是垂直方向的

方向:默认主轴从左向右,侧轴默认从上到下

主轴和侧轴并不是固定不变的,通过flex-direction可以互换。

 

1、必要元素:

a、指定一个盒子为伸缩盒子 display: flex,(行内元素可以设置为display:inline-flex;)

b、设置属性来调整此盒的子元素的布局方式 例如 flex-direction

c、明确主侧轴及方向

d、可互换主侧轴,也可改变方向

2、各属性详解

aflex-direction调整主轴方向(默认为水平方向)(该属性写在父元素上) 

 flex-direction: row | row-reverse | column | column-reverse;

bjustify-content调整主轴对齐方式 (给父元素)

   justify-content:flex-start | flex-end | center | space-between | space-around;

calign-items调整侧轴对齐方式(给父元素)

  align-items:flex-start | flex-end | center | baseline | stretch;

baseline:项目的第一行文字的基线对齐stretch(默认是):如果项目未设置高度或设为auto,将占满整个容器的高度

dflex-wrap控制是否换行,默认值 nowarp (写在父元素上)

 flex-wrap:nowrap | wrap | wrap-reverse;

ealign-content堆栈(由flex-wrap产生的独立行)对齐

align-content属性定义了多根轴线的对齐方式,如果项目只有一根轴线,该属性不起作用堆栈排列,可对应用flex-wrap: wrap后产生的换行进行控制

align-content:flex-start | flex-end | center | space-between | space-around | strech;

fflex-flow属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap;(写在父元素上)

flex-flow:<flex-direction> || <flex-wrap>;

gflex控制子项目的缩放比例,给元素本身

flex属性是flex-grow,flex-shrink和flex-basis的简写,默认值为0,1,auto,后两个属性可选

.item{

flex:none 该属性有两个快捷值:auto(1 1 auto)和none(0 0 auto);

}

flex-grow属性定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大,如果所有项目的flex-grow属性都为1,则它们将等分剩余空间;如果一个项目的flex-grow属性为2,其他项目都为1 则前者占据的剩余空间将比其他项目多一倍。

flex-grow:<number>;

flex-shrink属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小,如果所有项目的flex-shrink属性都为1,当空间不足的时候,都将等比例缩小;如果一个项目的flex-shrink属性为0,其他项目都为1 则空间不足时,前者不缩小

flex-shrink:<number>;

flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间main size,浏览器根据这个属性,计算主轴是否有多余空间,它的默认值是auto,即项目的本来大小。它可以设置为跟width或height属性一样的值,则项目将占据固定空间 

flex-basis:<length> | auto;

horder控制子项目的排列顺序,数值越小,排列越靠前,默认为0,如果没有添加此属性,默认排到最前边(给元素本身)

order:<integer>;(整数)

Ialign-self属性允许单个项目有与其他不一样的对齐方式,可覆盖align-items属性,默认值为auto,表示继承父元素的align-items属性, 如果没有父元素,则等同于stretch

.item{

align-self:auto | flex-start | flex-end | center | baseline | strech;

}

此知识点重在理解,要明确找出主轴、侧轴、方向,各属性对应的属性值可参考示例源码

1.13 多列布局

类似报纸或杂志中的排版方式,上要用以控制大篇幅文本。

了解即可,实际意义不大。

      /* 设置成几列 */
      column-count:4;

     /* 列的宽度 */
     column-300px;
       /* 多列的间隙的宽度 */
      column-gap:40px;
      /* 设置间隙的线条 */
      column-rule:2px dashed red;

      /* 横跨所有列  */
      -webkit-column-span:all;

 

原文地址:https://www.cnblogs.com/SPHmomo/p/6913663.html