CSS3的一些知识点
1、元素选择器,即 E {...},E代表有效的HTML元素;可以用*来表示应用到文档中的任意元素;
<style type="text/css"> body { margin: 100px; } </style>
2、属性选择器,有如下几种:
- E[attr] {...}:指定该CSS样式对所有具有attr属性的E元素起作用;
<!DOCTYPE html> <html lang="en"> <head> <style type="text/css"> div[align] { width:200px; height:100px; border:1px solid red; } </style> </head> <body> <div align="center">我具有align属性</div> <dvi>我没有align属性</dvi> </body> </html>

- E[attr=value] {...}:指定该CSS样式对所有具有attr属性,并且值为value的E元素起作用;
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> div[align="center"] { width: 200px; height: 100px; border: 2px solid blue; } </style> </head> <body> <div align="center">我有align="center"属性</div> <div align="left">我有align="left"属性</div> </body> </html>

- E[attr~=value] {...}:指定该CSS样式对所有具有attr属性,并且该属性值有多个,以空格隔开,对某个值为value的E元素起作用;
- E[attr|=value] {...}:指定该CSS样式对所有具有attr属性,且attr属性值以连字符分隔的系列值,对其中第一个值为value的E元素起作用;
- E[attr^=value] {...}:指定该CSS样式对所有具有attr属性,且attr属性值以value开头的字符串的E元素起作用;
- E[attr$=value] {...}:指定该CSS样式对所有具有attr属性,且attr属性值以value结尾的字符串的E元素起作用;
- E[attr*=value] {...}:指定该CSS样式对所有具有attr属性,且attr属性值对有包含value的字符串的E元素起作用;
3、ID选择器,即#idValue {...}:对具有指定id属性值的元素起作用,还可以指定对某一个具体类型元素且id值为idValue的元素起作用,即E#idValue {...};
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> div#div1 { font-size: large; background-color: #9fcdff; width: 200px; } </style> </head> <body> <div id="div1"> 我是一个div </div> </body> </html>

