大放异彩的伪元素——可以做什么?(转)别人分享的文章,发现很不错,果断收藏了…

大放异彩的伪元素——可以做什么?(转)别人分享的文章,发现很不错,果断收藏了…

伪元素:before :after可以做的东西是相当惊人的。对于页面上的每一个元素,你拥有了两个更灵活的、而且可以完成其它HTML元素都能完成的东西的元素。它们让一大堆有趣的设计成为可能,而且不会对你的语义标签产生负面影响。这里有一大堆关于这些有趣的效果的示例,你想看的话就接着往下看吧。

多重背景画布

大放异彩的伪元素——可以做什么?(转)别人分享的文章,发现很不错,果断收藏了...

 

因为你可以将伪元素相对于它们的父类元素绝对定位,你可以想象成每个元素都有两个额外的层。Nicolas Gallagher向我们展示了它的很多种应用,包括多边界、模拟CSS3多重背景、等高栏等。

增加单个元素能创建的形状数目

大放异彩的伪元素——可以做什么?(转)别人分享的文章,发现很不错,果断收藏了...

 

这上面所有的形状都可以只用一个元素创建,而且更加实用。相对于那些使用1700个div元素来“用纯CSS做一个咖啡杯”的事情,很整齐,但不实用。

这是一个六角星的示例:

CSS

#star-six {
   
  width: 0;
  height: 0;
  border-left: 50px solid transparent;
  border-right: 50px solid transparent;
  border-bottom: 100px solid red;
  position: relative;
}
#star-six:after {
   
  width: 0;
  height: 0;
  border-left: 50px solid transparent;
  border-right: 50px solid transparent;
  border-top: 100px solid red;
  position: absolute;
  content: "";
  top: 30px;
  left: -50px;
}

 

在打印网页时显示链接的URL

大放异彩的伪元素——可以做什么?(转)别人分享的文章,发现很不错,果断收藏了...

 

@media print {
   
  a[href]:after {
    content: " (" attr(href) ") ";
  }
}

 

清除浮动

大放异彩的伪元素——可以做什么?(转)别人分享的文章,发现很不错,果断收藏了...

 

相比插入额外的非语义标记来清除内联元素的浮动,我们可以使用一个伪元素来完成。俗称“clearfix”,并且使用”group”这个类名也更语义化。

CSS

.group:before,
.group:after {
   
  content:"";
  display:table;
}
.group:after {
   
  clear:both;
}
.group {
   
  zoom:1; /* For IE 6/7 (trigger hasLayout) */
}

 

模拟float:center;

大放异彩的伪元素——可以做什么?(转)别人分享的文章,发现很不错,果断收藏了...

float属性实际上并没有center这个值,尽管我们可能非常需要。float虽然有左浮动和右浮动,但是我们通过使用占位伪元素也可以在两个容器之间占一块位置,并放上一个图像,我们可以看一下效果

 

#l:before, #r:before {
    
  content: ""; 
  width: 125px; 
  height: 250px; 
}
#l:before {
    
  float: right; 
}
#r:before {
    
  float: left; 
}

 

使用对应的语言标记代码块

大放异彩的伪元素——可以做什么?(转)别人分享的文章,发现很不错,果断收藏了...

这个站点的当前设计是,使用伪元素通过不同的语言来标记代码块。

HTML

<pre rel="CSS"></pre>

CSS

pre:after {
   
  content: attr(rel);
  position: absolute;
  top: 22px;
  right: 12px;
}

创建一个完整的图标集

大放异彩的伪元素——可以做什么?(转)别人分享的文章,发现很不错,果断收藏了...

Nicolas Gallagher再次把他的idea提升到了创建一大组图标。没有使用任何图片,每两个元素(最多)只有伪元素。

更高效地使用有限的空间

大放异彩的伪元素——可以做什么?(转)别人分享的文章,发现很不错,果断收藏了...

使用CSS有所得,也必然有所失。我的意思是伪元素的内容可以通过媒体查询有选择地应用或删除。如果空间是有限的,你可能会应用图标,而如果有更多空间的话就可以使用一个更具描述性的单词。

适用内容多的布局

大放异彩的伪元素——可以做什么?(转)别人分享的文章,发现很不错,果断收藏了...

如果你的伪元素是文本,它们继承了和它们的父元素相同的布局样式。但是当你设置它们的内容时,你也可以编辑它们的样式。比如说,使用不同的字体和不同的颜色来让你的标题脱颖而出。

