CSS知识整理
一. 基础
1. css的引入:
<link rel="stylesheet" href="">
link标签中,rel属性代表relation,href是hypertext reference,即超文本引用。另外,type属性总是会隐式声明为text/css,但这并不是一个绝对安全的做法。最后一个值得说的属性是media,它的3个被广泛支持的取值是all、screen和print。
<style type="text/css"></style>
style标签一定要使用type属性,与link相同,它的值是text/css
@import: url(..)
在所有css之前使用@import,可以用来加载外部样式表,如果不放置在所有css之前就不起作用。在@import语句前后添加html注释,可以避免一些老旧浏览器上的错误,而且仍然可以正确加载。
2. 内联样式:
style属性在xhtml 1.1中已经将其标注为不建议使用
二、选择器
1. 元素选择器:p {...}, div {...}
2. 通配选择器:*
3. 类选择器:.container
4. id选择器:#view
5. 属性选择器:img[alt] {...}(包含xx属性的选择器,值不限),img[alt="logo"](具体属性选择器)
6. 后代选择器:ul li
7. 子元素选择器 ul > li
8. 相邻兄弟选择器: header + div(header元素之后紧挨着的div)
9. 伪类选择器:a:link,a:visited,input:focus,button:hover,button:active,ul:first-child,ul:last-child,ul li:nth-child(1),p:first-letter(仅对段落的第一个字母生效)
10. 之前和之后选择器:h1:after { content: "!" } (css2.1允许插入生成的内容,并使用:before和:after直接设置样式)
11.选择器的特殊性:用户代理会计算选择器的特殊性,特殊性总和最高的选择器将会胜出。
id选择器 0, 1, 0, 0
类选择器、属性选择器和伪类选择器 0, 0, 1, 0
元素和伪元素选择器 0, 0, 0, 1
结合符和通配选择器对特殊性没有任何贡献
另外,每个内联声明的特殊性都是 1, 0, 0, 0
!important为重要声明,如果一个重要声明和非重要声明发生冲突,胜出的总是重要声明
如果两个规则的权重、来源和特殊性完全相同,在样式表中后出现的一个将胜出
继承的值没有特殊性,0比没有特殊性要强
总结以上:重要性 > 特殊性 > 出现顺序
大部分盒模型属性都无法继承
三、字体
1. font-size的作用是设置字体的em框大小,即font-size = 1em,而不能保证实际字符的大小。
2. 通过@font-face: (font-family: ‘xxx‘; src=‘...‘) 可以导入字体
3. 使用text-indent可以为块级元素的第一行设置一个缩进,允许使用负值,并且该值可以继承
4. text-align的几个基本取值:left、center、right、justify、inherit。在使用justify时,可能造成大段空白,通过指定letter-spacing也许可以解决此问题。
5. line-height的计算值计算方法为:(line-height声明值 - font-size的计算值)/ 2,将这个数值分别应用到内容区的顶部和底部,这个结果就是该元素的行内框
6. vertical-align属性只能应用于行内元素和替换元素,常用取值包括sub(下标)、super(上标)、top、middle、bottom、baseline(默认值,基线是字体底部用于对齐的那条线)
7. letter-spacing和word-spacing的默认值是0
8. text-transform的值uppercase和lowercase可以方便的用于切换大小写,而不用修改html文档
9. text-decoration的常用值为none、underline、overline、line-through
10. text-shadow: 0px 0px 5px green; (右偏移、上偏移、模糊半径、颜色)
11. white-space: nowrap可以防止元素中的内容换行,相反pre可以正常格式化
四、盒模型
1. CSS假定每个元素都会生成一个矩形框,称为元素框。从内到外的可选属性为padding、border、和margin,这就是完整的盒模型
2. 大多数元素都在正常流中,要让一个元素不在正常流中,唯一的办法就是使之称为浮动或定位元素
3. 如果元素的内容包含在文档中,如<span>hello, world</span>,称为非替换元素
4. 替换元素是指作为其他内容占位符的一个元素,如<img src="logo.png" alt="logo" />
5. 块级元素是指p、h1、div之类的元素,这些元素在正常流中时,会在其框之前和之后生成“换行”,通过声明display: block;可以让元素生成块级框
6. 行内元素是块级元素的后代,通过声明display: inline可以让元素生成一个行内框
7. 在盒模型的7个属性中,width、margin-left和margin-right可以设置为auto
8. 在设置盒模型属性时,要考虑充分受限的情况,用户代理会做出相应调整,这里省略掉此内容
9. 一个替换元素的width不同于其固有宽度,height也会成比例变化(图片的成立比缩放)
10. 不同元素的垂直外边距会合并(margin-top和margin-bottom)
11. 匿名文本是指所有未包含在行内元素中的字符串(textNode)
12.
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。