CSS3及页面布局
CSS3新特性 1.边框 border-radius:用于创建圆角 #border { width: 100px; height: 100px; background-color: red; border-radius: 5px; }
2.盒子阴影
box-shadow:用来添加阴影
box-shadow:阴影类型 水平阴影位置 垂直阴影位置 阴影模糊距离 阴影大小 阴影颜色;
box-shadow: inset 2px 2px 2px 2px red;
3.渐变
1.线性渐变—Linear Gradients:
颜色沿着一条直线过渡:从左到右、从右到左、从上到下等
linear-gradient(渐变方向, 颜色1, yanse2, ..., 颜色n)
2.径向渐变—Radial Gradients:
圆形或椭圆形渐变,颜色不再沿着一条直线变化,而是从一个起点朝所有方向混合
radial-gradient(center, shape size, start-color, ..., last-color)
4.文本效果
1.text-shadow:向文本添加阴影
![](/img/text_shadow.png)
2.text-overflow:当文本溢出包含元素时发生的事情
white-space:nowrap 文本不会换行,在同一行继续
overflow:hidden 元素溢出部分隐藏
text-overflow:ellipsis 用省略号来代表被修剪的文本
5.字体
@font-face
{
font-family: 必需。规定字体的名称
src: 必需。定义字体文件的 URL
font-weight: 可选。定义字体的粗细。默认是 "normal"
font-style: 可选。定义字体的样式。默认是 "normal"
}
6.变形
CSS3 变形是一些效果的集合。如平移、旋转、缩放、倾斜效果;
每个效果都可以称为变形(transform),它们可以分别操控元素发生平移、旋转、缩放、倾斜等变化
/*transform-function是一个变形函数,可以是一个,也可以是多个,中间以空格分开*/
transform:[transform-function];
1.平移
translate(x, y):平移函数,基于X、Y坐标重新定位元素的位置
translateX(x):表示只设置X轴的位移
translateY(y):表示只设置Y轴的位移
2.2D缩放
scale(x, y):缩放函数,可以使任意元素对象尺寸发生变化。当该函数只接收一个值时,表示同时设置X与Y的值
scaleX(x):表示只设置X轴的缩放
scaleY(y):表示只设置Y轴的缩放
3.旋转
rotate(degree):旋转函数,取值是一个度数值。
参数degree单位使用deg表示,参数degree取正值时元素相对原来中心顺时针旋转
4.倾斜
skew(x, y):倾斜函数,取值是一个度数值。
skewX(x):表示只设置X轴的倾斜
skewY(y):表示只设置Y轴的倾斜
7.过渡
transition呈现的是一种过渡,是一种动画转换的过程,如渐现、渐弱、动画快慢等
CSS3 transition的过渡功能通过一些 CSS 的简单动作触发样式平滑过渡
transition:[transition-property
transition-duration
transition-timing-function
transition-delay ]
![](/img/transition.png)
过渡效果的出发时机
1.伪类触发: :hover :active :focus :checked
2.媒体查询:通过@media属性判断设备的尺寸,方向等
3.JavaScript触发:用JavaScript脚本触发
8.媒体查询
@media mediatype and|not|only (media feature)
{
CSS-Code;
}
![](/img/media.png)
网格布局 如上图,网格布局就是指通过水平和垂直创建的一种模式,可以在这个模式上排列元素, 网格通常具有行(row)和列(column)以及间隙(列跟列之间的距离,gutter)。 1.fr(fraction ,片段)布局单位 fr单位被用于在一系列长度值中分配剩余空间,如果多个已指定了多个部分,则剩下的空间根据各自的数字按比例分配。 2.repeat CSS 函数表示轨道列表中的重复部分,可以更紧凑地写入列和行重复。
flex布局 Flex 是 Flexible Box 的缩写,意为"弹性布局"。 采用 Flex 布局的元素,称为 Flex 容器(flexcontainer),简称"容器"。 它的所有子元素自动成为容器成员,称为 Flex 项(flex item)。
容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。
主轴的开始位置(与边框的交叉点)叫做 main start ,结束位置叫做 main end ;
交叉轴的开始位置叫做 cross start ,结束位置叫做 cross end 。
Flex 项默认沿主轴排列。
单个项占据的主轴空间叫做 main size ,占据的交叉轴空间叫做 crosssize 。
容器的属性
1.flex-direction
flex-direction 属性决定主轴的方向(即项目的排列方向)。
.box
{
flex-direction: row | row-reverse | column | column-reverse;
}
2.flex-wrap
默认情况下,Flex 项目都排在一条线(又称"轴线")上。
flex-wrap 属性定义,如果一条轴线排不下,如何换行。
.box
{
flex-wrap: nowrap | wrap | wrap-reverse;
}
3.flex-flow
flex-flow 属性是 flex-direction 属性和 flex-wrap 属性的简写形式,默认值为 row nowrap 。
.box
{
flex-flow: <flex-direction> || <flex-wrap>;
}
4.justify-content
justify-content 属性定义了项目在主轴上的对齐方式。
.box
{
justify-content: flex-start | flex-end | center | space-between | space-around;
}
5.align-items
align-items 属性定义项目在交叉轴上如何对齐。
.box
{
align-items: flex-start | flex-end | center | baseline | stretch;
}
6.align-content
align-content 属性定义了多根轴线的对齐方式。
如果项目只有一根轴线,该属性不起作用。
.box
{
align-content: flex-start | flex-end | center | space-between | space-around |stretch;
}
项的属性
1.order
order 属性定义项目的排列顺序。
数值越小,排列越靠前,默认为0。
.item
{
order: <integer>;
}
2.flex-grow
flex-grow 属性定义项目的放大比例,默认为 0 ,即如果存在剩余空间,也不放大。
.item
{
flex-grow: <number>; /* default 0 */
}
3.flex-shrink
flex-shrink 属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。
item
{
flex-shrink: <number>; /* default 1 */
}
4.flex-basis
flex-basis 属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。
浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为 auto ,即项目的本来大小。
.item
{
flex-basis: <length> | auto; /* default auto */
}
5.flex
flex 属性是 flex-grow , flex-shrink 和 flex-basis 的简写,默认值为 0 1 auto 。
后两个属性可选。
.item
{
flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]
}
注:该属性有两个快捷值: auto ( 1 1 auto ) 和 none ( 0 0 auto )。
建议优先使用这个属性,而不是单独写三个分离的属性,因为浏览器会推算相关值。
6.align-self
align-self 属性允许单个项目有与其他项目不一样的对齐方式,可覆盖 align-items 属性。
默认值为auto ,表示继承父元素的 align-items 属性,如果没有父元素,则等同于 stretch 。
.item
{
align-self: auto | flex-start | flex-end | center | baseline | stretch;
}
注:该属性可能取6个值,除了auto,其他都与align-items属性完全一致