前端 |
您所在的位置:网站首页 › 前端标签选择器 › 前端 |
目录 WHAT 书写位置 选择器 浮动属性/标准盒模型 文本属性/背景属性/列表属性/溢出/阴影 元素类型 定位/锚点/透明 表格/BFC 宽高自适应 渐变/过渡/动画 2D-3D 弹性盒布局 WHAT层叠样式表(cascading style sheet ) 关于CSS的层叠性 当不同选择符的样式设置有冲突的时候,高权重选择符的样式会覆盖低权重选择符的样式相同权重的选择符,样式遵循就近原则:哪个选择符最后定义,就采用哪个选择符样式CSS语法:选择器:(选择符){属性1:属性值1;属性2:属性值2;} 书写位置 行内式 权重1000 直接写在标签的style属性书写不需要选择器,一般只在特殊情况下考虑设置单个属性不能多次复用,不利于后期维护,修改起来很麻烦内嵌式 在页面 书写一个style标签以选择器的形式书写样式在style标签中选择器决定样式作用在哪些标签上缺点:只能在一个页面中使用css样式,适合案例书写外链式 在css文件中书写通过link的href属性引入到页面中还有一种@import的引入方式link与@import引入方法的区别 1. 本质的差别:link属于XHTML标签,而@import完全是CSS提供的一种方式 2. 加载顺序的差别:当一个页面被加载的时候(就是被浏览者浏览的时候),link引用的CSS会同时被加载,而@import引用的CSS会等到页面全部被下载完再被加载。所以有时候浏览@import加载CSS的页面时开始会没有样式(就是闪烁),网速慢的时候还挺明显 3. 兼容性的差别:@import是CSS2.1提出的,所以老的浏览器不支持,@import只有在IE5以上的才能识别,而link标签无此问题 4. 使用dom(document object model文档对象模型 )控制样式时的差别:当使用javascript控制dom去改变样式的时候,只能使用link标签,因为@import不是dom可以控制的 选择器通配符 权重0 标签选择器 权重1 类选择器 权重10 ld选择器 权重100 绝对权重 !important 后代选择器 空格 子代选择器 > 相邻选择器 + 相邻所有兄弟节点 ~ 交集并集选择器 伪类选择器 权重10 伪对象选择器 权重1 属性选择器 结构选择器 状态伪类选择器 否定选择器 伪类选择器 :link 默认状态 :visited 已访问状态 :hover 鼠标悬停状态 :active 鼠标按下但未松开状态 注意 除了:hover没有限制,其他三个只能作用在a标签上,并且顺序必须是liink visited hover active 伪对象选择器 ::before 在最前面添加一个结构 ::after 在最后面添加一个结构 注意 必须要有content,否则不出现; 添加的元素是一个行内元素 ::first-line 块级元素第一行 ::first-letter 块级元素的首字 属性选择器 ele[attr] 选中ele元素带有attr属性的元素 ele[attr="value"] 选中ele元素attr属性为"value"的元素 ele[attr=^"value"] 选中ele元素attr属性为"value"开头的元素 ele[attr=$"value"] 选中ele元素attr属性为"value"结尾的元素 ele[attr=*"value"] 选中ele元素attr属性的属性值包含子串"value"的元素 ele[attr][attr] 选中ele元素匹配多个attr属性的元素 ele[attr~="value"] 选中ele元素匹配部分attr属性的元素 在属性选择器的右方括号前添加一个用空格隔开的字母 i(或 I),可以在匹配属性值时忽略大小写; 在属性选择器的右方括号前添加一个用空格隔开的字母 s(或 S),可以在匹配属性值时区分大小写. 结构选择器 :first-child 第一个子元素 :last-child 最后一个子元素 :nth-child(xn + y) 第几个子元素(从1开始) 匹配所有下标在集合 { an + b; n = 0, 1, 2, ...} 中的子元素 偶数:even ;奇数:odd - 注意:以上几个必须和前置选择器配套 :first-of-type 第一个类型元素 :last-of-type 最后一个类型元素 :nth-of-type(xn+y) 第一个类型元素 状态伪类选择器 :checked 单选框复选框选中后的样式 :empty 空选择器 :root 根选择器 :selection 鼠标选中后的文本的样式 否定选择器 :not() 用来匹配不符合一组选择器的元素 浮动属性/标准盒模型浮动 float 目的 改变元素的排列方式,让元素一行显示取值 none 不浮动 left 左浮动 right 右浮动特点 会脱离标准文档流-在原始标准文档流不再继续占位 -浮动会遮盖原始文档流的内容,文本和图片不遮盖 盒模型 content 内容 padding 内边框 不可以设置负数 一个值: 上下左右两个值: 上下 左右三个值: 上 左右 下四个值:上右下左border 边框 1.边框属性 border-width边框的宽度 (数值+单位) border-style 边框的样式 (solid 实线、dashed 虚线、dotted 点线、double 双实线) border-color 边框的颜色 (颜色的css写法相同) 2.简写方式 属性: border 属性值: border-width border-style borde-color margin 外边框可以设置负数 一个值: 上下左右两个值: 上下 左右三个值: 上 左右 下四个值: 上右下左margin塌陷 上面的盒子给下margin,下面的盒子给上margin,按大的取值父子盒子都设置margin,父盒子和子盒子之间的margin重叠 解决办法 overflow hidden上 padding border 脱离标准文档流 标准盒模型 box-sizing:content-box 设置的宽高 就是 内容区域的尺寸整体尺寸 = 内容(设置的宽高) + padding + border +margin怪异盒模型 box-sizing:border-box 整体尺寸 = 内容 + margin 文本属性/背景属性/列表属性/溢出/阴影文本属性 1. font-size 文本大小 ● 网页中常用的单位是px ● 浏览器中默认大小是16px,浏览器中默认设置最小的字体大小是12px ● 除了px还有常见的pt、em等(12pt=16px 1em=16px) 2. font-family 文本类型 ● 当属性值是中文汉字时候需要加引号(引号也可省略) ● 当属性值是英文单词时候必须加引号 ● 多个字体中间用逗号隔开,表示从用户的电脑字体库中进行选择字体,默认先解析第1个字体,如果没有就解析第2个字体,以此类推 3. font-weight 文本加粗 ● 100~900 整百数(100~500表示正常字体、600~900表示加粗字体) ●lighter 细 ● bold 加粗的 ● bolder 更加粗的 ● normal 常规、清除加粗标签的默认样式 4. font-style 文本倾斜 ● italic 斜体的 ● oblique 更倾斜的 ● normal 常规、清除倾斜标签的默认样式 5. line-height 文本行高(单行) ● 当行高等于容器的高度时候,文本在垂直方向居中显示 ● 当行高大于容器的高度时候,文本在垂直方向往下移动 ● 当行高小于容器的高度时候,文本在垂直方向往上显示 6. text-align 文本居中 ● left 文本向左对齐(默认值) ● right 文本向右对齐 ● center 文本水平方向居中显示 ● justify 两端对齐(多行文本才有效果) 7. font 文本属性的简写方式 8. color 字体颜色 ● 英文单词 green、red、blue ● 十六进制 #000000、#999 ● rgb/rgba(red、green、blue) 9. text-decoration 文本修饰 ● underline 下划线 ● overline 上划线 ● line-through 删除线 ● none 没有、清除下划线 10. text-indent 首行缩进 ● 只针对于第一行文本起作用 ● 可以设置px、em单位 ● 可以设置负值 ● 注意:只能在块级元素中使用(能设置宽高大小) 11. letter-spacing 文字间距 12.word-spacing 词间距 13.text-transform 转大小写 ●touppercase 转大写 ●tolowercase 转小写 文本溢出 overflow:当文本超出容器时候显示方式 ● visible:默认值,内容不会被修剪,会呈现在元素框之外 ● hidden:内容会被修剪,并且其余内容是不可见的 ● scroll:内容会被修剪,但是浏览器会显示滚动条,以便查看其余的内容 ● auto:如果内容被修剪,则浏览器会显示滚动条,以便查看其他的内容 省略号的设置方法 当单行文本超出时候需要设置省略号,需要以下四个条件 1. 容器宽度 width:value 2. 文本强制性在一行内显示 white-space:nowrap 3. 溢出内容为隐藏 overflow:hidden 4. 溢出文本显示省略号 text-overflow:ellipsis(默认值为clip) 背景属性 background 复合背景样式 background-color 背景颜色 background-image: url(地址) 背景图片 background-size 背景图片尺寸 background-position 背景图片定位 background-repeat 背景图片重复 background-clip 背景图片裁切 + 默认:border-box 填充到边框位置 + padding-box 填充到padding区域 + content-box 填充到内容区域 background-origin 背景图片原点 + 默认:padding-box padding 左上角 + content-box 内容左上角 + border-box 边框左上角 列表属性 list-style:none 清除有序和无序的默认样式 阴影 文字阴影 + 样式:text-shadow + 取值:x轴阴影 y轴阴影 模糊 颜色 - 可以写多个阴影,多个之间用逗号分隔 盒子阴影 + 样式:box-shadow + 取值:x轴偏移量 y轴偏移量 模糊 扩散 颜色 - 书写的时候,可以写多个阴影,多个之间用逗号分隔 元素类型行内元素 + 一行并列 + 不设置宽高:宽高默认是内容宽高 行内块元素 + 一行并列 + 可以设置宽高:宽高默认是内容宽高 + 多个行内块之间有可控间隙 vertical-align属性:控制行内块元素在垂直方向的对齐方式 baseline 基线对齐(默认值)top 顶部对齐bottom 底部对齐middle 居中对齐块级元素 + 独占一行 + 可以设置宽高 + 默认宽度是父元素的宽度 + 默认高度是内容的高度 元素类型切换 display + inline 行内 + inline-block 行内块 + block 块 + none 不显示 隐藏元素的方式 display:none visibility:hidden overflow: hidden(注意是溢出隐藏 opacity:0 定位:定出页面外 元素居中的方式 1、水平方向居中 块元素居中 margin:0 auto;(直接给居中的块元素)非块元素居中 text-align:center2、垂直方向居中 文本文字居中 line-height:设置成高度一样3、行内块元素(图片)居中 父元素上行高为父元素的高居中的图片元素上 vertical-align:middle4、绝对居中(垂直和水平)都居中 定位,左上书写父元素的一半,margin 拉回盒子本身一半(偏移)定位,上下左右都是0,margin:auto; 定位/锚点/透明定位(position) 取值: static 静态定位absolute 绝对定位 + 相对于该元素的定位父级relative 相对定位 + 相对于自己,不脱离文档流fixed 固定定位 + 可视化窗口sticky 粘性定位概念 - 结构父级:书写html结构写在外面的标签 - 定位父级: 当前元素的所有父级结构中,距离最近的一个非静态定位元素 z-index属性:层叠属性,规定元素的显示层级关系 ● auto 默认值 ● number 设置元素的堆叠顺序 锚点 1. 概念:命名锚点链接是网页制作中超级链接的一种,又叫命名锚记 2. 作用 a. 在同一页面内的不同位置进行跳转 b. 不同页面内也可以设置跳转 3. 使用方法 a. 同一页面(点击a标签跳转到同一页面的指定位置) ■ ■ b. 不同页面(点击a标签跳转到另外一个页面的指定位置) ■ ■ 透明 1. 标准浏览器:opacity:value 取值0~1之间 2. IE低版本浏览器:filter:alpha(opacity=value) 取值0~100之间 表格/BFC表格 标签名称 table、tr、td 表格相关属性 width/height/border 宽度/高度/边框bordercolor/bgcolor 边框颜色/背景颜色align/valign 水平对齐/垂直对齐cellspacing/cellpadding 单元格与单元格之间的间距/单元格与内容之间的间距colspan/rowspan 列合并/行合并表格的HTML标签及属性 表格的标题 表格的列标题 、 表格的列分组 span、width属性、 、 表头、表体、表尾 注意:当使用数据行分组的时候表头和表尾一定要成双成对的出现,表体会默认示一个rules属性 groups 行列分组之间有分割线rows 行与行之间有分割线cols 列和列之间有分割线all 所有的分割线都存在none 所有的分割线都没有表格的css属性 border-spacing 单元格之间的间距 属性值为value值,需要给父级table设置不可以设置为负值border-collapse 单元格边框合并 separate 分开的(默认值)collapse 合并的empty-cells 无内容时单元格的设置 show 显示的(默认值)hide 隐藏的table-layout 单元格的计算属性 auto 自动的、有计算属性(默认值)fixed 固定的、无计算属性BFC 1. 概念:Block Formatting Contexts (块级格式化上下文),只针对于块级元素,可以把 BFC 理解为一个封闭的空间,内部的布局与外面的毫不相干 2. 特点 ● BFC就是页面上的一个独立容器,容器里面的元素不会影响到外面的元素 ● 盒子垂直方向的距离由margin决定,属于同一个BFC的两个相邻盒子的margin会发生重叠 ● BFC内部的盒子会在垂直方向,一个接一个的放置 ● 盒子的左边与包含块的边框相接触才可以移动位置 ● BFC的区域不会与浮动盒子发生重叠 ● 计算BFC的高度时,浮动元素也参与计算 3. 触发条件 ● 根元素 html默认就是一个BFC ● float的值设置为left或者right ● overflow的值不为visible ● display的值为inling-block/table-cell/table-caption/flex/inline-flex ● position的值为absolute或fixed margin重叠 相邻兄弟元素的margin-bottom和margin-top发生重叠,这时候我们可以设置其中一个元素为BFC即可解决 父元素的margin-top和子元素的margin-top发生重叠,他们发生重叠是因为这两个元素是相邻的,所以可以通过以下几种方法来解决: 为父元素设置padding-top或border-top来分割他们设置父元素为BFC父元素和第一个子元素之间添加一个内联元素来进行分割高度为auto的父元素的margin-bottom和最后一个子元素的margin-bottom发生重叠,他们发生重叠一个原因是他们是相邻的,另一个原因是父元素的高度是不固定的,那么可以通过以下几种方法来解决: 为父元素设置padding-bottom或border-bottom将他们分开为父元素设置一个高度,height、max-height或者min-height都可以解决把父元素设置为BFC父元素和最后一个子元素之间添加一个内联元素进行分割没有内容的元素,自身的margin-top和margin-bottom发生重叠,可以通过以下几种方法解决: 为元素设置padding或border为元素添加一个高度 宽高自适应定义 元素的大小能够根据窗口或子元素自动调整,这就是自适应作用 能够使网页显示更灵活,可以适应在不同设备、不同窗口和不同分辨率下显示 宽度自适应 1. 浏览器是块级元素,宽度默认是100% 2. 当块级元素设置宽度为100%或者宽度不写的时候,默认是占满浏览器全屏宽度(通栏效果) 3. 子级元素不设置宽度,会与父级等宽(宽度没有继承,只是布局规范效果) 4. 如果当前元素没有设置宽度并且脱离文档流的时候,宽度由内容决定 高度自适应 1. 浏览器默认高度是0,常用的设置html,body{height:100%} 2. 设置height:0 容器的高度就是0不会显示,设置内容的时候会超出容器 3. 设置height:auto、或者height不写的时候,设置内容的时候可以实现自适应 高度塌陷问题 当父元素未设置高度时,所有子元素浮动后,造成子元素脱离文档流进而无法把父元素撑开,父元素高度为0产生高度塌陷 解决方案: 1,给父级设置高度 2,触发BFC 触发BFC的方法: 根元素;html标签就是一个BFC。float的值不为none;让父元素浮动起来,这种方式开启虽然可以解决父元素的高度塌陷问题,但父元素也会浮动,可能引起其他布局问题。display的值为inling-block/table-cell/table-caption/flex/inline-flex;overflow: auto/hidden/scroll (不为visible)position的值为absolute或fixed;3,给所有的浮动元素后面(即div2后)加一个空的标签。给添加的这个空标签添加声明 clear: both;/left;/right; 4,万能清浮动 .clear::after{ content: ''; clear: both;/*清除两侧浮动*/ display: block;/*转成成一个块元素*/ both; overflow: hidden; visibility: hidden; }浏览器 常见的五大浏览器 名字 内核 前缀 IE浏览器 Trident内核 -ms- Firefox浏览器 Gecko内核 -moz- Safari浏览器 Webkit内核 -webkit- Opera浏览器 最初是自己的Presto内核,后来是Webkit,现在是Blink内核 -o- / -webkit- / -blink- Google浏览器 以前是Webkit内核,现在是Blink内核 -webkit- / -blink- 渐变/过渡/动画渐变 线性渐变的使用:指定水平和垂直的起始位置来制作一个对角渐变 标准写法background linear-gradient (to 结束的方向值,to 结束的对角值,角度值(deg单位 ) 兼容写法background -浏览器前缀-linear-gradient (不加to,设置开始的方向,不加to,设置开始的对角,90° - 标准写法) 方向可以不写(默认是从上到下的)、多个参数之间使用逗号隔开 径向渐变的使用:带有指定的角度的线性渐变 属性值(参数1:起点位置;参数2:渐变形状;参数3:渐变大小) background -浏览器前缀-radial-gradient 默认center(方向值)/ 设置坐标值 ellipse 椭圆形(默认值) / circle 表示圆形 closest-side / farthest-side(最近/远边) closest-corner / farthest-corner(最近/最远角) 重复渐变的使用:重复线性渐变和重复径向渐变 重复线性渐变 background:repeating-linear-gradient 重复径向渐变 background:repeating-radial-gradient 过渡 transition-property 参与过渡的属性,默认是all transition-duration 过渡的时间,单位使用s transition-delay 过渡的延迟时间,单位使用s transition-timing-function 过渡运动的方式: ease/linear/ease-in/ease-out/ease-in-out transition 复合属性/简写方式 动画 创建动画 @keyframes 自定义动画名称{运动方式]单次运动: from...to/多次运动: 百分比调用动画 animation-name 要和Keyframes中自定义的名字一致 animation-duration 动画运动时间,单位是s animation-delay 动画延迟时间,单位是s animation-timing-function 动画运动方式(同过渡,steps) animation-iteration-count 运动次数(默认一次),infinite为无限次数循环 animation-direction 定义运动方向:normal(顺时针)/ reverse(反向的)/ alternate(先正反后) animation-play-state running 运动的(默认值)/ paused 暂停的 animation 复合属性 / 简写方式 2D-3D变形transform 常用的变形属性有以下几个: 1. transform:none 默认值 2. transform:translate 移动 、平移 (单位是px) 3. transform:scale 缩放 (没有单位, 默认值是1) 4. transform:rotate 旋转 (单位是deg 度数 ) 5. transform:skew 倾斜 (单位是deg 度数) 6. transform:perspective 景深 、视距(单位是px) 2D 2D中位移属性 transform :translateX(200px) 根据X轴给定的参数,从当前元素位置移动 transform :translateY(200px) 根据Y轴给定的参数,从当前元素位置移动 transform :translate(10px,20px) 简写:定义 2D 平移移动 2D中缩放属性 transform :scaleX(2) 通过设置 X 轴的值来定义缩放转换 transform :scaleY(3) 通过设置 Y 轴的值来定义缩放转换。 transform :scale(2,2) 简写:定义 2D 缩放 相等的时候可以设置一个参数 2D中旋转属性 transform :rotateX(30deg) 根据X轴给定的参数,从当前元素位置旋转 transform :rotateY(30deg) 根据Y轴给定的参数,从当前元素位置旋转 transform :rotate(一个参数) 默认等同于Z轴,正数顺时针、负数逆时针 2D中倾斜属性 transform :skewX(30deg) 通过设置 X 轴的值来定义倾斜转换 transform :skewY(30deg) 通过设置Y 轴的值来定义倾斜转换 transform :skew(30deg,130deg) 定义2D倾斜 转换基点属性 transform-origin:x y z x和y可以设置坐标值/方向,z轴只能是坐标值 景深效果属性 设置在父级元素上 perspective(1200px) 设置在子级元素上 transform:perspective(1200px) 注意 1. 用来设置用户和元素3D空间Z平面之间的距离 2. 值越小,用户与3D空间Z平面距离越近 3. 值越大,用户与3D空间Z平面距离越远 3D transform-style:设置的空间属性值 需要设置在父级元素上 flat(2D空间、默认值)/ preserve-3d(3D空间) 3D中位移属性 transform :translateZ(200px) 定义 3D 转换,只是用 Z 轴的值 transform :translate3d(10px,20px,30px) 定义 3D 平移移动 3D中缩放属性 transform :scaleZ(2) 定义 3D 缩放转换,单独使用没有效果 transform :scale3d(2,3,4) 定义 3D 缩放 3D中旋转属性 transform :rotateZ(30deg) 定义 3D 转换,只是用 Z 轴的值 transform :rotate3d(0,0,1,30deg) 定义 3D 旋转 3D中倾斜属性 倾斜没有Z轴的写法 弹性盒布局基本概念 - flex 布局是 一种盒子的布局方式 - 弹性盒 也是一种元素类型(display:flex转换) + flex 弹性元素 - 注意: 弹性元素不弹自己, 弹子元素 弹性父元素的属性 + 主轴方向调整 - 样式: flex-direction - 样式值: + row 主轴从左到右(默认) + row-reverse 主轴从右到左 + column 主轴从上到下 + column-reverse 主轴从下到上 - 注意: + 当主轴是 row 或者 row-reverse 的时候, 侧轴都是从上到下 + 当主轴是 column 或者 column-reverse 的时候, 侧轴都是从左到右 + 主轴方向上元素的排列方式 - 样式: justify-content - 值: + flex-start 堆放在开始位置(默认) + flex-end 堆放在结束位置 + center 堆放在居中位置 + space-between 把所有的空白位置均分在每两个元素之间(假设 6 个元素, 5 个空白) + space-around 把所有的空白位置均分放在每个元素两侧(假设 6 个元素, 12 个空白) + space-evenly 把所有的空白位置绝对均分(假设 6 个元素, 7 个空白) + 允许换行 + 样式: flex-wrap + 值: - nowrap 不允许换行(默认) - wrap 允许换行 + 注意: - 当元素开启换行以后, 换多少行决定了元素的排列位置 - 当元素开启换行以后, 会出现多个临时侧轴 + 每一行会有自己的临时侧轴 + 元素在侧轴上的排列方式(单行) + 指: 在不允许换行的情况下使用 + 样式: align-items + 值: - flex-start 放在侧轴开始位置(默认) - flex-end 放在侧轴结束位置 - center 放在侧轴居中位置 + 注意: 多行的情况下, 可以生效的, 前提: 不能有 align-content 样式 - 关注: 每一行的临时侧轴 - flex-start 把每一行元素放在临时侧轴的开始位置 - flex-end 把每一行元素放在临时侧轴的结束位置 - center 把每一行元素放在临时侧轴的居中位置 + 元素在侧轴上的排列方式(多行) + 指: 在允许换行的情况下使用(单行情况不生效) + 关注: 主要侧轴上(和每一行的临时侧轴没有关系) + 样式: align-content + 值: - flex-start 堆放在侧轴开始位置 - flex-end 堆放在侧轴结束位置 - center 堆放在侧轴居中位置 - space-between 把所有的空白位置均分在每两行元素之间(假设 3 行元素, 2 个 空白) - space-around 把所有的空白位置均分放在每行元素两侧(假设 3 行元素, 6 个 空白) - space-evenly 把所有的空白位置绝对均分(假设 3 行元素, 4 个 空白) 弹性子元素的属性 - 注意: 直接设置到弹性子元素身上 - 占有剩余空间的比例 + 样式: flex + 值: 一个数字(没有单位) + 计算方式: - 主轴方向的整体长度 减去 设置了固定宽度的元素 (800 - 400 === 400) - 计算所有书写了 flex 样式的元素的数字的总和当做分母 (10 + 30 === 40) - 每一个元素的 flex 的值就是 分子 + 注意: 当你没有换行, 并且元素出界以后, 开始挤压的时候, 优先挤压没有设置固定宽度的元素 - 排序 + 样式: order + 值: 一个数字(没有单位) + 意义: 谁大, 谁排在后面 - 自己单独在侧轴上的排列方式 + 注意: => 如果是单行 => 如果是多行, 按照每一行的临时侧轴来进行调整 + 样式: align-self + 值: => flex-start 放在侧轴开始位置 => flex-end 放在侧轴结束位置 => center 放在侧轴居中位置 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |