brb*_*ing 3 html css background pseudo-element css-content
我正在挖掘我正在使用的网站上的一些旧代码,它使用了iconize.它似乎工作的方式是添加这样的类......
a[href=$='.pdf']{
padding: 5px 20px 5px 0;
background: transparent url('icon.gif') no-repeat center right;
}
Run Code Online (Sandbox Code Playgroud)
这样做有什么好处,而不是我做过的方式?像这样......
a[href=$='.pdf']:after{
content: url('icon.gif');
vertical-align: sub;
}
Run Code Online (Sandbox Code Playgroud)
这是演示他们两个的小提琴......
我的问题是......如果有的话,使用伪元素与标准填充和背景定位来附加/预先添加图像到元素有什么好处?
只是一些初始和后来的想法.我可能还会想到一些补充.
好处):
劣势(S):
好处):
padding,border,opacity等应用如果需要的话,就好像它是一个真实的元素.img可能是html的重要组成部分,因此伪元素符合增强演示文稿的要求,但如果缺少则不会导致问题(在旧版本中)浏览器).劣势(S):
EHLOVader在对该问题的评论中指出,他关注的部分内容是伪元素可能需要的额外编码,而不是背景/填充,如果想要切换到左侧图标.他给了这个codepen例子.但是,可以使用较少的代码来执行伪元素.假设.iconleft是一个用于放置图标而不是右边.iconit的类,以及设置图标的类,那么下面的代码简洁地说明了使用选择器的CSS3浏览:not()器(这里是小提琴,使用原始的.pseudo类OP用于图标):
.iconit:not(.iconleft):after,
.iconit.iconleft:before {
content: url('http://www.jasonapollovoss.com/web/wp-content/uploads/2010/09/pdf_icon_small.png');
vertical-align: sub;
}
Run Code Online (Sandbox Code Playgroud)
如果使用一个类来向右侧或左侧显式设置图标(那么不需要类),CSS2浏览器也可以这样做:iconrighticonlefticonit
.iconright:after,
.iconleft:before {
content: url('http://www.jasonapollovoss.com/web/wp-content/uploads/2010/09/pdf_icon_small.png');
vertical-align: sub;
}
Run Code Online (Sandbox Code Playgroud)