最近在制作修改css样式时,发现用 a 标签做::before时浏览器上面不显示。经查原因后发现原来是没有加 content和display两个属性。

一个a::before的写法

<sytle>
//这是个a前面的蓝色小圆点
.nav a::before{
    background: #48A7D9;
    content: ""; //这个属性很重要,是before元素中的内容
    border-radius: 50%;
    display: inline-block;//这个属性很重要,如果没有这个属性,before元素将不显示
    width:8px;
    height: 8px;
    position: relative;
    top: -1px;
    margin-right: 8px;
}
</style>

css3常见伪元素

::first-letter 首个字母
::first-line 第一行
::before 元素头部
::after 元素尾部
::selection 内容选择时

::before和::after下特有的content,用于在css渲染中向元素逻辑上的头部或尾部添加内容。这些添加不会出现在DOM中,不会改变文档内容,不可复制,仅仅是在css渲染层加入。所以不要用:before或:after展示有实际意义的内容,尽量使用它们显示修饰性内容,例如图标。