您现在的位置是:网站首页> 编程资料编程资料
应用before/after伪类时如何CSS命名以及针对ie6/ie7浏览器兼容css a标签的visied伪类失效原因介绍a标签的四个css伪类(link、visited、hover、active)样式理解css伪类伪元素域高级选择器的介绍css中伪类:after的用法(三种方式)ie6不支持hover ie6 标签(除a标签)不支持伪类:hover解决方案CSS中a标签样式的“爱恨”原则:定义链接样式的四个伪类有关于a标签的4个伪类的使用方法a标签伪类的作用及书写顺序是什么
2021-09-07
792人已围观
简介 before/after伪类相当于在元素内部插入两个额外的标签,其最适合也是最推荐的应用就是图形生成,本文简单展示我在实际项目中,应用before/after伪类时候,如何CSS命名的,HTML有哪些处理,如何对付IE6, IE7浏览器的
一、诉说前言
before/after伪类相当于在元素内部插入两个额外的标签,其最适合也是最推荐的应用就是图形生成。在一些精致的UI实现上,可以简化HTML代码,提高可读性和可维护性。国外这两个伪类应用相当的普及以及兴盛,不过貌似我们这边前端er们普遍缺乏使用这两个伪类的意识,要使用顶多也就是跟风的“清除浮动”应用。
我想,这可能受兼容性思维影响——IE6/7浏览器并不支持,还是等什么时候IE6/IE7换届下台的时候再说吧~~
虽然八尾九尾都是残体,并不影响十尾的成型。一粒老鼠屎掉进锅里,你就真让这一锅红烧肉毁了——把有翔的这部分给阿黄(中华田园犬)吃就可以了。
本文简单展示我在实际项目中,应用before/after伪类时候,如何CSS命名的,HTML有哪些处理,如何对付IE6, IE7浏览器的。
二、大致处理流程
1.CSS部分
类似这样子的命名:
.example:before, .example before {}
.example:after, .example after {}
一个有冒号,一个是空格分隔。前者IE8+及其他现代浏览器;后者为IE6-7准备的。
2.HTML部分
如果before/after伪类元素含有content内容(不是空字符),则content内容在HTML标签上呈现(方便IE6/7下获取),例如:
CSS部分的content属性值应该如下:
.example:before, .example before { content: attr(data-content); ... }
.example:after, .example after { content: attr(data-content); ... }
3.JS部分
JS是为IE6/7准备的,所做的事情很简单,网元素内部插入两个元素,标签名为”before“或”after“或同时。方法代码如下:
var $beforeAfter = function(dom) {
if (document.querySelector || !dom && dom.nodeType !== 1) return;
var content = dom.getAttribute("data-content") || '';
var before = document.createElement("before")
, after = document.createElement("after");
// 内部content
before.innerHTML = content;
after.innerHTML = content;
// 前后分别插入节点
dom.insertBefore(before, dom.firstChild);
dom.appendChild(after);
};
于是,您想要的效果就可以实现了,例如下面的例子。
三、实际应用之含尖角的tip类提示效果
下面是效果图,IE6下以及FireFox16下的效果截图


IE6/7的CSS与IE8+基本上都是公用的,唯一不同就是选择器一个空格间开,一个冒号伪类,如下:
.tip:before, .tip before,
.tip:after, .tip after{...}
然后,JS如下一调用即可:
$beforeAfter(document.getElementById("tip"));
OK,全部兼容,完事OK。
一般而言,after以及before生成的元素只能是一些不影响功能或是重要视觉的效果。因此,IE6/7下JS驱动不关紧要效果的生成是相当OK的。
赶着帮老婆带饭,抛砖引玉,就这些!
before/after伪类相当于在元素内部插入两个额外的标签,其最适合也是最推荐的应用就是图形生成。在一些精致的UI实现上,可以简化HTML代码,提高可读性和可维护性。国外这两个伪类应用相当的普及以及兴盛,不过貌似我们这边前端er们普遍缺乏使用这两个伪类的意识,要使用顶多也就是跟风的“清除浮动”应用。
我想,这可能受兼容性思维影响——IE6/7浏览器并不支持,还是等什么时候IE6/IE7换届下台的时候再说吧~~
虽然八尾九尾都是残体,并不影响十尾的成型。一粒老鼠屎掉进锅里,你就真让这一锅红烧肉毁了——把有翔的这部分给阿黄(中华田园犬)吃就可以了。
本文简单展示我在实际项目中,应用before/after伪类时候,如何CSS命名的,HTML有哪些处理,如何对付IE6, IE7浏览器的。
二、大致处理流程
1.CSS部分
类似这样子的命名:
复制代码
代码如下:.example:before, .example before {}
.example:after, .example after {}
一个有冒号,一个是空格分隔。前者IE8+及其他现代浏览器;后者为IE6-7准备的。
2.HTML部分
如果before/after伪类元素含有content内容(不是空字符),则content内容在HTML标签上呈现(方便IE6/7下获取),例如:
复制代码
代码如下:CSS部分的content属性值应该如下:
复制代码
代码如下:.example:before, .example before { content: attr(data-content); ... }
.example:after, .example after { content: attr(data-content); ... }
3.JS部分
JS是为IE6/7准备的,所做的事情很简单,网元素内部插入两个元素,标签名为”before“或”after“或同时。方法代码如下:
复制代码
代码如下:var $beforeAfter = function(dom) {
if (document.querySelector || !dom && dom.nodeType !== 1) return;
var content = dom.getAttribute("data-content") || '';
var before = document.createElement("before")
, after = document.createElement("after");
// 内部content
before.innerHTML = content;
after.innerHTML = content;
// 前后分别插入节点
dom.insertBefore(before, dom.firstChild);
dom.appendChild(after);
};
于是,您想要的效果就可以实现了,例如下面的例子。
三、实际应用之含尖角的tip类提示效果
下面是效果图,IE6下以及FireFox16下的效果截图