CSS

h2 {
   
  text-align: center;
}
h2:before, h2:after {
   
  font-family: "Some cool font with glyphs", serif;
  content: "\00d7";  /* Some fancy character */
  color: #c83f3f;
}
h2:before {
   
  margin-right: 10px;
}
h2:after {
   
  margin-left: 10px;
}

创建和浏览器等宽度的条

大放异彩的伪元素——可以做什么?(转)别人分享的文章,发现很不错,果断收藏了...

 

 

当你需要适应浏览器宽度的背景,但是元素的内容又不够将其撑开时,你往往会使用非语义化的内联元素包裹或重复且繁琐的间距声明。或许你可以试试使用元素来限制内容的宽度来模拟效果,通过设置伪元素的宽度让标题栏延伸出边界。

创建一个body边框

 

大放异彩的伪元素——可以做什么?(转)别人分享的文章,发现很不错,果断收藏了...

 

在左边和右边设置普通的border,在顶部和底部固定伪元素条的位置。完全不使用任何专门的标记,我们就可以得到一个“body border”的效果

CSS

body:before, body:after {
   
  content: "";
  position: fixed;
  background: #900;
  left: 0;
  right: 0;
  height: 10px;
}
body:before {
   
  top: 0;
}
body:after {
   
  bottom: 0;
}
body {
   
  border-left: 10px solid #900;
  border-right: 10px solid #900;
}

 

做一个闪烁的按钮

大放异彩的伪元素——可以做什么?(转)别人分享的文章,发现很不错,果断收藏了...

做一个有从白色到透明渐变的伪元素块,把它放在button外边,然后在鼠标悬停时让它从button上过渡移动,这样在鼠标悬停时,你可以得到一个看起来似乎抓到了一点光的按钮。只有Firefox、chrome 26+和IE10+支持。

Anton Trollbäck写的原版效果,Nicolas Gallagher用伪元素写的版本,我自己写的另一个版本

在特殊链接被鼠标悬停时将页面淡出

大放异彩的伪元素——可以做什么?(转)别人分享的文章,发现很不错,果断收藏了...

 

如果你没有给元素设置相对定位,绝对定位的伪元素就会相对于下一个父元素定位。如果没有写其它的内容,它就会相对于根元素定位。你可以使用它来做一个填充浏览器窗口的元素,将其相对叠齐在主元素下,然后在鼠标悬停于链接上时显示它,做一个页面淡出的效果

将header做成三维丝带的样式

大放异彩的伪元素——可以做什么?(转)别人分享的文章,发现很不错,果断收藏了...

丝带大家都很喜欢!查看一下这个示例的HTML和CSS片段。它使用了一个负的z-index,这在某些情况下需要额外的包裹元素,以防止失去背景不透明的父元素下方的元素。

为有序列表的数字设置样式

大放异彩的伪元素——可以做什么?(转)别人分享的文章,发现很不错,果断收藏了...

你试过为有序列表的数字编写样式吗?你还是做着这些繁琐的事情,比如把他们包裹在span内,为列表项写样式,然后跟着span一起把样式删除。或是胡乱地使用背景图像。或是移除列表样式,然后放进你自己的数字。这些方法都是非常糟糕的。最好是使用伪元素来作为计数器

让数据表可响应

大放异彩的伪元素——可以做什么?(转)别人分享的文章,发现很不错,果断收藏了...

 

在小屏幕上浏览大型的数据表是很可怕的。它们要么是被放大,并要求水平和垂直滚动,要么是缩得太小,无法阅读。我们可以把CSS媒体查询和伪元素结合起来,使数据表迅速反应并格式化成一个在小屏幕上更具可读性的表格。

创建样式化的提示

大放异彩的伪元素——可以做什么?(转)别人分享的文章,发现很不错,果断收藏了...

 

使用HTML5数据属性,然后将该属性导入并设置样式为一个伪元素,这样我们就可以使用CSS来创建完全自定义的提示

在导航item之间添加分隔符

大放异彩的伪元素——可以做什么?(转)别人分享的文章,发现很不错,果断收藏了...

如果你想将nav item之间相互分隔开,你的选择是有限的:你可以添加一个边框(很无聊),或是在每个项目之间添加额外的标记(也很无聊)。伪元素可以让你在项目之间使用任何内容来作为分隔。

CSS

.menu li:before {
   
  content: "// ";
  position: relative;
  left: -1px;
}

