CSS

xiaoxiao2025-10-13  5

一.复杂选择器 1.结构伪类选择器 1.:only-child 匹配的元素是属于其父元素中的唯一子元素。 2.否定伪类 将满足指定选择器的元素给排除在外。 语法::not(selector){…} 3.伪元素选择器 1.::first-letter或:first-letter 作用:用于匹配元素的首字符 2.::first-line或:first-line 作用:用于匹配元素的首行 注意:如果首字符与首行样式冲突时,优先使用首字符样式。 3.::selection 作用:匹配被用户选取的内容。 注意:只能修改文本颜色和背景颜色。 练习:创建一个div元素,内容随意. 1.设置div中首字符样式为加粗,红色,大小为32px,右外边距为20px. 2.将首行的文本设置为橙色,斜体 3.用户选取内容时文本颜色为蓝色,背景为灰色。 4.内容生成 1.什么是内容生成 使用css动态的向元素中插入一段内容。 2.伪元素选择器 1.:before或::before 作用:匹配到某元素的内容区域之前。

(:before)床前明月光

2.:after或::after 作用:匹配到某元素的内容区域之后。 <p>床前明月光(:after)</p> 3.属性 属性:content 作用:向匹配到的位置处增加的内容 取值: 1.字符串,用""引起来。 2.url(图片路径) 练习:2分钟 <p>学而时习之,不亦说乎</p> <p>有朋自远方来,不亦乐乎</p> 输出显示如下: 子曰:学而时习之,不亦说乎 ——《摘自论语》 子曰:有朋自远方来,不亦乐乎 ——《摘自论语》 3.解决问题 1.上外边距溢出 1.在父元素的第一个子元素位置处 2.添加一个table标记,并且标记的内容为空 ex: 选择器::before{ content:""; display:table; } 2.解决浮动元素对父元素高度带来的影响 1.在父元素的最后一个子元素位置处 2.添加一个空的块级元素(display:block) 3.设置其clear属性的值为both ex: .类选择器:after{ content:""; display:block; clear:both; }

