知识储备
伪元素: 伪元素是一个附加至选择器末的关键词,允许你对被选择元素的特定部分修改样式。伪元素主要有:
- ::first-letter 第一个字母的样式
- ::first-line 首行文字的样式
- ::before 元素头部添加的修饰
- ::after 元素尾部添加的修饰
- ::placeholder input的占位符样式
- ::selection 被选中元素的样式
其实吧,我觉得伪元素可以解释为元素的修饰,可以为元素带来额外的附加样式,属于额外的文档结构。
伪类: 用来表示无法在CSS中轻松或者可靠检测到的某个元素的状态或属性,比如a标签的hover表示鼠标经过的样式,visited表示访问过的链接的样式,更多的用来描述元素状态变化时的样式,伪类主要有:
- :link
- :visited
- :hover
- :active
- :focus
- :lang(fr)
- :not(s)
- :root
- :first-child
- :last-child
- :only-child
- :nth-child(n)
- :nth-last-child(n)
- :first-of-type
- :last-of-type
- :only-of-type
- :nth-of-type(n)
- :nth-last-of-type(n)
- :empty
- :checked
- :enabled
- :disabled
- :target
我们利用css伪类和伪元素可以实现很多强大的视觉效果,这里我主要说下伪元素的使用
这里面有个 :root ,很重要。 好像说是级别挺高的(比html都高),我见网上好多文章都把他用来为css(全局)自定义变量做贡献。
:root{--back-color:#ccc;}
,css里自定义变量名前面要加“- -”
实战
看下实现的图标——搜索图标:
/* html */
<span class="search"></span>
/* css */
.search{
position: relative;
display: inline-block;
width: 12px;
height: 12px;
border-radius: 50%;
border: 1px solid #ccc;
text-align: center;
transform: rotate(-45deg);
&::after{
content: '';
display: inline-block;
width: 1px;
height: 4px;
background-color: #ccc;
}
}
里面有个“&”是啥意思?
这其实是sass的语法:代表(嵌套的)上一级选择器。
上面那一行实际上写在外面就是:.search::after{...}
。
在JS中,其实和this作用差不多。。。
标签:图标库,样式,元素,实用,nth,child,type,css From: https://blog.51cto.com/u_15296224/7562717