做一个完全没有HTML的网站

大放异彩的伪元素——可以做什么?(转)别人分享的文章,发现很不错,果断收藏了...

凭借浏览器自动插入<html>, <head><body>标签的功能,Mathias Bynens展示了如何只使用CSS和伪元素创建网站

构建仅用CSS编写的字体

大放异彩的伪元素——可以做什么?(转)别人分享的文章,发现很不错,果断收藏了...

 

对每个字母,使用一个HTML元素(包括伪元素)。Yusuke Sugomori通过CSS构建了一整套字体,命名为CSS Sans。这个交互式的demo,可以让你看到Yusuke用于构建字母的所有巧妙技术(如rotate(旋转)、border-radius(圆角半径)、skew(倾斜)等)。

这套字体仅包括了大写拉丁字母,而且非常可爱!CSS Sans项目是一个很棒的建立在各种约束上的富有创造力的演示!

 

 

 

 

本文根据@Chris Coyier的《A Whole Bunch of Amazing Stuff Pseudo Elements Can Do》所译,整个译文带有我们自己的理解与思想,如果译得不好或有不对之处还请同行朋友指点。如需转载此译文,需注明英文出处:https://css-tricks.com/pseudo-element-roundup/

 

 

原文地址:http://www.w3cplus.com/css3/pseudo-element-roundup.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109470.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • oracle的union和union all_oracle count函数

    oracle的union和union all_oracle count函数定义了unionvar{uchartempa[4];ulongtemp3;};unionvarlongdat小编们利用C语言定义一个简单的Union共用体结构。你曾经喜欢小编,现在不喜欢了,小编不怪你,那是小编没本事。在这个结构中包含若干个属性,其中有Int、Char和Double型。谁是谁生命中的过客,谁是谁生命的转轮,前世的尘,今世的风,无穷无尽的哀伤的精魂。此时小编们…

    2025年7月23日
    0
  • 关于Navicat 数据库一直激活不成功的解决方法[通俗易懂]

    关于Navicat 数据库一直激活不成功的解决方法[通俗易懂]首先激活时一直出现rsapublickeynotfound,说明获取不到激活码,此时就需要检查-在Patch的时候是不是没成功使用激活成功教程软件如果出现说已经patch过了的时候赶紧卸载重装!!-在激活的时候是不是没有断开网络解决办法:1、window+R输入regedit打开注册表,删除HKEY_CURRENT_USER->SOFTWARE->PremiumSoft2、接下来就是断网啦,把你电脑的WiFi先关了再进行如下操作重装Navic..

    2022年8月31日
    0
  • pycharm在全局搜索某个变量「建议收藏」

    pycharm在全局搜索某个变量「建议收藏」吃了写代码不规范的亏。。。明明记得之前写过某个功能,但是因为文件命名太随意,“123”,“111”,“a”,“test”等不知所谓的名称都被我用上了,以至于找代码时候焦头烂额,以后一定要养成规范命名的好习惯。不过如果已经这样写了,需要找某个函数时,可以用全局搜索的方式,通过找关键字,定位函数,定位文件。具体操作参看:pycharm如何全局进行查找一个关键词…

    2022年5月8日
    198
  • Tomcat环境配置[通俗易懂]

    Tomcat环境配置[通俗易懂]环境配置环境配置环境配置一、Tomcat环境配置1、配置CATALINA_HOME2、配置CATALINA_BASE3、配置Path4、检查配置一、Tomcat环境配置tomcat官网:https://tomcat.apache.org/download-90.cgi1、配置CATALINA_HOMED:\environment\tomcat\apache-tomcat-9.0.442、配置CATALINA_BASED:environment\tomcat\apache-tomcat-9

    2022年6月10日
    28
  • Django(13)django时区问题

    Django(13)django时区问题前言我们都知道时区,标准时区是UTC时区,django默认使用的就是UTC时区,所以我们存储在数据库中的时间是UTC的时间,但是当我们做的网站只面向国内用户,或者只是提供内部平台使用,我们希望存储在

    2022年7月29日
    7
  • C语言中getopt()函数的用法[通俗易懂]

    C语言中getopt()函数的用法[通俗易懂]1.getopt()函数getopt函数用来解析命令行选项,声明所在头文件为:#include<unistd.h>函数原型如下:intgetopt(intargc,char*constargv[],constchar*optstring);第一个参数argc是

    2022年5月3日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号