二.弹性布局 1.什么是弹性布局 弹性布局(Flexible layout)是一种布局方式,主要解决某元素中“子元素”的布局方式,为布局提供最大的灵活性。 2.弹性布局的相关概念 1.弹性布局容器 子元素的父元素称为容器 2.项目 要实现布局的子元素,称为项目 3.主轴 项目们排列方向的一根轴,称为主轴 如果主轴是x轴,那么y轴就是交叉轴 4.交叉轴 与主轴垂直相交的一根轴,称为交叉轴 3.语法 1.弹性(flex)容器 将元素变为flex容器后,那么所有子元素都将变为flex项目,都允许按照弹型布局的方式排列。 2.属性:display 取值: 1.flex 将块级元素变为容器 2.inline-flex 将行内元素变为容器 注意: 1.元素设置为flex容器之后,子元素的float,clear,vertical-align将失效。 2.元素变为flex容器之后,子元素尺寸允许被修改(把子元素变为块级) 3.容器属性 1.flex-direction 作用:指定容器的主轴及其排列方向 取值: (1)row 默认值,即主轴为x轴,起点在左端 (2)row-reverse 主轴为x轴,起点在右端 (3)column 主轴为y轴,起点在顶端 (4)column-reverse 主轴为y轴,起点在底部 2.flex-wrap 作用:当一个主轴排列不下所有项目时,项目是否换行显示。 取值: 1.nowrap:默认值,即空间不足时也不会换行,项目自动缩小。 2.wrap:换行 3.wrap-reverse:换行并反转 3.flex-flow 作用:是flex-direction和flex-wrap的缩写形式。 取值: 1.row nowrap(默认值) 2.direction wrap 4.justify-content 作用:定义项目在主轴上的对齐方式。 取值: 1.flex-start 在主轴的起点对齐。 2.flex-end 在主轴的终点对齐。 3.center 在主轴上居中对齐。 4.space-between 两端对齐。 5.space-around 每个项目两端的间距相同。 5.align-items 作用:定义项目在交叉轴上的对齐方式。 取值: 1.flex-start 交叉轴上起点对齐。 2.flex-end 交叉轴上终点对齐。 3.center 交叉轴上居中显示。 4.baseline 交叉轴上基线对齐。 5.stretch 如果项目未设置尺寸,在交叉轴上占满所有空间。 练习: 网页中添加一个div,id为parent,设置parent的边框,在parent中再添加两个子元素div,id分别为d1和d2设置d1和d2的尺寸和背景颜色,将父元素变为容器,并设置d1和d2在容器中水平、垂直都居中显示,并且当容器缩小时,不改变项目的尺寸。(3分钟) 4.项目属性 该组属性只能设置在某一个项目元素上,只控制一个项目,不影响其他项目。 1.order 作用:定义项目的排列顺序,值越小,越靠近起点,默认值为0。 取值:整数数字,无单位。 2.flex-grow 作用:定义项目的放大比例,如果容器有足够的剩余空间,项目按照比例放大。 取值:整数数字,无单位。 默认值0,不放大。 取值越大,占据剩余空间的比例越多。 3.flex-shrink 作用:定义项目缩小比例,即容器空间不足时,项目按照比例缩小 取值:整数数字,无单位,值越大缩小的越快。 默认值1,空间不足时,则等比缩小。 取值为0,则不缩小。 4.align-self 作用:定义当前项目在交叉轴的对齐方式 取值: 1.flex-start 起点对齐 2.flex-end 终点 3.center 居中 4.baseline 基线对齐 5.stretch 未设定项目高度时占满父元素空间 6.auto 自动继承父元素align-items的属性值。 练习: 用弹性布局完成如图所示效果 三.转换 1.什么是转换 改变元素在页面中的位置,大小,角度以及形状的一种方式。 2D转换:只在x轴和y轴上发生转换效果 3D转换:增加z轴的转换效果 2.转换属性 1.转换属性 属性:transform 取值: 1.none:默认值,无任何转换效果 2.transform-function 表示1个或多个转换函数 如果是多个转换函数,中间用空格隔开 2.转换原点 属性:transform-origin 取值:数值/百分比/关键词 2个值,表示原点在x轴和y轴的位置。 3个值,表示原点在x轴y轴和z轴的位置。

默认的原点是在元素的中心位置:(center,center)/(50%,50%)

3.2D转换 1.位置(位移) 1.什么是位移 改变元素在页面的位置。 2.语法 属性:transform 取值: 1.translate(x) 指定元素在x轴上位移距离 取值为正,元素向右移 取值为负,元素向左移 2.translate(x,y) 指定元素在x轴和y轴上位移一定距离 x:同上 y:指定元素在y轴上位移距离 取值为正,元素向下移 取值为负,元素向上移 3.translateX(x) 4.translateY(y) 2.缩放 1.什么是缩放 改变元素在页面中的尺寸(大小) 2.语法 属性:transform 取值: 1.scale(value) 取值为数字 value:横向和纵向缩放比例相同 默认值1,不缩放 value>1:放大 0<value<1:缩小 value<0:放大(水平和垂直方向都翻转180度)

2.scale(x,y) x:横向缩放比例 y:纵向缩放比例 3.单向缩放 scaleX(x)只在横向缩放 scaleY(y)只在纵向缩放 3.旋转 1.什么是旋转 改变元素在页面上的角度 2.语法 属性:transform 取值: rotate(ndeg) n取值为正,顺时针旋转 n取值为负,逆时针旋转 课后作业: 1.在页面中创建两个div,id分别为d1和d2,设置其尺寸为200*200px,添加不同背景; (1)将两个div都定位到父元素的左上角显示; (2)将d1先旋转45deg,再向右位移50px; (3)将d2向右位移50px,再旋转45deg,对比两个div的效果。 2.用弹性布局完成"课后作业.png"布局效果。
转载请注明原文地址: https://www.6miu.com/read-5037850.html

最新回复(0)