目录
9.2 修改主轴对齐方式属性:justify-content【给容器加的】 13
12 更改主轴方向flex-direction【父元素容器属性】 14
13 弹性盒子换行flex-wrap【父元素容器属性】 15
19.2 less支持加减乘 除运算【有单位的数值运算】 19
28 给link标签添加media属性引入不同的外部文件 23
第一章
1 字体图标
1.1字体图标应用
页面上装饰类 比较简单单一的图片
1.2 作用
有效的减少服务器接收和发送请求的次数,提高页面加载速度
1.3 字体图标的使用
方式一【类名使用】 | 步骤 | 过程 |
1 | 引入iconfont.css文件 | |
2 | 准备标签,给标签设置iconfont类名【其实是在标签前面加一个伪元素】 | |
3 | 在字体图标的html文件中找到需要的字体图标类名 | |
4 | 给标签设置需要添加字体样式的类名 | |
方式二【编码使用】 | 步骤 | 过程 |
1 | 在样式中引入下载好的iconfont.css的第一行代码,@font字体声明样式 | |
2 | 找到下载图标对应的html文件,将字体编码复制下来 | |
3 | 给目标标签设置字体声明的名字 | |
4 | 将字体编码放入目标标签中 | |
5 | 给目标标签设置最新样式 |
2 2d平面转换
2.1 目标
使用transform属性实现元素的位移、旋转、缩放等效果【百分比单位都是相对于自身盒子宽度而言】
2.2 复合语法
transform:translate(水平位移, 垂直位移) rotate(顺时针旋转角度) scale(放大倍数)
2.3 位移
位移设置百分比值时是相对自身盒子宽高进行位移的。
位移过后的盒子原位置保留占位效果,所以不会影响其他元素的布局
两个值复合语法 | 描述 |
transform: translate(水平方向移动距离,垂直方向移动距离) | 水平向右位移为正,垂直向下位移为正 |
两个值分开语法 | 描述 |
transform: translateX(水平方向移动距离) translateY(垂直方向移动距离) | 水平向右位移为正,垂直向下位移为正 |
一个值复合语法 | 描述 |
transform:translate(数值) | 一个值的复合位移写法默认是水平方向移动的位移,垂直方向不变 |
一个值分开写法 | 描述 |
transform:translateX(数值) | 水平方向的位移 |
一个值分开写法 | 描述 |
transform:translateY(数值) | 垂直方向位移 |
语法单位 | 描述 |
像素px单位 | 水平向右移动数值为正,垂直向下移动数值为正 |
像素为百分比 | 百分比是相对于自身盒子宽度计算的,同样水平向右移动数值为正,垂直向下移动数值为正 |
2.4 旋转
旋转会改变坐标轴方向,所以先写位移后写旋转
语法 | 描述 |
transform: rotate(角度) | 角度单位为deg,取值为正,则顺时针旋转;取值为负,则逆时针旋转【一般写在:hover元素下面的样式中】 |
设置中心的位置 | 描述 |
transform-origin:水平方位名词 垂直方位名词 | 设置中心点的位置【一般给目标元素加,写在过渡元素身上】 |
2.5 缩放
一般情况下,只为scale设置一个值,表示x轴和y轴等比例缩放。
transform: scale(缩放倍数)
scale值大于1表示放大,scale值小于1表示缩小
语法 | 描述 |
transform: scale(x轴缩放倍数,y轴缩放倍数) | 倍数大于1表示放大,倍数小于1表示缩小 |
语法 | 描述 |
transform: scale(倍数) | x轴y轴方向缩放同等倍数 |
3 渐变
3.1 渐变属于背景图片
语法 | 描述 |
background-image:linear-gradient(渐变角度, 颜色1, 颜色2) | 从什么角度方向,由颜色1逐渐变为颜色2【0deg方向为向上】 |
语法 | 描述 |
background-image: linear-gradient(to 方位名词, 颜色1, 颜色2) | 颜色由颜色1逐渐变为颜色2,往方位名词方向变化 |
4 过渡
从一个状态变化到另一个状态,这个过程叫做过渡
语法 | 描述 |
transition: 过渡的属性 过渡时间 运动曲线 延迟时间 | 红色字体为必须属性值。当有多个属性进行过渡时,需要将多个属性用逗号分隔 |
运动曲线 | 描述 |
linear | 匀速运动 |
ease | 先加速后减速 |
注意 | 描述 |
说做过渡给谁加,过渡不要加在:hover身上 | 加在hover身上会出现,移入元素时有过渡效果,但移除时会一下子复原 |
5 空间转换
在父元素身上添加perspective属性【属性值为数值】,开启3d效果,近大远小【也叫视距(眼睛距离屏幕的距离)】
空间转换也叫3D转换
属性也是transform
transform-style:preserve-3d【给子元素开启3d空间,没开启3d空间前,所有子元素只能在一个平面显示】【开启3d空间后,子元素可以立体显示,并且可以穿父元素所在平面】
perspective: 数值px【视距】【视距加在父元素上面,则子元素会近小远大,但视距加在除了父元素的子元素身上,当视距足够大时子元素的大小都是一样的。】
5.1 空间
是从坐标轴角度定义的。x、y和z三条坐标轴构成了一个立体空间,z轴位置与视线方向相同【扑面而来为z轴方向】
5.2 空间转换之位移
单位为px或百分比
复合语法 | 描述 |
transform: translate3d(x,y,z) | 红色字体不可省略,表示沿着x轴方向移动x,沿着y轴移动y,沿着z轴移动z |
分开语法 | 描述 |
transform: translateX(值) | 沿着x轴方向位移 |
transform: translateY(值) | 沿着y轴方向位移 |
transform: translateZ(值) | 沿着z轴方向位移 |
5.3 空间转换之旋转
左手法则确定旋转正方向:拇指指向坐标轴的正方向,四指弯曲方向为旋转角度的正方向。
旋转会改变坐标轴的方向,但可以根据我们读文字内容面朝我们的方向就为z轴的正方向快速判断。
每个元素在空间转换的时候都有自己的独立的空间坐标轴,父元素旋转的过程中,子元素会跟着父元素旋转,所以我们在分析的时候,先分析子元素空间转换好后的位置,然后分析父元素空间转换带动子元素继续空间转换的位置【完美class】
复合语法 | 描述 |
transform: rotate3d(x,y,z,角度度数) | 用来设置自定义旋转轴的位置及旋转的角度【x,y,z取值为0~1之间的数字,没有单位】【x,y,z为空间坐标 旋转轴为原点到这个坐标组成的线段】 |
分开写法方式一 | 描述 |
transform: rotateX(度数) | 沿着x轴旋转多少度 |
transform: rotateY(度数) | 沿着y轴旋转多少度 |
transform: rotateZ(度数) | 沿着z轴旋转多少度 |
分开写法方式二 | 描述 |
transform: rotateX(度数) rotateY(度数) rotateZ(度数) |
5.4 空间转换之缩放
单个值语法 | 描述 |
transform:scaleX(倍数) | X轴方向放大参数倍数 |
单个值语法 | 描述 |
transform:scaleY(倍数) | Y轴放大参数倍数 |
单个值语法 | 描述 |
transform:scaleZ(倍数) | Z轴放大参数倍数 |
多个值复合写法 | 描述 |
transform:scale3d(x,y,z) | X轴,Y轴,Z轴分别放大x倍,y倍,z倍 |
6 动画
动画的本质是快速切换大量图片时在人脑中形成的具有连续性的画面
构成动画的最小单元:帧或动画帧
6.1使用动画
步骤 | 语法 | 描述 |
1【定义动画方式一】 | @keyframes 动画名称{ from{} to{} } | 当只有两个状态【一个精灵图】时,使用这种方式定义动画 |
1【定义动画方式二】 | @keyframes 动画名称{ 0%{} [100 /n]%{} } | 当有一行共有n个精灵图时,每个状态间加百分之n来定义新状态 |
2【调用动画】 | .使用动画目标元素类名{ animation:自定义动画名称 花费时间 运动曲线 延迟时间 动画次数 是否逆向播放【或是否保留最后一帧状态forwards】 } | 红色字体不可省略。在需要有动画的元素的样式中设置animation属性 |
运动曲线为infinite时为无限循环 | ||
逆向播放属性值为alternate【逆向播放的次数必须大于等于2】 | ||
花费时间为数值时,时间会等比例分给各个百分比状态 | ||
3【暂停动画】 | .使用动画目标元素类名:hover{ animation-play-state: paused; } | 用于鼠标移入时暂停动画 |
3【暂停动画】 | .使用动画目标元素类名:hover{ animation-play-state: paused; } | 用于鼠标移入时暂停动画【暂停动画一般配合:hover使用】 |
6.2 暂停动画
通常和:hover一起使用
6.3 逐帧动画
逐帧动画一般和背景图片搭配使用,此时动画的运动曲线属性值为step(步数)【这里的步数是每个百分比状态之间的步数】【一般步数=背景图片的精灵图一行的个数-1】
目标动画步数=目标行 目标精灵图序号-1
精灵图后面是状态百分比=目标行 目标精灵图序号*{(100/总精灵图数)%}
背景定位【background-position】=-(动画步数*单个精灵图宽度)
元素盒子位移【left或transform:translateX=动画步数*单个盒子宽度】
单个精灵图宽度=单个盒子宽度
|背景定位| = |元素位移|
6.4 多组动画
多组动画同样用animation属性,但各个动画之间用逗号分隔。
6.5动画分开写法属性
属性 | 作用 | 取值 |
animation-name | 动画名称 | |
animation-duration | 动画时长 | |
animation-delay | 延迟时间 | |
animation-fill-mode | 动画执行完毕时的状态 | forwards:最后一帧状态 backwards:第一帧状态 |
animation-timing-function | 速度曲线 | steps(数字),逐帧动画 |
animation-iteration-count | 重复次数 | infinite为无限循环 |
animation-direction | 动画执行方向 | alternate为反向 |
animation-play-state | 暂停动画 | paused为暂停,通常配合:hover使用。 |
7 移动端特点
7.1 移动端和pc端网页不同点
移动端没有pc端的滚动条
PC屏幕大,网页固定版心
手机屏幕小,网页宽度多数为100%
7.2 谷歌模拟器
电脑里面边写代码边调试移动端网页效果
7.3 分辨率
写代码按照逻辑分辨率(css像素)来写
总结 | 描述 |
硬件分辨率【出厂设置】 | 也叫物理分辨率 |
缩放调节的分辨率【软件设置】 | 逻辑分辨率=(物理分辨率宽/缩放调节的分辨率) * (物理分辨率高/缩放调节的分辨率) |
7.4 视口
viewport:视口
width=device-width:视图宽度=设备宽度
initial-scale=1.0:缩放1倍【不缩放】
minimum-scale:最小缩放【大于0的数字,且小于最大缩放数字】
maximum-scale:最大缩放【大于0的数字,且大于最小缩放数字】
user-scalable:用户能否缩放
<!-- viewport设置视口 width浏览器宽度=device-width设备宽度 initial-scale初始缩放倍数 --> <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
现在移动端不允许横向滚动
7.5 物理像素比
物理像素点指的是屏幕显示的最小颗粒,是物理真实存在的。这是厂商在出厂时就设置好了
我们在开发移动端的时候1px不一定等于一个物理像素点,需要根据物理分辨率与逻辑分辨率的比值来看。
7.6 二倍图
我们引入的图片,在逻辑分辨率下要缩放为原来的一半【因为物理分辨率一半是逻辑分辨率的两倍】,所以原来的图片尺寸就叫做二倍图。
7.7 屏幕尺寸
指的是屏幕对角线的长度,一般用英寸来度量
8 百分比布局
百分比布局,也叫流式布局
效果:宽度自适应,高度固定
应用:一行显示多个相似元素,等宽
9 flex布局
父元素设置display:flex【我们把父元素也叫做容器,父元素里面的子元素我们叫做弹性盒子】,子元素在父元素中主轴上的对齐方式我们用justify-content【父元素上设置子元素在父元素主轴上的对齐方式】,子元素在父元素侧轴上的对齐方式我们用align-items【父元素上设置子元素在父元素侧轴上的对齐方式】。单个目标子元素在父元素侧轴上的对齐方式align-self【目标子元素即弹性盒子上设置在父元素这个容器上的侧轴上的对齐方式】
父元素设置display:flex;子元素是行内元素也可以设置宽高了【高度默认和父元素一样高,宽度默认由内容撑开】
父元素即容器设置为flex布局后,他里面的子元素默认会在一行内显示,即使子元素宽度过大,已经超过了父元素容器的宽度。子元素也会在父元素容器中一行显示,但所有子元素会等比例缩放到与父元素齐宽。
主轴:默认方向从左至右【和元素x轴方向一致】
侧轴:永远和主轴方向垂直,默认从上到下【和元素y轴方向一致】
是一种浏览器提倡的布局模型
布局网页更简单、灵活
避免浮动脱标的问题【避免浮动布局中脱离文档流现象发生,子元素和自己不会脱标】
flex布局非常适合结构化布局
给父元素容器采用flex布局以后,子元素的float、clear和vertical-align属性将失效
伸缩布局=弹性布局=伸缩盒布局=弹性盒布局=flex布局
采用flex布局的元素,称为flex容器,简称“容器“。它的所有子元素自动称为容器成员,称为flex项目,简称”项目“
flex布局原理【通过给父元素添加flex属性,来控制子元素盒子的位置和排列方式。】
9.1 弹性布局模型构成
弹性容器【父元素】
弹性盒子
主轴
侧轴【交叉轴】
9.2 修改主轴对齐方式属性:justify-content【给容器加的】
属性值 | 作用 |
flex-start | 默认值,父元素中先在主轴方向依次排列好子元素,然后将所有子元素作为一个整体,子元素整体开始点 移动到父元素主轴的开始位置点【开始端对齐,默认值】 |
flex-end | 父元素中先在主轴方向依次排列好子元素,然后将所有子元素作为一个整体,子元素整体结束点位置 移动到父元素主轴的结束点位置【结束端对齐】 |
center | 父元素中先在主轴方向依次排列好子元素,然后将所有子元素作为一个整体,子元素整体中点 移动到父元素主轴中点位置【居中对齐】 |
space-around | 父元素中先在主轴方向依次排列好子元素,然后将空白间隙均分给每个子元素两侧【每个弹性盒子左右间距相等】 |
space-between | 父元素中先在主轴方向依次排列好子元素,然后将第一个子元素放在主轴开始点处,最后一个子元素放在父元素主轴结束的位置,然后均匀排列子元素【两端对齐,然后等距均分剩余空间排列】 |
space-evenly | 父元素中先在主轴方向依次排列好子元素,然后均匀排列子元素,弹性盒子之间间隙和弹性盒子与容器的间距是相等的【等距均分剩余空间排列】 |
9.3 单行侧轴对齐方式
使用align-items调节元素在侧轴的对齐方式【给容器加的】
当子元素没有设置高度时,子元素这个弹性盒子默认会铺满容器的侧轴高度。因为父元素容器会有一个默认属性align-items:stretch,子元素就会默认高度和父元素一样高,但如果再次给父元素容器设置align-items:center属性,这个时候,子元素高度就不会铺满容器侧轴的高度了,而是由内容撑开,因为已经覆盖了刚刚的属性【在父元素容器盒子中有align-items属性,且不为stretch时,如果子元素没有设置高度也想和父元素一样高,可以给子元素设置align-self:stretch样式实现】
属性值 | 作用 |
flex-start | 子元素整体在父元素上排列好后,将整体放在父元素侧轴的开始位置 |
flex-end | 子元素整体在父元素上排列好后,将整体放在父元素侧轴的结束位置 |
center | 子元素整体在父元素上排列好后,将整体放在父元素侧轴的居中位置 |
stretch | 默认值,当父元素没有设置高度时,默认会将弹性盒子沿着主轴线两侧拉伸到铺满容器 |
单独设置弹性盒子侧轴对齐方式align-self【属于子元素弹性盒子的属性,属性值有flex-start,flex-end,center,stretch】
10 伸缩比【弹性盒子加】
子元素设置flex属性设置当前子元素占父元素剩余空间宽度的份数【父元素宽度减去所有已经设置宽度的子元素宽度后,剩下的就是剩余宽度,然后子元素设置的flex后面的值就是剩余宽度中所占宽度空间的份数】
语法 | 描述 |
flex:值 | 给子元素弹性盒子设置这个属性,子元素就会得到除去已经设置固定宽度的剩余空间宽度的所占份数 |
11 项目结构
文件夹 | 描述 |
css | 引入的外部css代码文件 |
images | 存放不经常更换的修饰类背景图片 |
lib | 存放外部文件,需要引入到项目中的其他外部文件【比如字体文件等】 |
uploads | 存放经常更换的产品类图片 |
12 更改主轴方向flex-direction【父元素容器属性】
语法 | 描述 |
flex-direction:row | 主轴方向默认从左往右 |
flex-direction:row-reverse | 主轴变为反向,即从右往左 |
flex-direction: column | 主轴变为列方向,即从上往下 |
flex-direction: column-reverse | 主轴变为列反向,即从下往上 |
13 弹性盒子换行flex-wrap【父元素容器属性】
默认值为flex-wrap: nowrap不换行
flex-wrap:wrap 当父元素放不下子元素时换行容纳子元素
14多行侧轴对齐方式align-content
父元素有flex-wrap:wrap属性时,且父元素一行放不下所有子元素时,此时子元素就会多行显示了【而不是以前的单行】,这个时候侧轴的对齐方式就可以使用align-content来设置侧轴的对齐方式【align-content和align-items的区别,一个是侧轴多行对齐方式,一个是侧轴单行对齐方式】
15 Flex布局属性
15.1 父元素容器属性
属性 | 描述及属性值描述 |
display:flex | 设置flex布局的容器 |
justify-content | 设置主轴对齐方式;flex-start开始端对齐;flex-end结束端对齐;center居中对齐;space-between两端对齐;space-around弹性盒子两侧距离相等;space-evenly均匀分布;父元素容器距离和子元素距离同样相同 |
flex-direction | 默认是水平向右。设置主轴方向,改变元素排列方向;flex-direction:column主轴方向变更为从上往下【主轴方向和侧轴方向是垂直的,且侧轴方向只有从左往右和从上往下两种方向。即正方向】 |
flex-wrap | 设置弹性盒子在父元素一行中放不下时是否换行显示,默认值为nowrap不换行,设置wrap即可换行显示 |
align-items | 设置单行显示的弹性盒子在父元素容器侧轴的对齐方式 |
align-content | 设置多行显示的弹性盒子在父元素容器侧轴的对齐方式,取值与justify-content基本相同 |
15.2 子元素弹性盒子属性
属性 | 描述 |
align-self | 设置单行显示的弹性盒子中的目标盒子在父元素容器侧轴的对齐方式 |
flex:值 | 设置单行显示的弹性盒子中的目标盒子占父元素容器剩余空间的份数 |
16 单行文本溢出显示省略号样式
white-space: nowrap; overflow: hidden; text-overflow: ellipsis; |
17 多行文本溢出元素盒子显示省略号
overflow: hidden; text-overflow: ellipsis; display: -webkit-box; /*在第几行显示省略号*/ -webkit-line-clamp: 2; -webkit-box-orient: vertical; |
18 移动适配
18.1 移动适配
rem:目前多数企业在用的解决方案
vm/vh:未来的解决方案
18.2 rem
需求:视口宽度越宽,页面元素就越大【通过媒体查询获取视口宽度条件,然后在该视口宽度条件下设置样式。通过html元素的font-size样式作为过渡属性,其他元素根据这个属性设置rem单位的宽高,这样就可以自适应了】
使用rem单位设置网页元素的尺寸【元素宽度和高度单位用rem作为单位】
相对单位
rem单位是相对于HTML标签的字号计算结果
1rem=1HTML字号大小
18.3 媒体查询
实时监控视口宽度 改变页面css样式【根据媒体查询条件改变对应css代码】【当某个条件成立,执行对应的css样式】
语法 | 描述 |
@media (max-width: 最大宽度A){ 选择器{样式} } | 根据视口宽度,设置元素样式 |
18.4 媒体查询+rem适配应用
通过改变html根标签font-size属性,改变其他元素以rem为单位的大小
应用语法 | 描述 |
@media (max-width: 最大宽度A){ html{ font-size:根字号大小A } } | 视口宽度小于这个最大宽度A时,执行的样式 |
@media(min-width:最小宽度a){ html{ font-size:根字号大小a } } | 视口宽度大于这个最小宽度a时,执行的样式 |
18.5 媒体查询改变根字号大小
一般情况下根字号大小设置为视口宽度的十分之一
语法 | 描述 |
@media (max-width: 最大宽度A){ html{ font-size:根字号大小A } } @media(min-width:最小宽度a){ html{ font-size:根字号大小a } } @media(min-width:最小宽度b){ html{ font-size:根字号大小b } } | 当视口宽度比最大宽度A小的时候,根字号大小为设置的根字号大小A,当设备 当视口宽度大于最大宽度A,小于最小宽度a时,根字号大小为设置的根字号大小a 当视口宽度小于最小宽度b时,根字号大小为设置的根字号大小b 媒体查询条件的最大宽度A其实是视口的在小于这个最大宽度A下面执行的样式 媒体查询条件的最小宽度a其实是视口的在大于这个最小宽度a下面执行的样式【媒体查询具有样式覆盖,所以大范围的写前面,小范围的后面。】 |
18.6 js设置根字号
js配合rem实现不同宽度的设备中,网页元素尺寸等比缩放效果
flexible.js是手淘开发出的一个用来适配移动端的js框架
核心原理就是根据不同的视口宽度给网页中html根节点设置不同的font-size。
步骤 | 语法 | 描述 |
1 | 下载flexible.js文件 | |
2 | <script src=’flexible.js文件路径’></script> | 引入flexible.js文件,这个文件会自动获取视口宽度,并且将根字号大小设置为视口宽度的十分之一 |
3 | 给相应元素宽高设置对应的rem单位样式 | rem为单位可以实现元素随着根字号大小的变化而变化【实现元素的等比例放大缩小】 |
18.7 px单位转rem单位
用需要转换的宽度/(html字体大小)
19 less【每个less语法的后面都需要加分号】
less是一个CSS预处理器,less文件后缀是.less
扩充了css语言,使CSS具备一定的逻辑性、计算能力。
Vscode下载easy less插件【保存less文件自动生成css代码插件】
作用:less文件保存自动生成css文件
注意:浏览器不识别less代码,目前阶段,网页要引入对应的css文件。
19.1 less注释
单行注释语法 | 描述 |
//注释内容 | 单行注释语法 |
ctrl:ctrl + / | 单行注释快捷键 |
多行注释语法【块注释】 | 描述 |
/*注释内容*/ | 多行注释语法 |
shift + alt + A | 多行注释快捷键 |
19.2 less支持加减乘 除运算【有单位的数值运算】
加、减、乘直接书写计算表达式
除法计算表达式需要添加小括号或.
注意:表达式存在多个单位以第一个单位为准
19.3 less样式嵌套
后代选择器语法 | 描述 |
.父元素选择器 { 父元素样式 .子元素选择器 { 子元素样式 } } | 自动保存后,自动生成的css样式里面,会自动生成父元素选择器样式,也会自动生成父元素后代子元素选择器样式 |
子代选择器语法 | 描述 |
.父元素选择器 { 父元素样式 >.子元素选择器 { 子元素样式 } } | 自动保存后,自动生成的css样式里面,会自动生成父元素选择器样式,也会自动生成父元素子元素选择器样式 |
符号 | 描述 |
& | 可以理解为当前元素的意思,这个当前元素是针对&符号所在的中括号{}前面的元素选择器而言 |
当两个类名A和B的样式相同时,可以只写一个类名A的样式,另一个类名B的样式可以直接写B{.A()} |
19.4 less变量
变量:存储数据,方便使用和修改
定义变量语法 | 描述 |
@自定义变量名1: 值; | 定义变量名 |
使用变量语法 | 描述 |
CSS属性: @自定义变量名1; | 将自定义变量名1保存的值放到CSS属性对应的值里面去 |
19.5 less导入
@import “路径”;
@import url(“路径”);
方式 | 语法 | 描述 |
方式一 | @import “less文件路径”; | 可以将目标less文件代码引入到当前less文件中,自动保存后生成对应的css代码 |
方式二 | @import url(‘less文件路径’); | 可以将目标less文件代码引入到当前less文件中,自动保存后生成对应的css代码 |
@import “css路径.css”;引入到另一个css文件中是可以生效的。
19.6 less导出
Less默认导出在less文件当前路径,为了导出到固定的位置,我们需要在setting.json文件中设置如下代码【less文件的嵌套层数需要和css文件的嵌套层数相同,这样less中引入图片的位置和生成的css引入图片位置的实际位置相同,这样从css查找图片路径就不会出错了。】
“less.compile”:{ “out”: “../css/” } |
19.7 单独设置目标less文件导出css路径位置
单独在目标less文件的第一行输入// out: ./
// out: 导出位置路径 |
这个路径从当前less文件开始查找。
19.8 less禁止导出css文件
目标less文件的第一行输入 //out: false
//out: false |
20 点应用
点可以当的的意思理解【对象名.属性名】
点还可以判断是否有什么属性【类名使用在有什么类名的情况下设置什么样式】
21 vw/vh
vw和vh都是相对单位,相对视口的尺寸计算结果
21.1 vw:viewport width
1vw=1/100视口宽度
21.2 vh:viewport height
1vh=1/100视口高度
vh单位应用场景一般用于全屏显示高度
22 px转rem单位和vw适配总结
rem适配:将视口宽度的十分之一作为基数,单位基数也是根字号的文字大小,单位基数即为1rem,然后其余的和长度有关的px单位来除以这个基数【根字号大小】就是rem单位的值
vw适配:将视口宽度的百分之一作为基数,单位基数即为1 vw,然后其余的和长度有关的px单位除以这个基数即为vw为单位的值
23 vscode px转换rem插件cssrem
点击“文件”——>点击“首选项”——>点击“设置”——>在cssrem:Root Font Size下面的输入框中,将默认值16改为我们html根标签的font-size大小
在settings.json文件中输入"cssrem.rootFontSize": 75
24 单位有关
单位 | 描述 |
1rem | 1rem=html标签的font-size属性值大小 |
1em | 1em=当前元素标签的font-size属性值大小【em单位相对于当前文字大小】 |
1vm | 1vm=视口宽度的百分之一 |
25 电脑长截屏
25.1 方式1
步骤 | 过程 |
1 | 快捷键ctrl + shift + p |
2 | 弹出的输入框中输入full |
3 | 点击Screenshot按钮【即可截屏并下载图片到我们的电脑本地】 |
25.2 方式2
步骤 | 过程 |
1 | 鼠标右键-检查 |
2 | 切换到移动端界面,点击移动界面右边的三个小点点 |
3 | 选中“Capture full size screenshot” |
25.3 方式3
步骤 | 过程 |
1 | 鼠标右键-检查 |
2 | 切换到移动端界面,点击控制面板右边的三个小点点 |
3 | 点击“run command” |
4 | 输入”capture”,点击“capture full size screenshot”选项右边的“screenshot” |
26 响应式
用一套代码兼容移动端和网页端
26.1 响应式开发方式
方式 | 描述 |
媒体查询 | 一套代码兼容移动端和网页端 |
27 媒体查询
媒体查询具有层叠性,所以写媒体查询条件时按照由大到小,或由小到大的顺序来写
27.1 媒体查询语法
媒体查询更改元素样式语法 | 描述 |
@media 媒体设备 关键词(媒体条件){ 元素1标签名:{元素1样式} 元素2标签名:{元素2样式} } | 媒体设备【screen用于电脑屏幕,平板电脑,智能手机等】可以省略 关键词有only【只有】、not【除了】、and【和】 媒体条件【min-width或max-width】写在小括号内。多个媒体条件之间用关键词and连接 |
28 给link标签添加media属性引入不同的外部文件
当样式比较繁多的时候,我们可以针对不同的媒体使用不同stylesheets(样式表)。
原理:就是直接在link中判断设备的尺寸,然后引入不同的css文件
语法 |
<link rel=”stylesheet” media=”(媒体条件)” href=”外部文件路径”> |
案例 |
<link rel="stylesheet" media="(min-width:320)" href="1.css"> |
29 UI框架
29.1 UI框架概念
将常见效果进行统一封装后形成的一套代码,例如:BootStrap
29.2 作用
基于框架开发,效率高,稳定性高
30 栅格系统
Bootstrap提供了一套响应式、移动设备优先的流式栅格系统,随着屏幕或视口【viewport】尺寸的增加,系统会自动分为最多12列。它包含了易于使用的预定义类,还有强大的mixin用于生成更具语义的布局。
栅格化是指将整个网页的宽度分成若干等份
30.1 BootStrap简介
Bootstrap是由Twitter公司开发维护的前端UI框架,它提供了大量编写好的CSS样式,允许开发者结合一定HTML结构及JavaScript,快速编写功能完善的网页及常见交互效果
BootStrap预定义了大量类来美化页面,掌握手册的查找方法是学习全局样式的重点
Bootstrap栅格系统是用媒体查询加百分比设置子元素宽度来实现的子元素在父元素中所占份数情况实现的布局效果【布局效果实现后,如果需要在盒子A内部看见有等距的盒子C,可以通过在A元素上添加row类名,实现一行分为12份,再在内部子元素B中使用类名分为对应的份数,给子元素B设置padding将内容挤开,最后在B元素内部添加子元素C,让C元素高度和B元素高度一致,就可以实现C元素之间距离相等,最后将B元素背景颜色设置为透明即可看见效果】
30.2 BootStrap栅格系统
BootStrap3默认将网页一行分成12等份
超小屏幕 | 小屏幕 | 中等屏幕 | 大屏幕 | |
响应断点 | <786px | >=786px | >=992px | >=1200px |
别名 | xs | sm | md | lg |
容器宽度 | 100% | 750px | 970px | 1170px |
类前缀 | col-xs-份数 | col-sm-份数 | col-md-份数 | col-lg-份数 |
列数 | 12 | 12 | 12 | 12 |
列间隙 | 30px | 30px | 30px | 30px |
31 BootStrap使用步骤
第一步:引入bootstrap.css文件
第二步:给标签设置对应的类名
步骤 | 语法 | 描述 |
1 | <link rel="stylesheet" href="bootstrap.css文件路径"> | 引入BootStrap提供的css代码 |
2 | 调用类【版心盒子使用类名container;行(类名row必须包含在.container或.container-fluid(父元素宽度100%即全屏)中,以便赋予核酸的宽度】 |
32 Bootstrap前端开发框架
32.1 布局容器
Bootstrap需要为页面内容和栅格系统包裹一个.container容器,bootstrap预先定义好了这个类,叫.container,它提供了两个此用处的类
类名 | 描述 |
.container | 响应式布局的容器,固定宽度 |
.container-fluid | 流式布局容器百分百宽度 |
占据全部视口的容器 | |
.row | 通过行【类名row】在水平方向创建一组列【column】,只有列可以作为行的直接子元素 |
.col-屏幕类型简写-份数 | 父元素row将一行分为12份,子元素设置对应类名,即可根据占据的份数得到对应的布局效果 |