top color:CSS 2024-04-18 09:53:19 0 0 一、CSS基本介绍: 1、css 层叠样式表 级联样式表 简称样式表 Cascadding Style Sheets 2、作用 ① 实现了内容与表现的分离 ② 提高了代码的可重用和可维护性 3、文件后缀 .css 4、css由浏览器解析执行,由上而下,由左往右的顺序 5、css不区分大写,建议小写 6、css的注释 /* 注释 */ 7、特点 ① 继承性 子元素可以继承父元素的样式 ② 层叠性 一个元素可以设置多个样式 ③ 优先级 样式冲突时,优先级高的样式生效 优先级相同时,后面的样式生效 8、语法 ① 属性:属性值;属性:属性值; ② 选择器{ 属性:属性值; 属性:属性值; 属性:属性值; } 二、HTML中引入CSS的方式 1、行内样式 内联方式(JS常用,css不常用,因为重用性低) 利用HTML的style属性(除了br,其他标签都有的属性) 语法: <开始标记 style=“CSS属性:属性值;”> css</结束标签> 2、内部方式 <head> <style> 选择器{ 属性:属性值; 属性:属性值; 属性:属性值; } </style> </head> 3、外部方式,实现了内容与表现的完全分离,提高了代码的可用性和可维护性(推荐使用) ① 新建css文件 ② head 中用link引入css文件 <head> <link rel="stylesheet" href="css/test01.css"> 引入网页的图标:<link rel="icon" href="img/plan.jpg"> </head> 引入方式的优先级: 行内样式>内部方式(外部方式) 内部方式和外部方式的优先级相同,写在后面的样式生效 三、基础选择器 1、全局选择器 *{} 2、id选择器 #box{} 3、类选择器 .box{} 4、元素选择器 p{} 5、合并选择器 p,div{} 6、交集选择器 p.box{} 选择器的优先级: 行内样式>ID选择器>类选择器>元素选择器>全局选择器 四、字体的属性 1、继承性(自己有样式不会继承父元素) ①字体颜色 color ②字体大小 font-size ③字体是否加粗 font-weight ④字体样式(是否倾斜) font-style ⑤字体 font-family color: ① 关键字:red,blue ② 十六进制 :0-9 a-f #000000 黑色(简写:#000) #ffffff 白色 (简写:#fff) ③rgb() 取值:0-255 rgb(0,0,0) 白色 rgb(255,255,255) 黑色 (三原色) ④rgba() a透明度 取值:0-1, 0:完全透明, 1:不透明, 0.18 简写.18 font-size:16px(默认) px:绝对单位,像素 em:相对单位 默认1em=16px font_weight: 取值: normal 默认值 bold 加粗 100-900 400=normal 700=bold font-style: 取值: normal:默认 italic:倾斜 字体:默认宋体 font-family:字体1,字体2。。。; 注意: 当字体包含空格,必须加引号 五、文本的属性 1、text-align 取值: left right center 2、text-decoration 取值: none:默认不显示 underline:加下滑线 overline:加上划线 line-through:删除线 3、text-transform 取值: none:默认 uppercase 所有字母大写 capitalize 首字母大写 lowercase 所有字母小写 4、text-indent 属性规定文本块中首行文本的缩进。 注意: 负值是允许的。如果值是负数,将第一行左缩进。 六、列表属性(可以写页脚和导航条) 1、设置项目符号 list-style-type:none 2、设置项目符号为图片 list-style-image:url(""); 3、设置项目符号的位置 list-style-position:outside/inside 4、简写 list-style:none; 七、表格属性 1)边框 border:width style color; 2)元素的大小 width:; height:; 3)背景属性 background-color:; background-image:; 4)内容距单元格的距离 padding:; 5)单元格之间的距离 border-spacing:; 6)元素内容水平对齐方式 text-align:left|center|right: 7)单元格内容垂直对齐方式(写在tr或者td上) vertical-align:middle|top|bottom; 8)边框折叠(相当于cellspacing="0") border-collapse:collapse; 八、背景属性 1、background-color:transparent(透明) 背景图颜色 取值: ① 关键字:red,blue ② 十六进制 :0-9 a-f #000000 黑色(简写:#000) #ffffff 白色 (简写:#fff) ③rgb() 取值:0-255 rgb(0,0,0) 白色 rgb(255,255,255) 黑色 (三原色) ④rgba() a透明度 取值:0-1, 0:完全透明, 1:不透明, 0.18 简写.18 2、background-image:url("") 背景图图片 默认水平平铺(背景图小,背景图大 只显示从左上角到背景图片大小位置) 背景图片优先级高于背景颜色 3、background-size 背景图大小 默认跟图片大小一样 background-size:x y 单位:px,% cover(背景图片覆盖整个背景区域,但背景图片可能显示不全) contain(背景图优先级高,但背景区域可能覆盖不全) 当只取一个值,另外一个值等比例缩放 4、background-attachment 背景图是否固定 默认滚动 background-attachment:scroll/fixed(固定) 5、background-position 位置 默认左上角 background-position:x y 单位:px,% left center right top bottom 当支取一个值,另一个为center 背景图片默认位置 0 0 取正值往右下 反之左上 6、background-repeat 背景图是否平铺 默认平铺:repeat no-repeat :不平铺 (常用) repeat-x:水平方向平铺 repeat-y:垂直方向平铺 7、background 背景图简写 background :color image size fixed position repeat (没写的取默认值) 当背景图片大小或背景图片定位取值为px 或百分比值时,一般不简写 当简写属性跟单个属性同时存在,单个属性写在简写属性下面 九、关系选择器 1、后代选择器 空格 选择器1 选择器2{} 范围:选中所有后代 2、子代选择器 > 选择器1>选择器2{} 范围:选中所有直接子代 3、相邻兄弟选择器 + (相邻的后一个兄弟) 选择器1+选择器2{} 范围:评级 选中相邻的后一个兄弟 4、通用兄弟选择器 ~ 选择器1~选择器2{} 范围:选中后面所有兄弟 十、其他属性 1、内容溢出-overflow 设置溢出的内容 visible 默认值 溢出 hidden 溢出部分隐藏 (开启BFC格式:独立的一块,子元素的变动对父元素没有影响) auto 自动 内容溢出,显示滚动条;内部不溢出,没有滚动条 scroll 滚动条 2、white-space 一行文字溢出,省略号显示 ①文字在同一行显示 white-space:nowrap; ②溢出部分隐藏 overflow:hidden; ③文字溢出 text-overflow:ellipsis; 3、行高-一行文字的高度 属性 line-height-继承性 行高等于高,一行文字垂直居中 取值px number 例如:line-height:2; 相当于 line-height:32px; 4、元素透明度 例: opacity:.88 opacity:; 取值0-1 0:完全透明 1:不透明 注意和rgba的区别 5、字符之间的距离 letter-spacing:; 可以取正负 */ .box{ letter-spacing: -10px; } 5、伪类选择器 冒号链接,表示一个状态 :link 点击之前(只适用于a) :visited 点击之后(只适用于a) :hover 鼠标悬停(适用于所有元素) :active 鼠标按下(适用于所有元素) 当四个选择器同时存在于一个元素,必须按着先爱后恨的原则(L_V_H_A) 例: /*点击之前*/ a:link{ color: pink; } /*点击之后*/ a:visited{ color: palegreen; } /*鼠标悬停*/ .box:hover{ background-color: green; color: red; opacity: .5; } a:hover{ color: deepskyblue; } /*鼠标按下*/ .box:active{ background-color: deepskyblue; } a:active{ color: green; } CSS3新增伪类选择器 :first-child 第一个子元素是... :last-child 最后一个子元素是... :nth-child(number|odd|even|倍数) 第几个子元素是... :first-of-type 第一个子元素 :last-of-type 最后一个子元素 :nth-of-type(number|odd|even|倍数) 第几个子元素 :only-child 唯一一个子元素是... :nth-last-child() 后面第几个子元素是... :nth-last-of-type() 后面第几个子元素 :empty 空的子元素 :not(选择器) 配合表单 :focus 获取焦点时的样式 :checked 被选中时的样式 ::selection 内容被选中 十一、盒模型 1、标准盒模型 w3c盒模型 1)组成部分 content+padding+border+margin 2)content 内容区域 width:; 元素的宽度 height:; 元素的高度 min-width:; 最小宽度 max-width:; 最大宽度 min-height:; 最小高度 max-height:; 最大高度 块级元素可以设置宽高,行内元素设置宽高不生效 块级元素默认宽度为100%,行内元素默认宽度由内容撑开 块级元素和行内元素的高度默认都由内容撑开 3)border 边框 border-style:solid(实线)|dashed(虚线)|dotted(点线)|double(双实线)|none(不显示); 边框的样式 必须属性 默认3px 黑色 border-width:; 边框的宽度 border-color:; 边框的颜色 简写:border:style color width; 设置四周的边框(边框下面有背景颜色) 单边的边框: border-top:width style color; border-top-width:; border-top-style:; border-top-color:; border-bottom:width style color; border-bottom-width:; border-bottom-style:; border-bottom-color:; border-left:width style color; border-left-width:; border-left-style:; border-left-color:; border-right:width style color; border-right-width:; border-right-style:; border-right-color:; 4)padding 内边距 不能取负值和auto 设置内容距边框的距离 语法: padding:value; 四周 padding:value value; 上下 左右 padding:value value value; 上 左右 下 padding:value value value value; 上 右 下 左(顺时针) padding-top:; padding-right:; padding-bottom:; padding-left:; 注意:padding会撑大容器 5)margin 外边距 可以取正负,auto 设置元素之间的距离 margin是透明的 语法: margin:value; 四周 margin:value value; 上下 左右 margin:value value value; 上 左右 下 margin:value value value value; 上 右 下 左(顺时针) margin-top:; margin-right:; margin-bottom:; margin-left:; 应用: ①块级元素水平居中 margin:0 auto; 注意: ①垂直方向上外边距合并 当垂直方向上外边距相撞时,取较大值 (浮动元素不合并) ②margin-top问题 6)实际大小 宽度:width+padding+border+margin 高度:height+padding+border+margin 2、怪异盒模型 1、怪异盒模型 IE盒模型 1)组成部分 content+padding+border+margin 2)实际大小 实际宽度:width+margin width包含了border和padding 实际高度:height+margin width包含了border和padding 3)盒模型的转换 box-sizing:content-box; 默认值 标准盒模型 box-sizing:border-box; 怪异盒模型 3、全局样式 第一个子元素设置margin-top,父元素会跟着一起下来 解决: 1)父元素加overflow:hidden;(开启BFC格式,变成独立的一块,子元素不会影响父元素) 2)父元素或者子元素加浮动(开启BFC格式,变成独立的一块,子元素不会影响父元素) 3)父元素加border:1px solid transparent; 4)父元素加padding-top:1px; */ .box1{ width: 498px; height: 498px; background-color: palegreen; /*overflow: hidden;*/ /*float: left;*/ /*border: 1px solid transparent;*/ padding-top: 1px; } .box2{ width: 300px; height: 300px; background-color: plum; margin-top: 50px; /*float: left;*/ } 十二、伪对象选择器 1、插入文字 .box::before{ content: "我是css插入的文字"; } .box:after{ content: "我是css插入的文字"; } 2、插入图片 .box::before{ content: url("魅族/images/1c31db15-ab85-4932-8e6c-edfd6039bc60.png"); } .box::after{ content: url("魅族/images/1c31db15-ab85-4932-8e6c-edfd6039bc60.png"); } 3、插入div 自定义插入的内容 .box::before{ content: ""; width: 200px; height: 200px; background-color: red; //转换为块级元素 display: block; } .box::after{ content: ""; width: 200px; height: 1px; background-color: green; display: block; } 十三、浮动 1、作用 布局(块级元素水平显示) 2、原理 元素浮动后排除到普通文档流之外 元素浮动后在页面不占据位置(原位置不保留) 浮动是碰到父元素边框或者浮动元素的边框就会停止 浮动不会重叠 浮动只有左右浮动 元素浮动后都转为块级元素 块级元素默认宽度为100%,有浮动的情况下,宽度变为有内容撑开 3、语法 float:left|right|none; 4、清除浮动影响 如果父元素没有设置高度,默认有内容撑开,当子元素浮动后,父元素的高度为0(高度坍塌) 会对后面的元素产生影响 解决方法: ①父元素设置高度(高度已知的情况下) ②父元素增加overflow:hidden(√)|auto;(会自动找高) ③受影响的元素加clear:left|right|both;(父元素的高度会找不到) ④空div法,在浮动元素后加空div(父元素的高度可以找到,缺点:页面会新增很多空元素,影响页面加载速度) 空div{clear:both;} ⑤伪对象法 浮动元素的父元素::after{ content:""; display:block; clear:both; } ⑥加浮动 十四、元素的定位 注意: 1、参照点,2、元素定位后原位置是否保留 1、属性:position 2、属性值: ①static 默认值 静态定位(没有定位) ②relative 相对定位 相对于自己的原位置定位 定位后原位置保留 配合 left,right,top,bottom移动 (当山下左右同时生效时,左上优先级高) 应用场景: a、配合绝对定位使用 b、自己小范围移动 ③absolute 绝对定位 相对于已经定位(relative,absolute,fixed)的父元素定位,如果父元素没有定位,逐级往上找,最后会相对于body定位 绝对定位后,原位置不保留 配合 left,right,top,bottom移动 (当山下左右同时生效时,左上优先级高) 应用场景: 形成独立的一层 ④fixed 固定定位 相对于浏览器窗口定位 定位后位置不保留 配合left,right,top,bottom移动 应用场景: 固定在页面某个位置 ⑤sticky 相对和固定定位的结合 没有滚动条,是相对定位 有滚动条,是固定定位 1、 z-index 堆叠顺序 默认值 auto(跟父元素一致) 取值number 取值越大,层级越往上 可以取负值 必须配合定位使用(relative,absolute,fixed) 默认 两个元素同时定位,后面的元素在上 2、display 属性: 属性值: none 隐藏,隐藏后不占据位置 block 块级元素 inline 行内元素 inline-block 行内块,即在同一行显示,又可以设置高度,行内块会识别代码之间的空白 常见的行内块:img input button video等 flex 弹性盒模型 table 表格 table-cell 单元格 3、隐藏的区别 display:none;隐藏自己,隐藏后原位置不保留 opacity:0; 隐藏直接,隐藏后原位置保留 visibility:hidden;隐藏直接,隐藏后位置保留 overflow:hidden;溢出部分隐藏 4、设置属性后不占据位置 ①float:left|right; ②position:absolute; ③position:fixed; ④display:none; 块级元素默认宽度为100%,变为宽度由内容撑开 5、块级元素和行内元素的区别 ①块级元素独占一行,垂直展示,行内元素在同一行显示 ②块级元素默认宽度100%,行内元素默认宽度由内容撑开 ③块级元素可以设置宽高,行内元素设置宽高不生效 ④块级元素可以设置margin和padding的四周,行内元素只能设置margin和padding的左右 ⑤布局时块级元素可以包含块级元素和行内元素,行内元素一般不要包含块级元素 ⑥display属性值不同,块级元素默认值为block,行内元素默认值为inline ⑦块级元素:div,p,h1-h6,hr,body,html,ul,ol,li,dl,dt,dd,form,header,nav,footer,aside,article,section等 ⑧行内元素:span,img,a,i,b,u,s,del,sup,sub,em,strong,input,button,textarea,video等 6、BFC块级格式上下文 形成独立的一块 可以开启BFCdg格式的属性: ①float:left|right; ②position:absolute|fixed; ③overflow除了默认值visible; ④display:flex|table-cell; 7、圆角 border-radius 取值 px % 可以取4个值 8、盒阴影 box-shadow:水平方向偏移位置 垂直方向偏移位置 模糊度 颜色 位置; 必须 必须 可选 可选 可选 正负 正负 正值 outse|inset 9、字阴影 text-shadow:水平方向偏移位置 垂直方向偏移位置 模糊度 颜色; 必须 必须 可选 可选 10、背景渐变 1)线性渐变 background-image:linear-grandient(方向,颜色1,颜色2,。。。); 方向可以省略,默认从上往下渐变 取值: ①关键词 to bottom,to right, to right bottom ②弧度 直接写弧度(deg) 2)径向渐变 射线渐变 扇形渐变 background-image:radial-gradient(渐变的中心点,渐变的形状,颜色1,颜色2,。。。); 渐变的形状可以省略,默认为椭圆,取值circle 渐变的中心点可以省略,默认在元素的正中心 11、兼容性问题 1)厂商前缀 解决浏览器对c3新特性的支持 浏览器 厂商前缀 内核(渲染引擎:解析HTML,css,js) google -webkit- blink Firefox -moz- gecko IE -ms- trident 苹果 -webkit- webkit 欧朋 -o- blink 2)css hack 解决IE版本低的兼容性问题 ①条件hack 条件注释法 位置同HTML的位置 语法: 例子: <!--[if IE 7]> <![endif]--> <!--[if 条件]> <![endif]--> 条件: IE版本号 gt IE 版本号 大于 gte IE 版本号 大于等于 lt IE 版本号 小于 lte IE 版本号 小于等于 ②属性前缀和后缀 前缀:+ - _ * # 后缀:\0 \9 \9\0 !important(优先级最高) 3)转换 变型 ①作用 使元素在位置或者形状上发生一定的改变 ②属性 transform:translate() rotate() scale() skew();位移 旋转 缩放 倾斜 只写一个属性值时 其他属性值为默认值 ③属性值 1> translate 位移 单位px % transform:translate(x,y); 取正值,往右下走 取负值,往左上走 当只有一个参数时,表示水平方向移动的距离 当有两个参数时,表示水平方向和垂直方向移动的距离 transform:translateX(); transform:translateY(); 了解:3D位移 transform:translate3D(x,y,z); transform:translateZ(); 2> rotate 旋转 单位deg transform:rotate(); 取正值,顺时针旋转 取负值,逆时针旋转 元素默认的中心点为宽高的交叉点,可以通过transform-origin:;去修改元素的中心点(一般不改,改的例子:transform-origin:right bottom; 中心点改为右下) 注意: 旋转会旋转页面整个坐标轴,当位移和旋转同时存在,推荐先位移再旋转 了解:3D旋转 translate:rotateX(); 以x轴转动 translate:rotateY(); 以y轴转动 3>scale 缩放 取值number 取值0-1 缩小 取值<1 放大 默认 1 transform:scale(x,y); 当只取一个值,等比例缩放 当取两个值,表示水平和垂直方向 transform:scaleX(); transform:scaleY(); 了解3D缩放: transform:sacale3D(x,y,z); transform:scaleZ(); 4>skew 倾斜 单位deg transform:skew(x,y); 当取一个值,表示水平方向倾斜的弧度 当取两个值,表示水平和垂直方向倾斜的弧度 transform:skewX(); transform:skewY(); 12、过渡 1)作用 从一种样式过渡到另一种样式 2)过渡必须要有触发事件 ①鼠标悬停,鼠标点击 3)过渡的属性: ①过渡的属性--必须: transition-property:属性1,属性2; 可以过渡的属性: a、取值为数值 with height margin padding top left 等 b、取值为颜色 background-color border-color等 c、转换 transform d、阴影 box-shadow text-shadow ②过渡的持续时间--必须 transition-duration:时间1,时间2; 默认 0s|0ms(毫秒) 1s = 1000ms ③过渡的时间速度变化类型--可选 transition-timing-function:; ease 默认值 先加速后减速 ease-in 加速 ease-out 减速 ease-in-out 先加后减 linear 匀速 ④过渡的延迟时间--可选 transition-duration:; 默认 0s|0ms(毫秒) 可以取负值,表示把这段时间的效果跳过 ⑤简写 transition:过渡属性all 持续时间2s 速度变化型linear 过渡延迟时间2s; 13、动画 1)作用 可以复制复杂的动画(可以控制过程) 可以控制动画的执行次数 可以没有触发事件(页面一加载就触发动画) 2)定义动画 @keyframes dh { 0%{ width: 200px; height: 300px; background-color: orange; transform: rotate(45deg); } 30%{ width: 300px; height: 200px; background-color: yellow; border-radius: 50%; } 80%{ width: 500px; height: 500px; background-color: green; transform: translateY(250px) translateX(250px); } 100%{ width: 800px; height: 800px; background-color: #2c99ff; background-image: radial-gradient(red,orange,gold,greenyellow,burlywood,plum); box-shadow: 0 5px 5px sandybrown; transform: scale(.5) skew(30deg); } } 添加厂商前缀 @-webkit-keyframes name{} @-moz-keyframes name{} @-o-keyframes name{} @-ms-keyframes name{} 3)调用动画 animation:name 持续时间(s|ms) 速度变化类型 延迟时间 播放次数(number|infinite) 播放方向(alternate 偶数次倒序播放) 动画停在最后一帧(forwards); 必须 必须 可选 可选 可选 可选 可选 4)动画的属性 animation-name:;动画名称--必须 animation-duration:;动画持续时间--必须 animation-timing-function:;动画速度变化类型--可选 取值: ease 默认值 先加速后减速 ease-in 加速 ease-out 减速 ease-in-out 先加后减 linear 匀速) animation-delay:;动画的延迟时间--可选(可以取负值) animation-iteration-count:;动画的播放次数--可选 animation-direction:;动画播放的方向--可选(alternate:偶数次数倒序播放) animation-fill-mode:;动画停在最后的一帧--可选 animation-play-state:running|paused(暂停);动画的播放状态--可选(一般配合hover使用) 5)动画实现幻灯片效果 14、媒体查询 media query 响应式布局:媒体查询、bootstrap、js+rem等 1)什么是响应式布局 写一次样式兼容所有终端 2)优点 适配各个终端比较灵活 3)缺点 代码量大 4)语法 ①内部引入 移动端 @media screen and (max-width:768px){} ipad端 @media screen and (min-width:768px) and (max-width:992px){} pc端 @media screen and (min-width:992px){} ②外部引入 移动端 <link href="" rel="stylesheet" media="screen and (max-width:768px)"/> ipad <link href="" rel="stylesheet" media="screen and (min-width:768px) and (max-width:992px)"/> pc端 <link href="" rel="stylesheet" media="screen and (min-width:992px)"/> <meta name="viewport" content="width=device-width, initial-scale=1"> 十五、弹性盒模型 1、盒模型 1)标准盒模型 浏览器默认 2)怪异盒模型 3)弹性盒模型 伸缩盒模型 flex box 多用于移动端布局 弹性盒模型中float clear vertical 不生效 ①父元素上的属性 1)开启弹性盒模型 display:flex; 子元素默认水平排列 2)设置弹性盒模型的方向(设置子元素怎么排列) flex-direction:; row 默认值 子元素水平排列(从左往右) column 子元素垂直排列(从上往下) row-reverse 子元素水平倒序排列(从右往左) column-reverse 子元素垂直倒序排列(从上往下) 3)子元素在主轴上的对齐方式 默认主轴为x轴,侧轴为y轴, 当子元素垂直排列时,主轴为y轴,侧轴为x轴 justify-content:; flex-start 默认值 弹性盒的开始 flex-end 弹性盒的结束 center 居中 space-around 在子元素四周分配父元素剩余空间,两端的距离是中间的一半 space-between 在子元素之间分配父元素剩余的空间 ②子元素上的属性 flex-grow:number; 子元素分配父元素剩余空间的比例 当子元素没有设置宽度,父元素开启弹性盒模型,子元素的默认宽度由内容撑开 字体图标 iconfont 1)打开官网 iconfont.cn 2)图标库 3)搜索需要的图标,添加到购物车 4)下载代码 5)HTML文件中引入iconfont.css 6)元素class=“iconfont” 7)复制Unicode编码到双标签之间 8)修改iconfont的样式通过字体的样式 雪碧图 css sprite css精灵 1)定义 雪碧图是一项图片整合技术 把许多小图片整合到一张大图上面 2)优点 ①减少页面http请求 ②减少图片字节数 ③减少命名困扰 3)原理 background-image:url(); background-position:; 收藏(0)