CSS伪类和伪元素

之所以要说这两个是因为看到有这样的写法::before,不是应该为:before吗,原来之所以有前者这样的写法是为了区分伪类和伪元素,那么问题来了,伪类和伪元素,两者有什么区别。

从定义上看:

  • CSS 伪类用于向某些选择器添加特殊的效果。常见的有:hover,:active,:visited等
  • CSS 伪元素用于将特殊的效果添加到某些选择器。常见的有:after,:before等

伪类重点在于类的作用,可用于添加样式;伪元素重点在于营造一个“伪”的元素,重点在元素上

为了区别明显一些,在CSS3中,单冒号(:)用于CSS3伪类,双冒号(::)用于CSS3伪元素

详细的还可参见这篇详解 CSS 属性 - 伪类和伪元素的区别

box-sizing属性可以为三个值:

content-box,border和padding不计算入width之内

border-box,border和padding计算入width之内,IE怪异模式就是这样计算的

padding-box,padding计算入width内,这个貌似兼容性不好一般不考虑

区别简单的说就是box-sizing:content-box属性不包含盒子的padding值,如果有padding则撑开盒子的宽度高度,box-sizing:border-box;包含了盒子的padding值,设置了padding值不会影响盒子的原始宽度高度。

background-attachment:fixed

background-attachment – 定义背景图片随滚动轴的移动方式

取值: scroll fixed inherit
  • scroll: 随着页面的滚动轴背景图片将移动
  • fixed: 随着页面的滚动轴背景图片不会移动
  • inherit: 继承

background-attachment: fixed 是针对视口固定位置的