用于在另一个元素内插入图标的伪元素选择器
Pseudoelement selector for inserting icon inside of another element
我想使用一些 pseudo-element 选择器(:before, :after)来在其他元素内的 :hover 上包含文本或图标。有没有办法只使用 pseudo-element 选择器来做到这一点?我想 实际上不更改该元素的内容 因为它的内容是从 localStorage
.
加载的
我的设想是在将鼠标悬停在 header 上时在视觉上添加一些 click-able 图标 (✗, )。
<header contenteditable="true" id="title" onkeyup="store(this.id);"></header>
感谢您的建议。
您可以将图标添加为 background-image
。
header{
position:relative;
}
header:before{
content:" ";
position:absolute;
top:0;
left:0;
width:5px;
height:5px;
background: url(icon.png) no-repeat ;
}
尝试在伪选择器中使用内容属性或将其添加为背景图片
我猜你想要这样的东西?
您还可以在 after
元素或 background-image.
中使用 fontAwesome
header {
height:100px;
width:100px;
position:relative;
background:Red;
}
header:after {
content:"X";
position:absolute;
right:0;
top:0;
color:#fff;
transition:0.3s ease-out;
opacity:0;
}
header:hover:after {
opacity:1;
}
<header contenteditable="true" id="title" onkeyup="store(this.id);"></header>
选项 2。使用普通 Javascript
使用 javascript 添加了 fontAwesome 图标(beforeend
= 插入到 header
标签末尾之前 -> 您可以使用 beforebegin,afterbegin,beforeend,afterend
在此处查看更多信息 insertAdjacentHTML)
然后,您可以在之前添加的图标上添加点击事件。 (我在这里切换 header 的 class 改变它的颜色)
如果有帮助请告诉我
var newElem = document.getElementById("title");
newElem.insertAdjacentHTML('beforeend', '<i id="clickme" class="fa fa-times-circle" aria-hidden="true"> </i>');
document.getElementById("clickme").onclick = function() {
newElem.classList.toggle('blue');
};
header {
height: 100px;
width: 100px;
position: relative;
background: Red;
transition: 0.3s;
}
header:hover .fa {
opacity: 1;
}
.fa {
color: white;
position: absolute;
top: 0;
right: 0;
cursor: pointer;
opacity: 0;
}
header.blue {
background: blue;
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet"/>
<header contenteditable="true" id="title" onkeyup="store(this.id);"></header>
我想使用一些 pseudo-element 选择器(:before, :after)来在其他元素内的 :hover 上包含文本或图标。有没有办法只使用 pseudo-element 选择器来做到这一点?我想 实际上不更改该元素的内容 因为它的内容是从 localStorage
.
我的设想是在将鼠标悬停在 header 上时在视觉上添加一些 click-able 图标 (✗, )。
<header contenteditable="true" id="title" onkeyup="store(this.id);"></header>
感谢您的建议。
您可以将图标添加为 background-image
。
header{
position:relative;
}
header:before{
content:" ";
position:absolute;
top:0;
left:0;
width:5px;
height:5px;
background: url(icon.png) no-repeat ;
}
尝试在伪选择器中使用内容属性或将其添加为背景图片
我猜你想要这样的东西?
您还可以在 after
元素或 background-image.
header {
height:100px;
width:100px;
position:relative;
background:Red;
}
header:after {
content:"X";
position:absolute;
right:0;
top:0;
color:#fff;
transition:0.3s ease-out;
opacity:0;
}
header:hover:after {
opacity:1;
}
<header contenteditable="true" id="title" onkeyup="store(this.id);"></header>
选项 2。使用普通 Javascript
使用 javascript 添加了 fontAwesome 图标(beforeend
= 插入到 header
标签末尾之前 -> 您可以使用 beforebegin,afterbegin,beforeend,afterend
在此处查看更多信息 insertAdjacentHTML)
然后,您可以在之前添加的图标上添加点击事件。 (我在这里切换 header 的 class 改变它的颜色)
如果有帮助请告诉我
var newElem = document.getElementById("title");
newElem.insertAdjacentHTML('beforeend', '<i id="clickme" class="fa fa-times-circle" aria-hidden="true"> </i>');
document.getElementById("clickme").onclick = function() {
newElem.classList.toggle('blue');
};
header {
height: 100px;
width: 100px;
position: relative;
background: Red;
transition: 0.3s;
}
header:hover .fa {
opacity: 1;
}
.fa {
color: white;
position: absolute;
top: 0;
right: 0;
cursor: pointer;
opacity: 0;
}
header.blue {
background: blue;
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet"/>
<header contenteditable="true" id="title" onkeyup="store(this.id);"></header>