CSS中的伪类和伪元素回顾

伪类                 
      css2.1, 合法伪类只有 a 标签有, link  visited  hover  active
            p:hover: 现在人人都有, IE7兼容, 其他三个还是只有 a 有.
            p:foucus: 得到焦点的元素.
            ----(下面是和表单有关的)-----
            p:checked: 被选中的元素.
            p:disabled: 可用的 
            p:enabled: 不可用的
            ----(下面是和节点关系有关的)------
            p:empty: 没有任何节点内容的(空格也算内容).
            p: 匹配文档的根元素, 永远是 HTML 这个根标签. 
            以上 IE8 兼容.
 
伪元素
      伪元素是CSS3新增的, 用 :: 来表示伪元素(IE9).
            p::before{
                  content: "哈哈"  --- 必须存在, 表示要添加的文本, 不需要添加文字可写 ""
            }
            p::after{
                  content: "哈哈"  --- 必须存在, 表示要添加的文本, 不需要添加文字可写 ""
            }            
            ::before 和 ::after 默认是行内元素, 必要时要转块(脱离标准流即可).
            li::before{
                  content:"";
                  float: left;
                  16px;
                  等等...
            }
 
      可应用于清除浮动:
      比如有上下俩 div, 没有宽高, 内部都浮动了4个有宽高的 p, 试问清除浮动的方法?
      解决方法:
            1. 给 div 高度.
            2. 给 div 加 overflow: hidden
            3. 给下面的 div clear: both, 不好用, margin 失效, 还是没有高度. 
            4. 内墙法, 给上面的 div 加一个空盒子并 clear: both.但不符合语义化.
            5. 用::before 或 ::after 当做内墙来清除浮动.
   
 
--------------------------------------------------------------------------------------------------------
            
 
伪对象
     p::first-letter   p 标签中的首个单词
     p::first-line     p 标签中的第一行
     p::selection    p 标签中的被选中的文本
 
 -------------------------------------------------------------------------------------------------------
 
以上写出的并不全, 在此抛砖引玉, 有误导之处还请不吝指点 ^^.
原文地址:https://www.cnblogs.com/vlovecode/p/5959931.html