HTML
多列布局
column-count:5;---------------显示列数为5列
column-gap:40px;---------------调整列间距为40px
column-ruler:2px solid red;-------------列边框属性
column-fill:auto;---------------列高度同一,auto把父盒子沾满
column-width:100px;---------------调整列宽
column-span:all;-----------------横跨所有列
响应式布局
对页面进行响应式的设计实现,需要对相同内容进行不同宽度的布局设计,有两种方式:pc优先;移动优先。无论基于哪种模式的设计,要兼容所有设备,布局响应不可避免地需要对模块布局做一些变化(发生布局改变的临界点称之为断点)。
(1)模块内容:挤压-拉(布局不变)
(2)模块内容:换行-平铺(布局不变)
(3)模块内容:删减-增加(布局不变)
(4)模块位置变换(布局改变)
(5)模块展示方式改变:隐藏-展开(布局改变)
响应式布局的特点:
设计特点:面对不同分辨率设备灵活性强
能够快捷解决设备显示适应性问题
缺点:
兼容各种设备工作量大,效率低下
代码累赘,会出现隐藏无用的元素,加载时间加长
其实这是一种折中性质的设计解决方案,多方面因素影响而达不到最佳效果
一定程度上改变了网站原有的布局结构,会出现用户混淆的情况。
媒体查询的含义:媒体查询可以让我们根据设备显示器的特性(比如视口宽度、屏幕比例、设备方向:横向或纵向)为其设定CSS样式,媒体查询由媒体类型和一个或多个特性的条件表达式组成。媒体查询中可用于检测的媒体特性有width、height和color等。使用媒体查询,可以在不改变页面内容的情况下,为特定一些输出设备定制显示效果。
媒体查询操作结构:
实际操作为:对设备提出询问(称作表达式)开始,如果表达式结果为真,媒体查询中的CSS被应用,如果表达式查询结果为假,媒体查询内的CSS将被忽略。
媒体结构查询
@media all and(min-width:320px){
body{background-color:red;}
}
设备类型
media_type | 设备类型说明 |
all | 所有设备 |
aural | 听觉设备 |
braille | 点字触觉设备 |
handled | 便携设备、如手机、平板电脑 |
打印预览图等 | |
projection | 投影设备 |
screen | 显示器、笔记本、移动端等设备 |
tty | 打字机或终端产品 |
tv | 电视机等设备类型 |
embossed | 盲文打印机 |
px,em,rem
px:绝对单位。
em:相对单位,相对于父元素的字体大小。
rem:相对单位,相对于根元素(html)字体大小。
rem布局(等比例缩放布局)
vw和vh(等比例缩放布局)
vh:view-height
100vh===视口的高度(屏幕100%的高度)
vw:view-width
100vw====视口宽度(屏幕100%的宽度)
渐变
线性渐变
{background:linear-gradient(to top right/30deg,red,yellow,green);}
---------------------------------------------------
支持多颜色渐变
支持方向
支持角度(deg)的写法
径向渐变(一个点向四周的渐变)
{background:radial-gradient(center,shape,size,start-color,....,last-color);}
-------------------------------------------------------------------------------
center:渐变起点的位置,可以为百分比,默认是图形中心
shape:渐变的形状,ellipse表示椭圆,circle表示圆形,默认为ellipse
size:渐变的大小,即渐变到哪里停止
farthest-side:最远边;cloest-corner:最近角;farthest-corner:最远角
重复渐变
{background:repeating-linear-gradient(red,yellow10%,green20%);}-----重复线性渐变
{background:repeating-radial-gradient(red,yellow10%,green20%);}------重复径向渐变
动画过渡属性
符合属性:transition 取值:all5s linear 3s
含义:CSS3的transition允许css的属性值在一定的时间区间内平滑地过渡。这种效果可以在鼠标单击、获得焦点、被点击或对元素任何改变中触发,并圆滑地以动画改变CSS的属性值。
all----------单一属性值:transition-property:检索或设置对象中的参与过渡属性
5s----------单一属性值:transition-duration:检索或设置对象过渡的持续时间
3s----------单一属性值:transition-delay:检索或设置对象延迟过渡的时间
linear------单一属性值:transition-timing-function:检索或设置对象中过渡的动画类型
transition:all/具体属性值 运动时间s/ms 延迟时间s/ms 动画类型
2d平移translate()
将元素向指定方向移动,类似于position中的relative。
水平移动:向右移动translate(tx,0)和向左移动translate(-tx,0);
垂直移动:向上移动translate(0,-ty)和向下移动translate(0,ty);
对角移动:右下移动translate(tx,ty),右上移动translate(tx,-ty)、左上移动translate(-tx,-ty)、左下移动translate(-tx,ty)。
transform: translate(100px,100px);
translateX、translateY
设置left属性会频繁的造成浏览器回流重排,而transform和opacity属性不会,因为它是作为合成图层发送到GPU上,由显卡执行的渲染,这样做的优化如下:
- 可以通过亚像素精度得到一个运行在特殊优化过的单位图形任务上的平滑动画,并且运行非常快。
- 动画不在绑定到CPU重排,而是通过GPU合成图像。即使运行一个非常复杂的JAVAScript任务,动画仍然会很快运行。
2d缩放scale()
让元素根据中心远点对对象进行缩放。默认值是1.因此0.01到0.99之间的任何值,使一个元素缩小;而任何大于或等于1.01的值,让元素显得更大。缩放scale()函数和translate()函数语法非常相似。它可以接受一个值也可以接受两个值。
scale(2,2)表示让元素沿X轴和Y轴放大两倍。
transform: scale(2,2);
*负值:倒向放大的效果
scaleX、scaleY
改变放大的起点位置:transform-origin:left-top;
2d旋转rotate
旋转rotate()函数通过指定的角度参数对元素根据对象原点指定一个2D旋转,它主要在二维空间内进行操作,接受一个角度值,用来指定旋转的幅度。如果这个值为正值,元素相对原点中心顺时针旋转,如果这个值为负值,元素相对于原点中心逆时针旋转。
transform:rotate(50deg);
rotateX、rotateY