1.文档流: 页面元素的默认排列方式,根据元素在html文档中的顺序依次排列,从左到右、从上到下;
2.块元素: 默认占一行,沿垂直方向排列,可以设置宽度和高度,例如:<div>,<p>,<h2><form>...;
3.行内元素: 默认在一行内沿水平方向排列,宽宽和高度由内容决定,不能设置,例如<span><a><em>...;
4.替换元素: 元素内容由标签的属性来设置,标签其实就是一个占位符,例如<img src=""><input type="">
5.非替换元素: 元素内容就包含中当前的标签中,例如<p>,<h1>,<link>
基本选择器
/*id选择器:选择页面中唯一的元素,推荐同一个id标识符只允许用一次*/
#item1 {}
/*类选择器:选择页面中具有同一类样式的全部元素*/
.green {/*background-color: lightgreen;*/}
/*父子选择器:元素之间是层级的关系,所选元素有共同的父级*/
ul li { /*层级关系用空格表示*/color: white;}
/*通配选择器:选择指定父级下面的所有层级的元素*/
ul * {/*border: 1px solid black;*/}
/*子元素选择器 >: 选择父元素下所有的li元素,等价于标签选择器,所以它的优先级低于class,id*/
ul > li { /*等价于: ul > * {} *//*background-color: blue;*/}
/*相邻兄弟选择器 +:仅选择相对于它后面的第一个兄弟节点 */
#item2 + li {/*background-color: black; /*只有第7个小球变黑*/*/}
/*全部兄弟选择器 ~ :选择相对于它后面的全部兄弟节点 */
#item2 ~ li {/*background-color: coral; /*亮橙色*/*/}
属性选择器
/*根据属性名来选择:例如id属性*/
*[id] { /*等价于: li[id]*//*background-color: red;*/}
/*根据属性名与值来选择:例如选择class="green"的元素*/
li[class="green"] {/*background-color: lightgreen;*/}
/*选择class属性值中包括指定单词的元素*/
li[class ~= "red"] {background-color: brown;}
/*选择以'ph'字母开头的class类样式元素*/
li[class ^= "ph"] {background-color: coral;}
/*选择以's'结尾的类样式元素*/
li[class $= "s"] {background-color: lime; /*青绿*/}
/*选择属性值中包括指定字母'e'的类样式元素:;*/
li[class *= "e"] {background-color: yellowgreen; /*234背景为黄绿色*/}
伪类选择器
/*:after:在指定元素的后面添加元素,默认为行内元素,可以是文本,图像,甚至视频等*/
ul:after { /*子块撑开父块*/
content:''; /*在子元素尾部添加空内容元素*/
display: block; /*并设置为块级显示*/
clear:both; /*清除二边的浮动*/}
/*:before:在指定选择器之前插入,默认为行内元素*/
ul:before {}
/*:first-child:选择父元素中的第一个子元素*/
/*注意:当前页面中只有一个ul元素,所以可以省略父级ul*/
ul li:first-child {background-color: brown;}
/*:last-child:选择父元素中的第一个子元素*/
ul li:last-child {background-color: lightgreen;}
/*:only-child:选择是当前父元素中的唯一子元素的元素,IE不支持*/
p:only-child {
/*二个div中,只有第一个div中仅有一个<p>子元素,所有只选中了第一个div中的<p>*/
/*color:red;*/}
/*only-of-type:选择父元素下的唯一的<p>元素,与only-child不同之处是指定了子元素的类型(标签名称)*/
p:only-of-type {
/*先把上面的only-child注释掉,执行后你会发现,第三个div中的p也会选中,因为它是指定了p类型的唯一子元素*/
color:red;}
/*
only-child和only-of-type的区别:
1.共同点: 都是选择父元素中的唯一子元素;
2.区别: only-child并不限定子元素的类型,only-of-type:限定了子元素的类型,如必须是p标签
*/