ctrl+F按照关键字查找需要的内容
<标签 属性=“值”></标签> 双标签,也叫常规标签 <标签 属性=“值”/> 单标签,也叫空标签
单双引号是成对出现的
标题标签: h1~h6,默认加粗变大,独占一行,依次变小
倾斜标签: i/em:在一行内显示,默认倾斜 i是视觉效果上的倾斜,em是倾斜体(强调作用) 加粗标签: b/strong:加粗标签,默认文本加粗,在一行显示,strong强调 作用 下划线标签: u,在一行内显示 功能标签: br换行,hr水平线 上下标: sup:上标;sub:下标 段落标签: 单独占据一行,里面不能嵌套块元素,div,p,a,h
 :空格 >:> <:< © ©
目录文件夹: 普通的项目文件夹 根目录: 打开文件夹的第一层 绝对路径: 从盘符开始往下 相对路径: 图片相对于HTML的位置。 ./强调在这一级;…/返回上一级
一般用来做导航或列表
自定义列表: 单独占据一行,一个dl包含一个dt和多个dd 一般用于做双导航目标:实现应用之间的跳转
<a href ="跳转地址" target = "跳转方式"></a> target = "_new"在新页面刷(很久没点击会打开新页面而不是在新页 面刷新) ="_self"当前页面刷新 ="_blank"打开新页面 title="鼠标悬停提示文本"图片常见格式:png,jpg,gif
<img src="图片地址" alt="加载失败时显示,搜索引擎判断用,必须有" title="鼠标悬停文本" height/width="只写一个另一个等比例缩放" >文件夹的命名: 数字字母下划线美元符号中划线,第一个不能是数字
盒子标签:单独占据一行,结合CSS搭建页面结构
table>tr>td 属性:
border:边框 bordercolor:边框颜色 BgColor:背景颜色 width: height: cellspacing:单元格间隙 cellpadding:边框与内容之间的间距 align:center,left,right对齐方式(写在表格上是表格相对于窗口的位置) valign:top/bottom/middle垂直对齐方式 colspan:跨行对齐 rowspan:水平对齐th: 加粗居中的td 建议不要省略tbody
注意事项:
input写在form里面List item按钮属性value需要提交的写上name POST和GET的区别: POST非明文提交,不在地址栏输出,没有长度限制,不会丢失数据,数据安全,但速度慢 GET铭文提交,有长度限制,可能会造成数据丢失,数据不安全,一般提交数据较短,提交速度快span标签:容器标签,没功能***包裹文本,给文本添加样式***。 样式分类:外部样式,内部样式,行内样式
创建方式:
生成独立的CSS文件,第一行写: @charset "utf-8"; 在head标签中加入在外部样式表中选中对应的元素添加样式开发中不建议使用@import的引入方式
写在style标签里面
谁靠后改变谁,谁加上选择器移入谁 7. 群组选择器:
选择器1,选择器2,选择器3 { 各算各的,用到那个就算哪个的权重 } 包含选择器(后代选择器); 选择器 选择器 选择器 { 键值对; } ! important写在属性值后面,这样写优先级最高文字分为四条线:顶线,中线,基线,底线 两行文字之间的距离:上一行底线和下一行顶线之间也有间隙,测量元素高度(第一行文字顶部到第二行文字顶部,也称为行高)
值:颜色单词;16进制;rgb();rgba() ,a的范围0~1
px:具体像素值 %:跟随父元素的大小 em:跟随父元素的大小,成倍数关系 rem:跟随根元素,与根元素大小成倍数关系 默认16px,最小限制12px middle:16px
bolder/bold/normal/100-900{取整百}
italic/oblique/normal italic是指斜体字,oblique是斜体效果(没有斜体字用这个)
单位:px 行高小于高度值:偏上 行高大于高度值 :偏下 不带单位和带%:需要乘以字体大小,从而得到行高为px 不能为负数
font:倾斜 加粗 文本大小/行高 字体类型;(文本大小之后的顺序不可调)
注意: font-size:20px; font:16px/16px arial; 显示为16px,但是font-size的值依旧是20px
可以取负值 只对第一行起作用 2em代表缩进两个字符
注意:有四个值:left,center,right,justify(两端对齐)
none:去掉修饰 underline:下划线 overline:上划线 line-through:中划线
letter-spacing:字符间距(汉字与汉字之间,英文字母之间拆开) word-spacing:词间距(只对英文单词有效)
可以为负数:字间距,词间距,首行缩进
list-style:修饰符的形状 disc:circle,square list-style-image:url(“图片地址”);//修饰符替代为图片 list-style-position:outside(默认),inside(都是相对于li来说的) list-style-type:none等价于list-style:none
border:大小 形态 颜色(没顺序) border-left border-left-style/width/color
先写个容器:宽高为0 border:20px solid transparent(或者rgba(0,0,0,0)); 然后:border-left-style:red
background-color:背景颜色 background-image:背景图片 background-position:背景图片位置 关键字写法:left , center,right,top,bottom(水平和垂直都是center可以省略),具体像素(可以为负值) background-size:背景定位(CSS3) 单位:px或者%(只写一个代表宽度,等比例缩放) auto:不改变宽高 cover:等比例缩放填满整个容器,不会变形,某些部分可能无法显示 contain:缩放至某一边贴紧容器边缘 background-repeat:背景图是否重复 no-repeat,repeat-x,repeat-y,repeat
background-attachment:背景关联 scroll(滚动,默认)/fixed(固定)
background:color image repeat position/size attachment; position和size的顺序不能错误
常见错误: background:url(),url() 前面一个不要设置颜色,不然报错
line-height:60px; height:60px;
float(浮动): 值:left,right,none 作用:在一行显示 元素默认文档流:从上至下,从左至右 浮动影响: 脱离文档流,浮动元素会挨着父元素的边缘,浮动影响后写的元素,不影响先写的元素 相同方向:先浮动的显示在前面 不同方向:左浮找左浮,右浮找右浮
浮动的先后是取决于在文档流中的位置,和CSS样式的顺序无关
贴靠现象:浮动最后一个元素超过父元素剩下的宽度,会找上一个元素贴上去,还不够的继续找上一个,宽度超过父元素直接在最下面
浮动是不遮挡文字的
登高不等宽,等宽不等高的两个div可形成图文结合
不可继承的:
display, margin,padding,border,background,height,min-height,min-width,max-width,max-height,overflow,position,right,top,bottom,z-index,float,clear,table-layout,vertical-align所有元素可以继承:
visibility和cursor内联元素可以继承;
letter-sapcing,word-spacing,line-height,color,font,font-family,font-size,font-style,font-vertical,font-weight,text-decoration,text-transform块级元素可继承:
text-align和text-indent列表元素可继承:
list-style及其子属性(type,position,image)表格可继承:
border-collapse 注:a标签的颜色不可以通过父元素来修改继承标准盒模型:
内容区(content),填充(padding),外边距(margin),边框(border) 怪异盒模型: 特点:
padding和border都在元素的宽高内部,不会把盒子撑大 组成: 内容区域;width,height,padding 边框:border 外边距:margin 触发条件:
条件1: 丢失<!doctype html>,对于IE6,7,8 条件2: box-sizing:是否为怪异盒模型 content-box:标准盒模型 border-box:怪异盒模型触发怪异盒模型之后,在给元素添加border或者padding就不会把盒子撑大,也不需要去做减法了
也就是说占位高height+margin*2:
padding padding-left:左内边距 padding-right:右内边距 paddingt-top padding-bottom
综合写法; padding:上下左右 padding:上下 左右 padding;上 左右 下 padding:上 右 下 左 特点:
顺时针方向 不能为负值 没有auto 会撑大父元素margin 综合写法与padding一致
顺时针方向;可以为负值;有auto,表示水平自适应让元素水平居中;不会撑大父元素 到此可以为负数的:字间距,词间距,背景定位,首行缩进,外边距width= 左右内边距+左右边框+左右外边距 Height = 上下内边距+上下边框+上下外边距
加字符或者hr可以隔开,但是带来新的问题
只写一个方向的边距(不要写一个top,一个bottom,外边距集中在一个上)
可以通过父元素的内边距或者加边框阻隔(padding或border隔开) 水平方向是不会重叠的 也可以给父元素的第一格子元素加上浮动 overflow:hidden
值:
visible显示 hidden隐藏 scroll滚动查看 auto超出滚动 inherit继承父元素overflow属性overflow可以解决外边距溢出问题(子元素外边距设置大了超出),但是子元素超出部分被隐藏
给父元素加上hidden,可以解决外边距重叠,但是超出部分隐藏
div里面的数字和字母没有空格是不会换行的,被解析成一个单词
clip;裁减超出部分 ellipse:省略号(一般用这个)
white-spacing:nowrap overflow:hidden text-overflow:ellipse 必须是单行文本才能设置文本溢出(多行文本可自行百度)
分块级元素,内联元素,内联块元素(CSS2.1增加)
block,如div,form,table,ul,li,dl等 特征:
单独占据一行 能设置宽高 能设置正常内外边距 矩形显示inline,如:span,a,i,em,textarea,select 特征:
在一行显示 不能设置宽高 能设置左右内外边距,不能正常设置上下内外边距 不是矩形显示(上下外边距无效,上下内边距会遮挡文本或被文本遮挡)
inline-block,也属于内联(可以说只分两种,块级,内联) img,input 特征:
在一行显示 能正常设置宽高 能正常设置内外边距 矩形显示多个空格和换行解析成一个空格,想要实现多个可以借助之前说的转义字符和<br>标签
这里的隐藏是不占位置的
大部分的块级元素默认block,其中li为list-item 大部分内联元素为inline,其中input,img默认为inline-block行内块和行内元素的对齐方式(并列关系,垂直对齐) top/middle/bottom 作用:改变两个元素的垂直对齐方式
下面是最常用的情况:
父元素加上text-align:center 给当前元素转为行内块元素,再加上vertical-align:center 给同级加上span(需要inline-block属性),设置: vertical-align:middle; width:0; height:0; display:inline-block;置换元素:浏览器根据元素的属性和标签,来决定具体显示的内容 img依靠src,input依靠type决定(记住这两个就行了)
非置换元素:不是置换元素的元素
基线:英文字母的基线正好是小写字母x的·正下方
普通流,浮动流,定位流 定位作用:改变元素的位置 position:static(默认),absolute,relative,fixed
static:写不写无所谓 absolute:绝对定位 脱离文档流(不占位) 会遮挡文字(和浮动的区别) 默认参考有定位的父元素,没有满足条件的父级元素就会参考浏览器窗口 可以为负值 元素大小有内容撑起来 不设置坐标等同浮动效果(但会产生扑克牌堆叠效果)参考点默认是浏览器的窗口 relative:相对定位
可以遮挡其他元素 占据文档流 设置坐标参考自身的初始位置(设置left,top实际效果为right,bottom) 不会破坏布局 设置left,bottom是参考自身的左下角 sticky:黏性定位 结合了相对定位和绝对定位,平时在文档流中,滚动条滚动时(下拉一定程度),会粘在窗口上,一般看到的是导航栏 left和top有效二级导航: ul>li里的li设置为相对定位,,包含ul>li,ul设置相对定位 鼠标划过去会display:none 尽量少用定位
包含块就是为定位元素提供坐标,偏移和显示范围的参照物,最大为HTML 元素嵌套: 子用relative,父用absolute
定位元素层级关系:z-index 有定位元素才可以使用,值越大优先级越高,默认0/auto,可为负值
href里面装id选择器
使网页更加灵活,适应不用窗口大小和设备等。
外边距最好不要自适应
要写百分比必须加上这个 html,body{ height:100%; }宽度自适应:html,body{width:100%}或者不写
高度自适应:自适应元素高度:height:auto或者不写(靠内容撑起来)
子元素浮动可以加高度
子元素高度为百分比,那么父元素必须设置高度
定位时的坐标可以是百分比
实战技巧: 有的背景观察像素发现像素间颜色不一致(为图片),可以纵向切宽一像素 作为图片,然后repeat-x即可。
min-height:IE6不识别,height:在IE6识别成最小高
方法一:
min-height:60px;//IE6不识别 height:auto ! important;//IE6不识别 height:60px://IE6解析成最小高方法2;
min-height:100px; height:auto;//IE6不识别 _height:100px;//IE6识别成最小高方法3:
min-height:100px; height:100px;值:visible显示;hidden隐藏 和display的区别: 都是显示隐藏 前者占据文档流,后者不占据
通过CSS设置对应的元素 单双引号都可以的
content是必须的,后面可以跟空字符串表示不写内容 注意:下面只是用于块元素
选择器::first-line{}
选择器::first_letter{}
::before { content:"" } ::after { content:"" } div:first-line{ 必须是块元素 } div:first-letter { 必须是块元素 }原因: 子元素浮动,父元素没有设置高度 解决:
1. 给父元素加上高度(不灵活) 2. 父元素加上overflow:hidden(触发BFC,但是超出部分隐藏) 3. 给父元素最后加上一个空div,设置clear:both/left/right(代码冗余,解析网页变慢) 4. 万能清除法(重点): clear::after {//伪对象选择器 content:".";//里面是有内容的 display:"block"; clear:both;//前三行效果就出来的 width:0;//可以不写 height:0; visibility:hidden; overflow:hidden;(超出宽0高0部分隐藏) }5.父元素也跟着浮动(不准使用,因为父元素产生了新的高度塌陷问题)
目的:引入这个模板可以省事,可被多个页面同时使用,比一个页面写一次要好
@charset "utf-8"; html,body,,ol,ul,lih1,h2,h3,h4,h5,h6,p,th,td,dl,dd,form,fieldset,legend,input,textarea,select{margin:0;padding:0;}//去除这些元素自带的内外边距,不用星号因为*的范围大,有无效功 body{font-size:16px; font-family: '微软雅黑';} ul,ol,li{ list-style:none;} h1,h2,h3,h4,h5,h6{font-size:16px; font-weight: normal;} b,strong{ font-weight: normal;} i,em{font-style: normal;} a,u{ text-decoration: none;} img{border:0;display:block;//去除下边3px的像素} input,fieldset{ outline: none;//去除框框的蓝色模糊光条border:0;} .clear_fix:after{//清除浮动 content:'.'; clear:both; height:0; width:0; overflow:hidden; display:block; visibility: hidden; } .clear_fix{//兼容IE浏览器zoom:1;} .fs12 {font-size:12px}//一直到font-size20px .psa{ position:absolute;}//绝对定位 .psr {position:relative}//相对定位 //背景色类,一般是网站主打色 .bgRed{background-color:red;} .fw_b{font_weight:bold;} .fw_n{font-weight:none;} //用得最多的 .fl {float:left} .fr {float:right}注意:要写在所有的link最前面
写在table里面:
border-spacing:边框间距,不能为负数
border-colspan:separate(默认)/collapse合并边框
table-layout:单元格宽度是否固定(加快运行速度)
auto(默认,自适应);fixed(固定宽度)
empty-cell:无内容单元格设置:show显示,hidden隐藏·
multiple:多选
注意:name值要一致,不然不能单选
checked 或者 checked = "checked“ 表示默认选中(单选和多选)name值不同,也存在checked disabled="disabled"或者disabled表示禁用
selected="selected"或者selected表示默认选中 name不是必须的 disabled有效
文本域属性: resize:禁止拖拽,一般CSS设置宽高 cols:字符宽 rows:字符高 可以自由拖拽
auto是基于总宽度——已知固定宽度获取到的,inline-block元素水平方向的属性没有总宽度的限制,所以margin设置为auto时,不知道如何取值,所以默认为0,于是没有我们的居中效果
自己也搞不懂需要常看链接 BFC是一个独立的布局环境,其中的元素不受外界影响,并且在一个BFC中,块盒与行盒(行盒有一行中的所有内联元素组成),都会垂直的沿着其父元素的边框排列
HTML根元素 添加了浮动的元素(除了none) 添加了定位的元素(absolute,fixed) 添加了display的元素(inline-block,table-cell,table-caption,flex,inline-flex) 元素添加了overflow:(visible除外)
内部的Box在垂直方向,一个接一个的放置 BOX垂直方向的距离由margin决定。属于同一个两个相邻的BOX的margin会发生重叠 每个盒子(行盒与块盒)的margin box的左边,与包含块border box的左边相接触(对于从左往右的格式化,否则相反),即使存在浮动也是如此 BFC的区域不会与float box重叠 BFC就是一个页面上隔绝的独立容器,容器里面的元素不会影响外面的元素。反之也如此。 计算BFC的高度时,浮动元素也参与了计算。 text-transform:capialize(首字母大写)/uppercase(全大写)/lowercase(全小写)
解决了margin叠加问题 解决了高度塌陷问题 解决了覆盖问题(两列布局):浮动后面跟标准流,标准流变为BFC就可以和浮动元素分开
1、两列布局,三列布局 2、解决高度塌陷(解决高度塌陷的问题) 3、解决外边距溢出的问题
重置样式:就是之前的public.css
@charset "utf-8"; html,body,ol,ul,li,h1,h2,h3,h4,h5,h6,p,th,td,dl,dd,form,fieldset,legend,input,textarea,select{margin:0;padding:0;}//去除这些元素自带的内外边距,不用星号因为*的范围大,有无效功 body{ font-size:16px; font-family: '微软雅黑'; } ul,ol,li{ list-style:none; } h1,h2,h3,h4,h5,h6{ font-size:16px; font-weight: normal; } b,strong{ font-weight: normal; } i,em{ font-style: normal; } a,u{ text-decoration: none; } img{ border:0; display:block;//去除下边3px的像素 } input,fieldset{ outline: none;//去除框框的蓝色模糊光条 border:0; } .clear_fix:after{//清除浮动 content:'.'; clear:both; height:0; overflow:hidden; display:block; visibility: hidden; } .clear_fix{//兼容IE浏览器 zoom:1; }不同浏览器去读取对应的css属性
-ms- IE浏览器 -moz- firefox浏览器 -webkit- webkit内核的浏览器 -o- 欧朋浏览器渐变不是背景颜色,而是背景图 background-image也可以,但是background-color是错误的 让你在两个或多个指定的颜色之间平稳的过渡
background:linear-gardient(direction,color-step1,color-step2,…) direction 默认to bottom 自上而下的变化 to right bottoim 自左上到右下 角度:水平线和渐变线逆时针之间的角度,0deg为自下而上,90deg为自左到右,可为负数
有的浏览器的标准旧的,0deg自左到右,90deg自下而上。
格式转换:90 -标准角度 = 非标准角度
stop:颜色分布位置,默认均匀分布,三个颜色默认每个33.3%。
background:-webkit-linear-gradient(left,red,green); background:linear-gradient(to left,red,green);不加to 需要兼容前缀,step可为像素或者百分比
由一点向四周渐变
background:radial-gradient(center,ellipse,closest-side,red,green);
第一个参数开始位置(可为单词或者两个百分比) 第二个参数形状(ellipse默认椭圆,circle默认圆形,容器为正方形时两者一样) 第三个参数:渐变到哪里停止,closest-side,farthest-side;closest-corner;farthest-corner 第四个参数:颜色
一定的时间内平滑的过渡(如鼠标点击,获得焦点,被点击等对元素改变的触发) 简写:
transition:all/具体属性值 运动时间 s/ms 动画类型 延迟时间 linear(动画类型:线性)坐标系:水平x轴(向右为正),垂直y轴(向下为正)
translate(100px)水平向右移动100px
0.01~0.99缩小
scale(1):默认第二个值和第一个值相等 第一个值为水平方向,第二个值为垂直方向 scaleX():只在水平缩放 scaleY():只在Y轴缩放 负数会先缩小,再按照绝对值放大接收角度(单位deg),如果参数为正值围着原点中心顺时针旋转,为负值围着原点中心逆时针旋转
一个值时表示水平方向的倾斜角度 第一个值为水平方向的倾斜角度 第二个值为垂直方向的倾斜角度
默认时元素的中心基点,transform进行的函数变换都是围绕着中心位置发生变化的
单位百分比或者像素
小总结
transform: translate()两个参数,只写一个默认变x轴 rotate()默认第二个参数等于第一个参数,可以rotateX和rotateY skew()两个参数,第一个水平第二个垂直 scale():一个参数:正值顺时针,负值原点逆时针 简记: transform四特点:移缩斜转在父元素中:prespective:1200px; 在子元素中: transform:perspective(1200px); 通常只设置父元素,数值在900px~1200px之间
center center(中心) left top 100% 100% 右下角
相对于2D多出来个z轴靠近屏幕为正,远离屏幕为负
transform-style属性:指定嵌套位置如何在3D空间中呈现
值:flat(默认,2D)和preserve-3d表示所有子元素在3D空间中展示
translateZ(t)和translate3D(tx,ty,tz)
rotateX(a) rotateY(a) rotateZ(a) rotate3d(x,y,z,a) x,y,z为0~1之间的的数值,围绕各自轴旋转的矢量值 a是角度值,旨在3D空间中的旋转,正值代表正旋转,负值代表逆时针旋转
scaleZ()和scale3D()两个功能函数 scale3D中,x,y为1时,tz表示在Z轴上等比例缩放
注:单独使用是没有任何效果,需要配合其他的变形函数才能一起使用
关键帧: 过渡动画只实现了第一帧到最后一帧这连个关键帧,而关键帧动画可以实现任意多关键帧,实现更复杂的动画效果
或者:
@keyframes mymove { 0%{初始化状态值} 50%{可以添加几个类似的关键帧} 100%{结束状态属性} }相同点:随着时间改变的元素 不同点:transition需要触发一个事件;而animation在不需要任何事件触发的情况下也可以随时改变CSS样式
简写:
animation: mymove east-in-out 2s infinite alternate; 动画名 过渡类型 持续时间 循环次数 是否反向动画名需要配合keyframes使用 过渡类型:
linear线性 ease-in由慢到快 ease:平滑 ease-out:由快到慢 step-start:马上跳到动画每一帧结束的状态infinite
无限循环/也可以为数字表示循环次数是否往返:
normal正常 reverse;反方向 alternate:现正向再反向,交替持续 alternate-reverse:先反向再正向,交替持续没写的:动画的状态running/paused(暂停鼠标移入动画时)
文件名: .html或者.htm
DOCTYPE不区分大小写
指定字符集编码
< meta charset=“UTF-8” >
不可以写结束标记的元素:(和平时一样)
br,col,embed,hr,img,input,link,meta
可以省略结束标记的语句:
li,dt,dd,p,option,colgroup,thead,tbody,tfooter,tr,td,th 基本和表单相关的元素(标签)
可以省略全部的标签元素:
html,body,head,colgrounp,tbody 也就是大框架可以省略,但是不要这么干,不然看不懂
属性值可以用单引号,可以用双引号(前端一向单双引号自由,不严谨)
小总结: 文件名 doctype 不可以写结束标记的标签 可以写结束标记的标签 可以省略全部的标签 属性上面的引号自由属性:
controls,出现该属性,向用户展示控件,如播放等控件 autoplay:视频就绪后立马播放 loop:重复播放 muted:静音 poster:规定视频正在下载时的图像,指导用户点击播放 <source></source>:写在媒体标签内部,后备资源供选择 type属性: 用于视频:video/ogg video/mp4 video/webm 用于音频:audio/ogg audio/mpeg下面也是面试题:什么是优雅降级,渐进增强
渐进增强:由小到大 优雅降级:针对低版本, 保证最近本的功能, 针对高版本浏览器进行新效果交互等进行改造达到最佳效果体验,由大到小 区别:降级意味着往前看,渐进意味着向后看选中的是:
<p class="title"></p>同时满足多个属性选择器可以将中括号写在一起
e[attr]:是e元素,且具有att属性 e[attr="value"],e元素,并且attr="value" e[attr~="value"]选取属性值中包含指定词汇的元素 e[attr^="value"]选取属性值是指定值开头的元素(类似正则的样子) e[attr$="value"]选取属性值以指定值结尾的元素(类似正则的样子) e[attr|="value"]选取必须带有指定值开头的属性值的元素,该值必须是整个单词 e[attr*="value"]:属性值包含指定值的某个元素 属性选择器简记 e[属性="value"] //只有等于表示必须是value(精准匹配) 等于号前是:(模糊匹配) ~ 包含value这个单词 ^ 必须value开头 $ 必须value结尾 | 必须以value为整个单词开头 * 无论什么位置只要有这个单词就行下面选择器你知道长什么样子吗
伪对象选择器 伪类选择器 属性选择器 群组选择器 包含选择器(后代选择器)学习补充:浮动元素大小被撑起来后可以设置宽高,拥有块级特性
word-wrap:
normal:断字点换行(浏览器保持默认处理) break-word:属性允许长单词或者URL地址换到下一行
word-break:
break-all:进行单词内断句 keep-all:文本不会换行,只会在半角空格或者连字符处换行
background-origin:背景图起始位置
backfround-clip:背景图裁减(图片不一定完整) border-box从边框开始 padding-box:从内边距区域开始 content-box:从内容区开始
background-size:背景图大小 数值,百分比,contain(不会超出但可能填不满),cover(超出可能显示不全)
多个背景图:backfround:url(),url();
颜色模式: hsl(色调,饱和度,亮度) hsla h(0~360) s(0~100%) l(0~100%) a(0~1)
border-image是复合写法
border-image-source 用在边框的图片的路径。 border-image-slice 图片边框向内偏移(不加单位)。 border-image-repeat 图像边框是否应平铺(repeat)、铺满(round)或拉伸(stretch) border-image-outset 边框图像区域超出边框的量(值是一个倍数)border-radius:(左上) (右上)(右下) (左下) border-radius:(左上) (右上左下)(右下) border-radius:(左上右下) (右上左下) border-radius:四个角 可以指定单个
下载图标 在页面种引入iconfont.css 调用对应图标的类名
calc( 数值 - 数值 ) 一定要注意空格 有的时候需要加前缀 如width:calc(100% - 200px);//连个元素浮动在一行
可以穿透div点中下面的div(没用过,看看知道就好)
不推荐看下面的部分,推荐链接阮一峰flex布局
display:flex,inline-flex(类似行内,行内块)
子元素宽度超过父元素也不会换行注:设置容器后子元素的float,clear,vertical-align都失效
元素默认在水平摆放;元素宽度由内容撑起来,高度和父元素一致
子元素为行内元素也可以设置宽高
特点:
弹性盒子里面的离他最近的一层子元素都可以添加大小如果想让弹性盒子里面的一个子元素左右上下居中,只需要给子元素加上margin:auto就可以了弹性盒子里面的子元素都是沿着主轴排列的 “主轴”可能是X轴也可能是Y轴,如果X是主轴,Y就是侧轴flex-direction:主轴方向
值意思row(默认)水平主轴(从左到右)row-reverse反向水平主轴(从右到左)column垂直主轴(从上到下)row-reverse垂直反向主轴flex-wrap:是否设置换行
值意思nowrap不换行wrap换行wrap-reverse反向换行综合写法:flex-flow:flex-direction flex-wrap
justify-content:设置项目在主轴上的对齐方式
flex-start:起始位置
flex-end:终点位置
center:整体居中
space-around:两端平分(像外边距)
space-between:两端对齐(去除两端的外边距)
space-evenly:两端对齐(空隙间距一致)(有的不支持) align-items:侧轴对齐方式
flex-start:起始位置
flex-end:终点位置
center:整体居中
baseline:文本底部对齐(容器对不对齐不参与)
stretch:拉伸(默认值,主轴水平方向拉升的是高度,否则是宽度) align-content:侧轴多根轴向对齐方式(应该是换行之后产生多个交叉轴) 将整个一行作为一个项目
flex-start:起始位置
flex-end:终点位置
center:整体居中
space-around:两端对齐
space-between:两端对齐
stretch:(没设高度时默认自适应高度)拉伸
align-self
会覆盖align-item,对单个项目有效
auto 默认值 stretch 拉伸 center 居中 flex-start 起始位置 flex-end 终点位置order:项目排序
数值越小越靠前,可以为负值,默认是0 flex-grow:项目的放大比例 默认是0,即存在剩余空间也不放大
都为1就会等分剩余空间(剩余空间按照flex-grow的值按比例分配)
flex-shrink:项目的缩小比例
默认是1,不够时都等比缩小;若是有为0的,那么除了为0的都缩小
flex-basis:分配多由空间之前占据的空间(使用和height差不多)
默认值是auto,即项目本来大小
上面的总结起来就是flex属性(建议使用这个属性,不要拆开写,因为浏览器会推算相关值) flex:flex-grow flex-shrink flex-basis (默认值0 1 auto) 快捷值:auto(1 1 auto) none(0 0 auto)用的少,看看就好
@media all and (min-width:320px) { body { background-color:blue;} }
and 被称为关键字,其他关键字还包括 not(排除某种设备),only(限定某种设备)
(min-width: 400px) 就是媒体特性,其被放置在一对圆括号中。
all支持所有类型,screen支持屏幕
在vscode里面自动创建的模板中包含一个mate标签(H5只允许它为单标签)
<meta name="viewport" content="width=device-width, initial-scale=1.0">不要手写,容易出错
width:宽度等于当前设备的宽度 initial-scale:初始缩放比例(默认设置1.0) minimum-scale:允许用户缩放最小比例 maxmum-scale:允许用户缩放最大比例 user-scalable:用户是否可以手动缩放(默认no)什么是物理像素 出场时你屏幕就决定了你的物理像素
逻辑像素 UI给你的设计图测出来的像素就是逻辑像素
css像素 你最终写的像素
设备像素比 这里需要查询文档,我这里离可能不准确
设备像素设备像素比(物理像素/逻辑像素)css像素750pxdpr = 2375px640pxdpr=21080pxdpr=3常见单位
单位表示什么px像素em父元素大小,和font-size成倍数关系rem根元素大小,和font-size成倍数关系vw跟浏览器窗口大小相关,1000vw=屏宽,随着浏览器宽度变化而变化vh同vw,是表示高度的vmin选择vm和vh中小的作为基准vmax选择vm和vh中大的作为基准 如果浏览器设置为1100px宽、700px高,1vmin会是较小的7px,而1vmax将是较大的11px。 然而,如果宽度设置为800px,高度设置为1080px,1vmin将会是较小的8px,而1vmax将会是较大的10.8px动态设置font-size
通过js(自行上网查找代码)通过vw注:要给body重置一下font-size,不然行内元素空格特别大
移动端布局:流式布局(文字流式,控件弹性,图片等比例缩放)
好处:横平竖直 ,对仗工整
后续补充
浏览器兼容; CSS bug(问题): css hack(解决办法): filter(过滤器): IE常见bug: 常见问题: bug1: 超链接里面的img,默认由蓝色边框 hack1:img{border:0/none;} bug2:img下方自带3像素间距 hack2:img{display:block;}或img不换行(有的能解决) bug3:浮动元素添加margin(在IE6下将解析双倍margin) hack3:给元素添加display:inline; bug4:默认高度,ie6- hack4:font-size为0或overflow为hidden; 非IE BUG: bug5:表单元素对齐不一致: hack5:添加浮动 bug6:按钮元素大小不一致 hack6:统一大小或者用a标签模拟 使用其他的标签模拟大小,去掉input原有的边框 如果是图片按钮,那么就使用背景图,同时去掉input的背景色。 bug7: cursor:hand 指针 ie9-识别 hack9: cursor:pointer; 所有的浏览器都识别 bug8:opacity:0.5 ;IE低版本不识别 hack8:fliter:alpha(opacity=50); 过滤器: bug9:最小高度设置 hack9:min-geight”100px;ie低版本不识别 _height:100px;IE低版本识别