-
Notifications
You must be signed in to change notification settings - Fork 0
CSS3
五大类:基本选择器、层次选择器、伪类选择器、伪元素、属性选择器
- 基本选择器: * 通配符 E 元素选择器 #id id选择器 .class 类选择器 selector1,selectorN 群组选择器
- 层次选择器:E F 后代选择器 E>F 子选择器 E+F 相邻兄弟选择器 E~F 通用兄弟选择器 (除后代选择器,其他需ie7及以上版本)
- 伪类选择器:
- 动态伪类选择器 E:link E:visited E:active E:hover E:focus
- 目标伪类选择器 :target 选取链接的目标元素 只有存在url指向该匹配元素时,样式才会生效 (ie9+)
- 语言伪类选择器 E:lang(language)
- UI元素状态伪类选择器 E:checked 选中状态 匹配选中的复选框或单选按钮表单元素 E:enabled 启用状态 匹配所以启用的表单元素 E:disabled 不可用状态 匹配所以禁用的表单元素
- 结构伪类选择器 (ie9+)
- E:first-child
- E:last-child E:root 选择元素E所在文档的根元素 html文档中,根元素始终为html E F:nth-child(n) E F:nth-last-child(n) 倒数 E:nth-of-type(n) 选择父元素内具有指定类型的第n个E元素 E:nth-last-of-type(n) E:first-of-type E:last-of-type E:only-child 只包含一个子元素,且该子元素匹配E元素 E:only-of-type 只包含一个同类型的子元素 E:empty 没有子元素的元素,而且该元素也不包含任何文本节点
- 否定伪类选择器 :not() input:not([type=radio]) li:not(:hover)
- 伪元素 css3中伪元素有::2个冒号,主要用来区别伪类和伪元素,ie6-8仅支持单冒号表示法 ::first-letter 第一个字母 ::first-line 第一行文本 ::before ::after ::selection 用来匹配突出显示的文本 选中网站上的文字时的样式 仅接受2个属性,background 和 color
- 属性选择器 (ie7+) E[attr] E[attr=val] E[attr|=val] attr属性值是一个具有val或者以val-开始的属性值 E[attr~=val] 属性列表中有val E[attr*=val] 属性值中包含val E[attr^=val] E[attr$=val]
border: border-width border-style border-color
没有先后顺序 其中border-style是必须的
- none 无边框
- hidden 与none相同,不过应用于表时除外,对于表hidden用于解决边框冲突
- dotted 点状边框
- dashed 虚线边框
- solid 实线边框
- double 双线 双线的宽度等于border-width的值
- groove 定义3d凹槽边框,其效果取决于border-color的值
- ridge 定义3D 垄状边框
- inset 定义3Dinset边框
- outset 定义3d outset边框
- inherit 从父元素继承边框样式 ,部分浏览器不支持这个属性
border-color border-color: [ | transparent ] {1,4} | inherit border-top-colors 需把标准写法拆分成四个边框,使用多颜色才会有效果 每种颜色一像素,如果宽度大于颜色数量,最后一种颜色用于显示剩下的宽度 border-image border-image:none | [ | ] {1,4} [/ {1,4}] ?[stretch | repeat | round] {0,2}
- 引入背景图片: border-image-source
- 切割引入背景图片:border-image-slice
- 边框图片的宽度: border-image-width
- 边框图片的排列方式: border-image-repeat
border-image-source
border-image-source: url(image url) 默认为none
border-image-slice
border-image-slice:[ | ] {1,4} && fill ?
取值支持数值和百分比,数值没有单位默认为px。 百分比相对于边框背景图片而言的
fill 使用了这个关键字,图片边界的中间部分将保留下来。默认情况为空
特性:将边框背景图片切成9份,再像background-image一样重新布置
border-image-width
border-image-width: [ | | | auto ] {1,4}
border-image-repeat
border-image-repeat: [ stretch | repeat | round] {1,2} 默认是 stretch
最多2个值,第一个水平方向 第二垂直方向
设置一个值时,表示水平和垂直相同 不管什么排列方式,背景图片的四个角都不变(盲区)
使用border-image制作需要掌握三点: 源图片制作恰当 动刀切边框背景图片合理 边框宽度配合到位
border-radius border-radius: none | {1,4} [/{1,4}] 反斜杠 / 前面的值时水平方向半径,后面的值时垂直方向半径 length 由浮点数字和单位标识符组成的长度值,不可以是负值
如果要重置元素的圆角,取值为none并无效果,需要将元素的border-radius取值为0
和border 类似,可以单独拆开设置: border-top-right-radius: /
Gecko内核浏览器 (Firefox、flock等)写法: -moz-border-radius-topleft: /
border-radius 半径值小于或等于border的厚度时,元素边框内部就不具有圆角效果 border-radius 内边半径等于外边半径减去对应的边框宽度
表格应用圆角时: 当表格的border-collapse属性为separate时,表格圆角才能正常显示 第三方插件:ie-css3.js pie
圆形: 元素的宽度和高度相同 圆角的半径值为宽度的一半,或50% 半圆: 制作上半圆和下半圆,元素的宽度是高度的2倍,而且圆角半径值为元素的高度值 制作左半圆和右半圆,元素的高度是宽度的2倍,而且圆半径值为元素的宽度值 扇形: border-radius 制作四分之一圆形 三同,一不同 元素的宽度、高度和圆角半径相同 圆角位置不同 椭圆: 元素宽度是高度的2倍,border-radius的水平半径是宽度的值(至少是宽度的一半),垂直半径是高度的值(至少是高度的一半),垂直椭圆相反
阴影属性
box-shadow: none | [ inset x-offset y-offset blur-radius spread-radius color],[ inset x-offset y-offset blur-radius spread-radius color] 可设置多个投影,用逗号隔开
inset 可选,默认为外阴影 box-shadow: 阴影类型 阴影水平偏移量 阴影垂直偏移量 阴影模糊半径 阴影扩展半径 阴影颜色
阴影扩展版就可以为负值,正值阴影扩大,负值阴影缩小
水平偏移 正值 为右阴影 负值为左阴影 垂直偏移 正值为底阴影 负值为顶阴影
利用这种特性可以制作单边阴影
box-shadow: 0 0 2px #ccc; 只设置 阴影模糊半径和扩展半径来实现四边阴影
也可以只设置 扩展半径来设置四边阴影,并且可以实现边框的效果,但是不计入元素的宽度
层次关系 ,由下到上 外阴影 -> 背景色 -> 背景图片 -> 内阴影 -> 边框
只设置扩展半径 不设置模糊半径 配合多个阴影颜色 可以制作多色边框效果
背景 主要包括五个属性
- background-color
- background-image
- background-repeat
- background-attachment
- background-position
- background-attachment: scroll | fixed 默认为scroll 设置fixed 时,一般运用在html或body标签上,使用在其他标签上不能达到固定效果
新增属性
- background-origin 指定绘制背景图片的起点
- background-clip 指定背景图片的显示范围
- background-size 指定背景图片的 尺寸大小
- background-break 指定内联元素的背景图片进行平铺时的循环方式
background-origin 改变background-position 的起始位置 background-origin: padding || border || content 新版本浏览器下,一种新的语法: background-origin: padding-box || border-box || content-box
background-clip 背景裁切属性 定义背景图像的裁剪区域 background-clip: border-box || padding-box || content-box 在Gecko内核浏览器(firefox 3.6及之前)不支持content-box 用 border padding替代标准语法中的border-box padding-box
webkit内核下background-clip 还有个text属性 -webkit-background-clip: text -webkit-text-fill-color:transparent 可制作背景图片填充文本的效果
background-origin 和 background-clip 都可设置多个属性值,以逗号隔开
background-size 背景尺寸属性 background-size: auto || || || cover || contain
cover: 将背景图片放大铺满整个容器 contain : 保持背景图片本身的宽高比,将图片缩放到宽度或高度正好适应所定义背景的容器的区域
取值时,可以设置2个值,只取一个值时,是指定宽度,第二个值是高度,相当于auto
background-size:cover 配合 background-position: center 可以制作满屏背景效果
background-bread 内联元素背景图片平铺循环方式 仅firefox支持 -moz-background-inline-policy 3个属性值: bounding-box each-box continuous
多背景语法及参数 background: [background-image] | [background-position] [/background-size] | [background-repeat] | [background-attachment] | [background-clip] | [background-origin] , *
可拆解: background-image:url1,url2 background-repeat: repeat1,repeat2
除了backgrou-color 以外,去itde属性都可以设置多个属性,前提有多个背景图,多个属性用逗号隔开
文本 css文本功能主要分三大类:字体、颜色和文本 font-style 定义字体的类型 font-weight 定义字体粗细 font-size-adjust 定义是否强制对文本使用同一尺寸 font-stretch 定义是否横向拉伸变形字体 font-variant 定义字体大小写 normal 默认值、small-caps 小型大写(大小跟小写一样,但字母是大写) 复合属性 font font: font-style font-weight font-size/line-height font-family(必需要有)
- word-spacing 定义词与词之间的间距 默认值:normal 。 length 可以是负数
- letter-spacing 定义字符之间的间距
- vertical-align 定义文本的垂直对齐方式 baseline(默认)sub 上标对齐 super 下标对齐 bottom 行框底端对齐 text-bottom 行内文本底端对齐 top 顶端对齐 middle 居中对齐 百分比 长度
- text-decoration 定义文本的修饰线 none underline overline line-through blink(闪烁线)
- text-indent 定义文本首行缩进 长度 和 百分比
- text-align 定义文本水平对齐方式 left center right justify(2端对齐)
- line-height 文本行高 normal 长度值 百分比值 数字
- text-transform 文本大小写 none uppercase lowercase capitalize 首字母大写
- text-shadow 文本阴影
- white-space 定义如何处理文字间的空白 normal 默认 空白会被浏览器忽略
- pre 空白会被浏览器保留 类似 html 中的
标签
- nowrap 文本不会换行 直到遇到br标签
- pre-wrap 保留空白符 但是正常地进行换行
- pre-line 合并空白符,但是保留换行符
- inherit 继承
- direction 文本流入的方向 ltr rtl从右到左 inherit
text-shadow: text-shadow: [颜色] x轴位移 y轴位移 模糊半径,* 阴影颜色,可以放在第一,也可以放在最后 可设置多个值
text-overflow clip ellipsis 配合 white-space:nowrap 和 overflow:hidden 指定宽度 word-wrap: word-wrap: normal | break-word normal 默认值,浏览器只在半角空格或连字符的地方进行换行。 break-word 将内容在边界内换行(不截断英文单词换行,对于超长的英文文本会截断换行,即英文文本一行放不下)
word-break: 用于设置或检索对象文本的字内换行行为,在出现多种语言的情况下尤为有用 word-break: normal | break-all | keep-all
normal 默认值 根据语言自己的规则确定换行方式,中文到边界上的汉字换行,英文从整个单词换行 break-all 可以强行截断英文单词,达到词内换行效果 keep-all 不允许字断开
盒模型 box-sizing box-sizing: content-box | border-box | inherit 内容溢出属性: overflow-x overflow-y overflow-x: visible | hidden | scroll | auto | no-display | no-content visible 默认值 内容超出时,不剪切 不添加滚动条 auto 需要剪切时,添加滚动条 hidden 隐藏 不添加滚动条 scroll 显示滚动条,不管有没有溢出 no-display 内容溢出时不显示元素 类似添加 display:none no-content 类似添加 visibility:hidden resize resize: none | both | horizontal | vertical | inherit outline outline: [outline-color] || [outline-style] || [outline-width] || [outline-offset] || inherit outline-offset 轮廓偏移量 正数向外偏移 负数向内偏移 (??在360下测试offset 无效)
伸缩布局盒模型 flexbox flex容器会使子项扩展来填满可用空间,或缩小它们以防止溢出容器 旧版 display:box display:inline-box 2009 混合版本(过渡版):display:flexbox display:inline-flexbox 2011 最新版本 display:flex display:inline-flex
多列布局
渐变 理论上可在任何使用url()值的地方采用,目前为止仅在背景图片中得到完美的支持 ie滤镜: filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#Color',endColorstr='#Color'); /* IE 6 和 IE 7*/
-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#Color',endColorstr='#Color')"; /* IE 8*/ GradientType 设置渐变方向,1 水平线性 0 垂直线性 startColor 和 endColor 设置开始和结束时的颜色和透明度 为十六进制正整数
w3c标准线性渐变语法 linear-gradient:([ [ | to ,] ]?[,]+) 第一个参数 指定渐变的方向: 通过角度 0 度 表示从下到上,90deg表示从左到右 , 180deg 表示从上到下, 270deg 从右到左 关键词: to top 、 to right 、 to bottom 、 to left 、 top left 、 top right
w3c标准径向渐变语法 radial-gradient([ [ || ] [at ] ?, | at ,]])
过渡 transition: <过渡属性> <过渡所需时间> <过渡动画函数> <过渡延迟时间>