HTML5UI伪元素,解析CSS中的伪元素及其与伪类的区别

伪元素我们知道随着CSS规范进一步完善,新增的CSS伪元素越来越多,但是在日常开发中,我们常用的及浏览器支持情况比较乐观的当数before和after了。但是我们在日常开发中使用的都是:after {content: ”;}来清除浮动,及新增一个元素(照顾到IE8浏览器这里使用单冒号)。但是content的可取值有哪些呢?

1. 字符串: content: “a string”- 注意:特殊字符必须使用unicode编码;

2. 图片: content: url(/path/to/benjamin.png) – 图片以原始尺寸插入,不能调整大小。因图片支持渐变,因此可以对伪元素使用渐变效果;

3. 无字符: content: “”- 这个在清除浮动和设置背景图片比较有用,我们可以设置背景图片的width和height,甚至我们可以使用background-size属性来调整背景图片大小;

4. 计数器: content: counter(li)- 在:marker出现之前,对于设置列表序号样式比较有用;具体参见下面代码:

CSS Code复制内容到剪贴板

ol {

countercounter-reset: li;

}

ol>li {

position:relative;

padding-left: 2em;

line-height:30px;

list-style:none;

}

ol>li:before {

position:absolute;

top:8px;

left: 0;

height:16px;

width:16px;

line-height:16px;

text-align:center;

content:counter(li);

countercounter-increment: li;

border-radius: 50%;

background-color:#ccc;

font-size:12px;

color:#efefee;

}

PS:我们不能设置content: “

Benjamin

”,它不会解析按HTML代码片段解析,而会解析为字符串;

5. content: attr(attrName)

content可以利用attr函数获取属性值,尤其使用在伪类中比较方便。见如下代码:

CSS Code复制内容到剪贴板

.list li {

list-style:none;

margin-bottom:20px;

}

.list li span {

vertical-align:middle;

}

.list li:before {

content:attr(data-index);

display:inline-block;

width:20px;

height:20px;

text-align:center;

color:#fff;

vertical-align:middle;

background-color:#f00;

border-radius: 50%;

}

  • 专注前端开发和用户体验
  • 专注前端开发和用户体验
  • 专注前端开发和用户体验
  • 专注前端开发和用户体验
  • 专注前端开发和用户体验

说了前面的话,下面说说IE中遇到的bug:

Bug描述:使用伪类实现”+”/”-“号图像切换时,通过增加和移除opened类来实现,但是在IE8中效果怪异,无法正确渲染,其它浏览器中正常:

CSS Code复制内容到剪贴板

.plus {

position:relative;

display:inline-block;

vertical-align:top;

width:20px;

height:20px;

margin-right:24px;

border:1pxsolid#fdaa47;

border-radius:3px;

overflow:hidden;

}

/* 横向 */

.plus:before {

content:'';

position:absolute;

top:10px;

left:3px;

width:14px;

height:1px;

background-color:#fdaa47;

display:block;

}

/* 纵向 */

.plus:after {

display:block;

content:'';

width:1px;

height:14px;

background-color:#fdaa47;

position:absolute;

left:10px;

top:3px;

}

.opened:after {

top: -30px;

}

当通过addClass(‘opened’)和removeClass(‘opened’),来切换加减号时:IE8浏览器中效果没有达到预期,部分样式无法覆盖,现解决方案如下:

JavaScript Code复制内容到剪贴板

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值