IE6/7的CSS与IE8+基本上都是公用的,唯一不同就是选择器一个空格间开,一个冒号伪类,如下:
复制代码
代码如下:.tip:before, .tip before,
.tip:after, .tip after{...}
然后,JS如下一调用即可:
复制代码
代码如下:$beforeAfter(document.getElementById("tip"));
OK,全部兼容,完事OK。
一般而言,after以及before生成的元素只能是一些不影响功能或是重要视觉的效果。因此,IE6/7下JS驱动不关紧要效果的生成是相当OK的。
赶着帮老婆带饭,抛砖引玉,就这些!
相关内容
- FireFox下文本框/域百分比自适应数值padding显示bug解决方案
- css实现跨浏览器的盒阴影效果告别图片实现类似效果IE下模拟css3中的box-shadow(阴影)效果代码CSS控制背景图像平铺实现边框阴影效果让IE6、IE7、IE8支持CSS3的圆角、阴影样式css实现跨浏览器的box-shadow盒阴影效果告别图片实现类似效果(2)css div 边框阴影利用背景图或内外层div实现层次感觉阴影效果css box-shadow阴影不透明的解决办法CSS 文字加阴影变3D效果演示使用CSS给图片添加阴影的方法div实现阴影边框效果(适应各主流浏览器)
- css float浮动属性的深入研究及详解拓展(二)设置div背景透明的方法示例CSS实现div不设高度完全居中div自适应高度自动填充剩余高度详解DIV+CSS的命名规矩才能有利于SEO优化的实现方法DIV或者DIV里面的图片水平与垂直居中的方法详解如何用div实现自制滚动条div对齐与网页布局详解DIV+CSS实现电台列表设计的示例代码div+css实现带箭头的面包屑导航栏不定宽高的文字在div中垂直居中实现方法
- css float浮动属性的深入研究及详解拓展(一)设置div背景透明的方法示例CSS实现div不设高度完全居中div自适应高度自动填充剩余高度详解DIV+CSS的命名规矩才能有利于SEO优化的实现方法DIV或者DIV里面的图片水平与垂直居中的方法详解如何用div实现自制滚动条div对齐与网页布局详解DIV+CSS实现电台列表设计的示例代码div+css实现带箭头的面包屑导航栏不定宽高的文字在div中垂直居中实现方法
- css vertical-align属性的一些理解与认识(二) text-top篇
- 元素及文本的水平居中/垂直居中/绝对居中总结让图片 div居中实现代码CSS里的各种水平垂直居中基础写法心得总结css图片垂直居中 css中如何实现图片垂直居中css自适应宽度 多种方法实现宽度自适应的水平居中div图片垂直居中 如何使div中图片垂直居中css中margin:0 auto居中问题深入探讨div垂直居中的N种方法 单行/多行文字(未知高度/固定高度)表单元素垂直居中完美解决方案元素及文本的居中(层的横向居中/层的垂直居中/绝对居中)三种方式实现元素水平居中显示与固定布局和流式布局概念理解
- css 提示框 CSS实现带箭头的DIV提示框HTML5+CSS3内置功能按钮提示框带有关闭小图标CSS3实现的提示框Tooltip动画效果DIV+CSS通过border样式制作带箭头提示框效果CSS实现带箭头的DIV(鼠标放上显示提示框)怎么用纯CSS制作带小三角的tooltip提示框用纯CSS实现的各种性感的信息提示框效果纯CSS打造Bubble气泡提示框实现代码CSS制作提示框 ‘正在加载请。。。。。’
- CSS3 icon font完全指南(CSS3 font 会取代icon图标)纯CSS3实现的动态天气小图标特效源码纯CSS3实现天气动画图标特效源码详解CSS中iconfont的使用使用icon fonts来辅助CSS处理图片CSS3制作ajax loader icon实现思路及代码使用css如何制作时间ICON方法实践z-blog用CSS定义分类RSS订阅图标CSS icon图标之纯CSS实现带动画效果的天气图标
- CSS优先级和!important与IE6的BUG讨论及解决方案浅谈CSS 权值 层叠 重要性(!important)css中提升优先级属性!important的用法总结从可维护性角度考虑css的!important规则的可用性强制CSS !important使用介绍css中!important的作用(IE6 IE7 FF)及其原理CSS下!important属性 CSS中提升优先级属性!important的用法问题总结