CSS部分学习(尚硅谷视频教程达姆老师)

    技术2025-07-14  13

    CSS部分学习

    css部分day1day2day3day4day5day6day7day8

    css部分

    day1

    1.Cascading style sheets 2.样式表的组成 规则 选择器+声明块 声明 CSS合法的属性名+属性值 3.浏览器渲染样式表的顺序 从右往左 4.选择器 基本选择器及其扩展 * . # 后代 组合(#test.pink) > + ~ 分组(,结合符) 属性选择器 存在与值 属性选择器 [attr] [attr="val"] [attr~="val"](只认空格) 子串值 属性选择器 ^ $ * |(val val-) 伪类与伪元素选择器 链接伪类 :link :visited :target(css实现选项卡) 动态伪类 :hover :active(lvha) 表单伪类 :disabled :enabled :checked(自定义单选按钮) :focus 结构性伪类 ele:nth-child(index) ele:nth-of-type(index) 以元素为中心 区别: 1.nth-child找到第index个子元素 这个子元素必须满足ele的规则 nth-of-type找到底index个ele子元素 2.nth-of-type以元素为中心 注意: index可以是变量n(只能是n 0到正无穷) odd:奇数 even:偶数 伪元素 ::after ::before CSS声明的优先级 层叠 先按来源进行筛选 如果来源相同,按选择器的特殊性继续筛选 选择器的特殊性如果相同,按顺序继续筛选 5.自定义字体 @font-face 字体图标 1.制作一套矢量图 2.将矢量图与字符进行绑定 3.使用工具或者站点生成一套字体 4.最终使用 字体兼容处理网站 https://www.fontsquirrel.com/tools/webfont-generator icomoon字体图标 https://icomoon.io/#home ★6.文本新增样式 文本阴影 怎么溢出显示省略号 white-space=no-wrap overflow=hidden text-overflow=ellipsis 包裹区域必须不能让子元素撑开

    day2

    1.盒模型新增样式 box-shadow 关键字(内 外阴影) length(x轴的偏移量) length(y轴的偏移量) length(模糊程度) length(阴影面积) color(阴影颜色) text-shadow length(x轴的偏移量) length(y轴的偏移量) length(模糊程度) color(阴影颜色) 2.倒影(webkit内核 文字描边 背景镂空) 渐变倒影 3.box-sizing border-box:代表元素上设置的width和height表示的是border-box尺寸 content-box:代表元素上设置的width和height表示的是content-box尺寸 4.层级 a.浮动提升半层,只有在浮动的情况下,才需要考虑元素分两层 定位元素提一层 相对定位会在文档流你有残留 b.z-index为1怎么都会比a高;z-index为-1怎么都会比a低 5.包含块 初始包含块:和视窗大小位置尺寸一样的矩形 滚动系统滚动条会不会影响初始包含块的位置? 会 禁止系统滚动条 html,body{ height:100%; overflow:hidden } 怎么解决ie6下固定定位失效的问题? 用绝对定位来模拟固定定位 1.禁止系统滚动条 2.将滚动条作用在最外层的包裹器上或者在body上 3.因为移动包裹器或者body身上的滚动条并不会影响初始包含块的位置 所以一个按照初始包含块定位的元素就不会产生移动 6.边框图片、渐变 7.背景 css2 background-color 平铺整个border-box background-image 默认从padding-box开始绘制,从border-box开始剪裁 css3中有多背景,默认绘制时尺寸是自己的位图像素 background-repeat 控制平铺与否 background-position 控制背景图片在背景区域中的位置 px 百分比 参照于背景区域减去背景图片的位图像素值 background-attachment scroll:默认值,背景图不会随着元素滚动条的滚动而滚动 fixed:背景图铺在视口中固定定位了 css3 background-origin background-clip background-size 图片是自适应的 8.如何实现一张图片的垂直水平居中 body:after{ content: ""; display: inline-block; height: 100%; vertical-align: middle; } img{ vertical-align: middle; }

    day3

    a.过渡只关系元素的初始状态和结束状态,没有方法可以获取元素在过渡中每一帧的状态 b.元素在初次渲染还没有结束的时候,是没有办法触发过渡的 c.在绝大部分变换样式的切换时,变换组合的个数或位置不一样时,是没有办法触发过渡的 1.过渡 transition-property 指定过渡动画的属性(并不是所有的属性都可以动画) transition-duration 指定过渡动画的时间(0也要带单位) transition-timing-function 指定过渡动画的形式(贝塞尔) transition-delay 指定过渡动画的延迟 transition 第一个可以被解析成时间的值会赋给transition-duration transtionend事件(DOM2) 在每个属性完成过渡时都会触发这个事件 当属性值的列表长度不一致时 跟时间有关的重复列表 transition-timing-function使用默认值 2.2D变换(transform) rotate 旋转 translate 平移 skew 斜切 scale 缩放 变换组合! 顺序是从右往左的,变换的底层其实就是矩阵的运算 基点的变换 transform-origin

    day4

    百分比都是参照于谁? 元素垂直水平居中方案 已知高宽 1.position=absolute,lrtb=0,margin=auto,包含块一定的是容器。(绝对定位盒模型的特性) left+right+w+p+m = 包含块的宽度 top+bottom+h+p+m = 包含块的高度 2.position=absolute,lt=50%,包含块一定的是容器,marginT/L为负的自身的一半。 3.position=absolute,lt=50%,包含块一定的是容器,transform:tranlate3d(-50%,-50%,0) 4.flex 未知高宽 1.position=absolute,lt=50%,包含块一定的是容器,transform:tranlate3d(-50%,-50%,0) 2.flex img元素如何元素垂直水平居中 1.基线 1.3D变换 perspective,灭点 景深的写法: 2种写法。一种css属性,一种是transform属性的一个变换函数(必须在第一位) 景深的作用: 构建3D舞台,决定用户的肉眼距离屏幕的水平距离!使3D变换的元素具有近大远小的感觉 景深和灭点的关系 景深越大,灭点越远,元素变形越小 景深越小,灭点越近,元素变形越大 景深基点 景深叠加 景深是一个不可继承属性,但他可以作用于所有的后代元素 transform-style transform-style的作用 构建3D舞台,使3d舞台有层次感 transform-style是一个不可继承属性,他只作用于子元素 backface-visibility 隐藏元素背面 一个元素分两面,但并不意味元素有厚度。在一个状态下,元素只能展现自己的一面 2.css3动画基础 animation-name:代表关键帧的名字 关键帧: @keyframes animiationName{ keyframes-selector{ css-style; } } animation-duration:一个动画周期的时长 animation-timing-function:作用于一个关键帧周期而非整个动画周期 animation-delay:代表动画的延迟(这是一个动画外的属性) animation-iteration-count:循环关键帧的次数!(只会管理动画内的属性,动画的延迟不会被循环) animation-direction:改变关键帧的执行方向,还会影响animation-timing-function的形式 animation-fill-mode:管理所有动画外的状态! 什么是动画外的状态 from之前 animation-delay to之后 值 none : 动画外的状态保持在动画之前的位置 backwards :from之前的状态与from的状态保持一致 forwards :to之后的状态与to的状态保持一致 both :动画外的状态与from和to的状态保持一致 animation-play-state:管理动画的运行和停止 关键帧: @keyframes animiationName{ keyframes-selector{ css-style; } } keyframes-selector可以是关键帧form(0%)和to(100%) 可以是百分比 代表的是时间的百分比(时间点)

    day5

    steps(num,[start/end]) num:拆成多少步(当吗num为12时,整个动画最好有13帧) start:看不见第一帧 end:看不见最后一帧 transform只能使用在块级元素上!!! 1.flex基础点 ---什么是容器,什么是项目,什么是主轴,什么是侧轴? ---项目永远排列在主轴的正方向上 ---flex分新旧两个版本 -webkit-box -webkit-flex / flex 2.注意点 ---我们都知道新版本的flex要比老版本的flex强大很多,有没有必要学习老版本的flex? 移动端开发者必须要关注老版本的flex 因为很多移动端设备内核低只老版本的flex ---老版本的box通过两个属性四个属性值控制了主轴的位置和方向 新版本的flex通过一个属性四个属性值控制了主轴的位置和方向 3.老版本 容器 容器的布局方向 -webkit-box-orient:horizontal/vertical 控制主轴是哪一根 horizontal:x轴 vertical :y轴 容器的排列方向 -webkit-box-direction:normal/reverse 控制主轴的方向 normal:从左往右(正方向) reverse:从右往左(反方向) 富裕空间的管理 只决定富裕空间的位置,不会给项目区分配空间 主轴 -webkit-box-pack 主轴是x轴 start:在右边 end: 在左边 center:在两边 justify:在项目之间 主轴是y轴 start:在下边 end:在上边 center:在两边 justify:在项目之间 侧轴 -webkit-box-algin 侧轴是x轴 start:在右边 end: 在左边 center:在两边 侧轴是y轴 start:在下边 end: 在上边 center:在两边 项目 弹性空间管理 -webkit-box-flex:弹性因子(默认值为0) 4.新版本 容器 容器的布局方向 容器的排列方向 flex-direction 控制主轴是哪一根,控制主轴的方向 row; 从左往右的x轴 row-reverse;从右往左的x轴 column; 从上往下的y轴 column-reverse;从下往上的y轴 富裕空间的管理 只决定富裕空间的位置,不会给项目区分配空间 主轴 justify-content flex-start: 在主轴的正方向 flex-end: 在主轴的反方向 center: 在两边 space-between: 在项目之间 space-around: 在项目两边 侧轴 align-items flex-start:在侧轴的正方向 flex-end: 在侧轴的反方向 center: 在两边 base#ne 基线对齐 stretch 等高布局(项目没有高度) 项目 弹性空间管理 flex-grow:弹性因子(默认值为0) 5.新版本新增的 容器 flex-wrap:控制的是侧轴的方向 nowrap 不换行 wrap 侧轴方向由上而下 (flex-shrink失效) wrap-reverse 侧轴方向由下而上 (flex-shrink失效) align-content:多行/列时侧轴富裕空间的管理(把多行/列看成一个整体) flex-flow:flex-direction和flex-wrap的简写属性 本质上控制了主轴和侧轴分别是哪一根,以及他们的方向 项目 order:控制项目的排列顺序 align-self:项目自身富裕空间的管理 flex-shrink:收缩因子(默认值为1) flex-basis:伸缩规则计算的基准值(默认拿width或height的值) 6.伸缩规则 flex-basis(默认值为auto) flex-grow(默认值为0) 可用空间 = (容器大小 - 所有相邻项目flex-basis的总和) 可扩展空间 = (可用空间/所有相邻项目flex-grow的总和) 每项伸缩大小 = (伸缩基准值flex-basis + (可扩展空间 x flex-grow值)) flex-shrink(默认值为1) --.计算收缩因子与基准值乘的总和 var a = 每一项flex-shrink*flex-basis之和 --.计算收缩因数 收缩因数=(项目的收缩因子*项目基准值)/第一步计算总和 var b = (flex-shrink*flex-basis)/a --.移除空间的计算 移除空间= 项目收缩因数 x 负溢出的空间 var c = b * 溢出的空间 7.侧轴富裕空间的管理 单行单列 align-items align-self(优先级高) 多行多列 align-content 8.flex的简写属性 flex:1 (flex-basis:0% flex-grow:1 flex-shrink:1) 等分布局

    day6

    响应式布局核心 CSS3媒体查询选择器 @media 媒体类型 and(关键字) 带条件的媒体属性 and 带条件的媒体属性 { //规则 } 媒体类型 all screen print 媒体属性 width:浏览器的窗口尺寸 device-width:设备尺寸 device-pixel-ratio(必须加webkit前缀):像素比 ---以上三个媒体属性可加 min 和 max 前缀 min:最小值为谁 max:最大值为谁 横竖屏切换 orientation:landscape(横屏) orientation:portrait (竖屏) 关键字 only:处理浏览器尽量问题 and:连接一条查询规则 ,:连接多条查询规则 not:取反 多列布局 规范 HTML 什么叫html5? 是一个强大的技术集(html5 ~ html+css+js) CSS 什么是css3? css3其实就是html5的一部分,而且现代前端中已经没有版本的概念,都是级别 JS ECMASCRIPT DOM BOM(没有规范,window) 预处理器(less) 变量 @ 变量的延迟加载 变量是块级作用域 嵌套 &:平级 混合 什么是混合? 将一系列的规则集引入另一个规则集中(ctrl c+ctrl v) 混合的定义在less规则有明确的指定,使用.的形式来定义 普通混合(编译到原生css中的) 不带输出的混合(加双括号) 带参数的混合 带默认值的混合 匹配模式 arguments 计算 加减乘除 计算的一方带单位就可以 继承

    day7

    1.less的继承 #test{ &:extend(.father) } #test:extend(.father){ } 继承实质上将.father选择器和#test组合成一个选择器, 声明块使用.father的 all:继承所有和.father相关的声明块 切记父类不能定义成混合(继承不灵活性能高 混合灵活性能低) 2.less的避免编译 ~"不会被编译的内容" 变量在less中属于块级作用域,延迟加载 3.bootstrap栅格系统&源码分析 流体容器 width:auto 两侧15px padding 固定容器 阈值 xs(小于768px) width:auto sm(大于等于768px) width:720+槽宽 md(大于等于992px) width:940+槽宽 lg(大于等于1200) width:1140+槽宽 两侧15px padding 行 两侧-15px margin 列 公共样式 两侧有15px 的padding 相对定位 float width 1~12 left right 0~12 0:auto margin-left 0~12 4.列排序 注意阈值上样式的设置不能跳跃

    day8

    1.width:auto width:100% 2.响应式页面 定制化:修改bootstrap的源文件 将bootstrap入口less文件作为混合使用 3.attr&prop ---什么是attribute? html的预定义和自定义属性 ---什么是property? js对象身上的直接属性 ---什么是布尔值属性,什么是非布尔值属性? property所对应的属性值是否布尔类型 ---attribute和property的同步关系 非布尔值属性 实时同步 布尔值属性 没有动过property attribute会同步property property不会同步attribute 动过property attribute不会同步property property不会同步attribute ---浏览器认谁,用户操作的是谁 property ---在jQuery中的体现 attr() prop() ---总结 布尔值属性最好使用prop方法 非布尔值属性attr方法 ---html5中有关的属性 classlist:相对于class的property(className) add remove toggle dataset:自定义属性(限制 data-x-y)的property 4.html5导学 html5的意义,到底什么是html5,html5的优势 h4与h5的对比 编码 渲染模式 mine类型 语义化标签 header footer section nav
    Processed: 0.010, SQL: 9