4、class选择器,即.classValue {...}:对具有指定class属性值的元素起作用,还可以指定对某一个具体类型元素且class值为classValue的元素起作用,即E.classValue {...};
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> p.c1 { font-size: large; color: #9fcdff; } </style> </head> <body> <div> <p class="c1">我是一个莫得感情的P</p> <span class="c1">我是个span</span> </div> </body> </html>

5、包含选择器,即selector1 selector2 {...}:指定的目标选择器必须处于某个选择器对应元素内部;
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> div .c1 { font-size: large; color: #9fcdff; } </style> </head> <body> <div> <p class="c1">我是一个莫得感情的P</p> <span>我是个span</span> </div> </body> </html>

6、子选择器,即selector1>selector2 {...}:指定目标选择器必须是某个选择器对应元素的子元素;
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> #div1>span{ font-size: large; color: #9fcdff; } </style> </head> <body> <div id="div1"> <div id="div2"> <p>我是一个莫得感情的P</p> <span>我是个span</span> </div> </div> </body> </html>

7、兄弟选择器,即selector1~selector2 {...}:指定目标选择器必须是某个选择器对应元素后面的能匹配的元素;
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> #div1~span{ font-size: large; color: #9fcdff; } </style> </head> <body> <div id="div1"> <div id="div2"> <p>我是一个莫得感情的P</p> <span>我是个span</span> </div> </div> <span>我是div1的兄弟</span> <span>我是div1的兄弟</span> <span>我是div1的兄弟</span> </body> </html>

8、组合选择器,即selector1,selector2,selector3... {...}:让一份CSS样式对多个选择器起作用;
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> div,p,span{ font-size: large; color: #9fcdff; } </style> </head> <body> <div>我是一个div</div> <p>我是一个p</p> <span>我是一个span</span> </body> </html>

9、伪元素选择器,CSS提供了4个:
- :first-letter:对指定对象内的第一个字符起作用;
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> div:first-letter{ font-size: large; color: #9fcdff; } </style> </head> <body> <div>我是一个div</div> </body> </html>

- :first-line:对指定对象内的第一行内容起作用;
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> div:first-line{ font-size: large; color: #9fcdff; } </style> </head> <body> <div> 我是第一行<br> 我是第二行 </div> </body> </html>

注::first-letter和:first-line选择器仅对块元素起作用,若想应用在行内属性上,需要设定对象的height、width属性,或设定position属性值为absolute,或设定display属性值为block。
- :before:该选择绮与内容相关的属性content结合使用,用于向指定的对象内部前端插入内容;
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> p:before { content: "歌词:"; } </style> </head> <body> <p>遇见你 需要运气</p> <p>爱上你 却需要多少勇气</p> </body> </html>

- :after:该选择绮与内容相关的属性content结合使用,用于向指定的对象内部尾端插入内容;
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> p:after { content: "——《吻下去爱上你》"; } </style> </head> <body> <p>遇见你 需要运气</p> <p>爱上你 却需要多少勇气</p> </body> </html>

10、伪类选择器,用于对已有选择器做进一步的限制,有三类:
- 结构性伪类选择器
- :root:匹配文档的根元素,HTML文档的根元素是<html>;
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> :root { background-color: #9fcdff; } </style> </head> <body> </body> </html>

-
- selector:first-child:匹配符合selector选择器,而且必须是其父元素的第一个子节点元素;selector:last-child与它同理;
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> body { margin: 100px; } li:first-child { font-size: 100px; } </style> </head> <body> <ul> <li>first</li> <li>second</li> <li>third</li> </ul> </body> </html>

-
- selector:nth-child(n):匹配符号selector选择器,而且必须是其父元素的第n个子节点元素;
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> body { margin: 100px; } li:nth-child(2) { font-size: 100px; } </style> </head> <body> <ul> <li>first</li> <li>second</li> <li>third</li> </ul> </body> </html>

-
- selector:nth-last-child(n):匹配符合selector选择器,而且必须是其父元素的倒数第n个子节点元素;
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> body { margin: 100px; } li:nth-last-child(1) { font-size: 100px; } </style> </head> <body> <ul> <li>first</li> <li>second</li> <li>third</li> </ul> </body> </html>

注意:上面两个选择器还可以接收参数:odd/event/xn+y(n从0开始),下面举个栗子吧~
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> body { margin: 100px; } li:nth-child(2n+2) { font-size: 100px; } </style> </head> <body> <ul> <li>first</li> <li>second</li> <li>third</li> <li>four</li> <li>five</li> <li>six</li> </ul> </body> </html>

-
- selector:only-child:匹配符合selector选择器,而且必须是其父元素的唯一子节点的元素;
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> body { margin: 100px; } li:only-child { font-size: 100px; } </style> </head> <body> <ul> <li>only one</li> </ul> </body> </html>

-
- selector:first-of-type:匹配符号selector选择器,而且是与它同类型同级的兄弟元素中的第一个元素;selector:last-of-type与它同理;
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> body { margin: 100px; } li:first-of-type { font-size: 100px; } </style> </head> <body> <ul> <li>me</li> <li>brother</li> </ul> </body> </html>

-
- selector:nth-of-type(n):匹配符合selector选择器,而且是与它同类型同级的兄弟元素中的第n个元素;selector:nth-last-of-type(n)与它同理;
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> body { margin: 100px; } li:nth-of-type(2) { font-size: 100px; } </style> </head> <body> <ul> <li>me</li> <li>brother</li> <li>brother</li> </ul> </body> </html>

注意:上面这个选择器还可以接收参数:odd/event/xn+y(n从0开始)
-
- selector:only-of-type:匹配符合selector选择器,而且是与它同类型同级的兄弟元素中的唯一一个元素;
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> body { margin: 100px; } li:only-of-type { font-size: 100px; } </style> </head> <body> <ul> <li>me</li> </ul> </body> </html>

-
- selector:empty:匹配符合selector选择器,且内部没有任何子元素的元素;
- selector:lang():匹配符合selector选择器,且其内容是指定语言的元素;
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> body { margin: 100px; } p:lang(zh) { font-size: 30px; color: red; } </style> </head> <body> <p lang="en">Hello</p> <p lang="zh">我爱中国</p> </body> </html>

- UI元素状态伪类选择器
- selector:link:匹配符合selector选择器,且未被访问前的元素(通常只能是超链接);
- selector:visited:匹配符合selector选择器,且已被访问过的元素(通常只能是超链接);
- selector:active:匹配符合selector选择器,且处于被用户激活(在鼠标点击与释放之间的事件)状态的元素;
- selector:hover:匹配符合selector选择器,且处于鼠标悬停状态的元素;
- selector:focus:匹配符合selector选择器,且已得到焦点的元素;
- selector:enabled:匹配符合selector选择器,且当前处于可用状态的元素;
- selector:disabled:匹配符合selector选择器,且当前处于不可用状态的元素;
- selector:checked:匹配符合slelector选择器,且当前处于选中状态的元素;
- selector:default:匹配selector选择器,且页面打开时处于选中状态的元素;
- selector:indeterminate:匹配selector选择器,且当前选中状态不明确的元素;
- selector:read-only:匹配selector选择器,且处于只读状态的元素;
- selector:read-write:匹配selector选择器,且处于读写状态的元素;
- selector:required:匹配selector选择器,且具有必填要求的元素;
- selector:optional:匹配slelector选择器,且无必填要求的元素;
- selector:valid:匹配selector选择器,且能通过输入校验的元素;
- selector:invalid:匹配slelector选择器,且不能通过输入校验的元素;
- selector:in-range:匹配selector选择器,且当前处于指定范围内的元素;
- selector:out-of-range:匹配selector选择器,且当前超出指定范围内的元素;
- selector::selection:匹配selector选择器中的元素中当前被选中的内容;
- 其他伪类选择器
- selector:target:匹配符合selector选择器,且必须是命名锚点目标的元素(当前正在访问的);
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> :target { background-color: yellow; font-size: 30px; } </style> </head> <body> <a href="#div1">div1</a> <a href="#div2">div2</a> <div id="div1"> 我我我 </div> <div id="div2"> 你你你 </div> </body> </html>

-
- selector:not(selector2):匹配符号selector选择器,但不符号selector2选择器的元素;
11、可以为表格增加contentEditable="true"属性,表示单元格可编辑内容;可以为输入框增加readonly属性,表示只读;可以为输入框增加required属性,表示必填;
12、字体、文本相关属性
- color:用于控制文字颜色;
- font:复合属性,其属性值顺序为 font-style font-variant font-weight font-size line-height font-family;
- font-family:用于设置文字的字体,多个字体之间用英文逗号隔开;
- font-size:用于设置文字字体的大小
- xx-small:最小字体;
- x-small:较小字体;
- small:小字体;
- medium:正常大小的字体,默认值;
- large:大字体;
- x-large:较大字体;
- xx-large:最大字体;
- larger:相对于父元素中的字体进行相对增大;
- smaller:相对于父元素中的字体进行相对减少;
- length:直接值;
- font-style:用于设置文字风格
- normal:文字正常
- italic:斜体
- oblique:倾斜字体
- font-weight:用于设置字体粗细程度
- lighter:细;
- normal:正常;
- bold:粗;
- bolder:更粗;
- 直接值;
- text-decoration:用于控制文字是否有修饰线
- none:无修饰;
- blink:闪烁;
- underline:下划线;
- line-through:中划线;
- overline:上划线;
- text-shadow:用于设置文字的阴影效果;该属性的值顺序为 color xoffset yoffset length或者 xoffset yoffset radius color
- color:阴影的颜色;
- xoffset:指定阴影在横向上的偏移;
- yoffset:指定阴影在纵向上的偏移;
- radius:指定阴影的模糊半径,模糊半径越大,阴影看上去越模糊;
- text-transform:用于设置文字的大小写
- none:不转换;
- capitalize:首字母大写;
- uppercase:全部大写;
- lowercase:全部小写;
- line-height:用于设置字体的行高;
- letter-spacing:用于设置字符之间的间隔;
- word-spacing:用于设置单词之间的间隔;
- text-indent:用于设置段落文本的缩进,默认值为0;
- text-overflow:用于控制溢出文本的处理方法,有两个属性
- clip:若该元素指定了overflow:hidden属性,那么当元素中文本溢出时,clip只是简单的裁切溢出的文本;
- ellipsis:若该元素指定了overflow:hidden属性,那么当元素中文本溢出时,ellipsis裁切溢出的文本,并显示溢出的标记(...);
- vertical-align:用于设置目标元素里内容的垂直对齐方式,有8个属性
- auto:对元素的文本内容执行自动对齐;
- baseline:默认值,将支持valign属性的元素文本内容与基线对齐;
- sub:将元素的内容与文本下标对齐;
- super:将元素的内容与文本上标对齐;
- top:默认值,将支持valign属性的元素的文本内容与元素的顶端对齐;
- middle:默认值,将支持valign属性的元素的文本内容对齐到元素的中间;
- bottom:默认值,将支持valign属性的元素的文本内容与元素的底端对齐;
- length:直接值,指定文本内容相对于基线的偏移距离;
- text-align:用于设置目标元素中文本的水平对齐方式,有4个属性值
- left:左对齐;
- right:右对齐;
- center:居中对齐;
- justify:两端对齐;
- direction:用于设置文本的流入方向,有2个属性值
- ltr:从左向右;
- rtl:从右向左
- white-space:用于设置目标元素对文本内容中空白的处理方式,有6个属性值
- normal:默认值,浏览器忽略文本中的空白;
- pre:浏览器保留文本中的所有空白,其行为方式类似于<pre.../>标签
- nowrap:文本不会换行,文本会在同一行上继续,直到遇到<br../>标签为止
- pre-wrap:保留空白序列符,但可以正常进行换行
- pre-line:合并空白符序列,但保留换行符
- inherit:指定从父元素继承white-space属性的值
- word-break:用于设置目标元素中文本内容的换行方式,有3个属性值
- normal:用浏览器的默认规则进行换行,即对于西方文字,浏览器只会在半角空格、连字符的地方进行换行,不会在单词中间换行;对于中文来说,浏览器可以在任何一个中文字符后换行;
- keep-all:只能在半角空格、连字符处换行;
- break-all:允许在单词中间换行;
- word-wrap:用于设置目标元素中文本内容的换行方式;
13、颜色表示法:有六种方式
- 用颜色名表示,比如red,但能表示的颜色数量有限;
- 用十六进制的颜色值表示;
- 用rgb(r,g,b)函数表示
- 用hsl(Hue,Saturation,Lightness)函数表示,即用色调、饱和度、亮度控制颜色,其中色调0表示红色,120表示绿色,240表示蓝色;
- 用rgba(r,g,b,a)函数表示,a参数用于指定颜色的透明度,为0-1之间的数,0代表完全透明;
- 用hsla(h,s,l,a)函数表示,a参数用于指定颜色的透明度,为0-1之间的数,0代表完全透明;
14、设置使用服务器字体,即:若客户端没有安装某种字体,那么将会自动下载该字体;
@font-face { font-family: name; src: local("xxx"),url("xxx") format("xxx"); }
format用于指定字体格式,目前仅支持:TrueType格式(对应*.ttf字体文字)、OpenType格式(对应*.otf字体文字),还可以使用font-style、font-weight属性设置字体样式,也可以用local("字体名称")属性来指定优先使用的客户端字体,当字体不存在时才会下载服务器端字体
15、CSS盒模型:内容区与边框区是可见的,外边距区与内容填充区是不可见的;

16、background属性:用于设置对象的背景样式,是一个复合属性,属性值顺序为下
- background-color:用于设置背景色;
- background-image:用于设置背景图片;
- background-repeat:用于设置对象的背景图片是否平铺,有4个属性值
- repeat:平铺
- no-repeat:不平埔
- repeat-x:仅在横向平铺
- repeat-y:仅在纵向平铺
- background-attachment:用于设置背景图片是随着对象内容滚动还是固定,有2个属性值
- scroll:指定背景图片会随着元素里的内容的滚动而滚动,默认值;
- fixed:背景图片固定,不会随着元素内容滚动而滚动;
- background-position:用于设置对象的背景图片位置,该属性需要横坐标和纵坐标两个值,如果只指定了一个值,该值对应横坐标,纵坐标将默认为50%;如果指定了两个值,那么第二个值将对应纵坐标;
17、background-clip属性:用于设置背景覆盖的范围,有4个属性值:
- border-box:指定背景覆盖盒模型的边框区、内填充区、内容区;
- no-clip:指定背景覆盖盒模型的边框区、内填充区、内容区;
- padding-box:指定背景覆盖盒模型的内填充区、内容区;
- content-box:指定背景只覆盖盒模型的内容区;
18、background-origin:用于指定背景从哪里覆盖
- border-box:指定背景从边框区开始覆盖;
- padding-box:指定背景从内填充区开始覆盖;
- content-box:指定背景从内容区开始覆盖;
19、background-size属性:用于控制背景图的大小;
20、background-repeat属性:指定背景图的平铺模式,有6个属性值
- repeat:背景图片将在水平和垂直方向重复;
- repeat-x:背景图片将在水平方向重复;
- repeat-y:背景图片将在垂直方向重复;
- no-repeat:背景图片仅显示一次;
- space:不调整背景图片的大小,只调整背景图片间距,从而保证了HTML元素内平铺的每个背景图都能完整的显示出来;
- round:自动调整背景图片的大小,从而保证了HTML元素内平铺的每个背景图都能完整的显示出来;
21、linear-gradient(方向,颜色列表):渐变函数,方向默认为从上到下,有以下几个值
- to top:代表从下到上
- to bottom:代表从上到下,默认值
- to left:代表从右到左
- to right:代表从左到右
- to left top:代表从右下角到左上角
- to right top:代表从左下角到右上角
- to left bottom:代表从右上角到左下角
- to right bottom:代表从左上角到右下角
对于颜色列表的语法是:颜色1 位置1,颜色2 位置2 ...(位置既可以使用百分比,也可以使用长度值)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> div { height: 400px; width: 100px; border:1px solid gray; background:linear-gradient(to top, #6dffd4 20% , #55ceff 80%); } </style> </head> <body> <div></div> </body> </html>

22、repeating-linear-gradient(方向,颜色列表),方向与颜色列表同21。

浙公网安备 33010602011771号