我有以下代码段,当我将鼠标悬停时,我有一个蓝色的左侧阴影,我想保持该颜色。
ul {
list-style: none;
}
a{
text-decoration: none;
}
#app-navigation:not(.vue) > ul > li > a, #app-navigation:not(.vue) > ul > li > ul > li > a {
background-size: 16px 16px;
background-position: 14px center;
background-repeat: no-repeat;
display: block;
justify-content: space-between;
line-height: 44px;
min-height: 44px;
padding: 0 12px 0 44px;
overflow: hidden;
box-sizing: border-box;
white-space: nowrap;
text-overflow: ellipsis;
color: black;
opacity: 0.57;
flex: 1 1 0px;
z-index: 100;
}
.nav-icon-files {
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2IiB2ZXJzaW9uPSIxLjEiIGhlaWdodD0iMTYiPjxwYXRoIGQ9Im0xLjUgMmMtMC4yNSAwLTAuNSAwLjI1LTAuNSAwLjV2MTFjMCAwLjI2IDAuMjQgMC41IDAuNSAwLjVoMTNjMC4yNiAwIDAuNS0wLjI0MSAwLjUtMC41di05YzAtMC4yNS0wLjI1LTAuNS0wLjUtMC41aC02LjVsLTItMnoiIGZpbGw9IiMwMDAiLz48L3N2Zz4K);
}
#app-navigation:not(.vue) > ul > li.active,
#app-navigation:not(.vue) > ul > li a:hover,
#app-navigation:not(.vue) > ul > li a:focus,
#app-navigation:not(.vue) > ul > li a:active,
#app-navigation:not(.vue) > ul > li a.selected,
#app-navigation:not(.vue) > ul > li a.active,
#app-navigation:not(.vue) > ul > li.active > a,
#app-navigation:not(.vue) > ul > li a:hover > a,
#app-navigation:not(.vue) > ul > li a:focus > a,
#app-navigation:not(.vue) > ul > li a:active > a,
#app-navigation:not(.vue) > ul > li a.selected > a,
#app-navigation:not(.vue) > ul > li a.active > a {
opacity: 1;
box-shadow: inset 4px 0 blue;
}
body{
background: #1e272e;
}
<div id="app-navigation">
<ul class="with-icon">
<li data-id="files" class="nav-files">
<a href="#" class="nav-icon-files svg">Files</a>
</li>
</ul>
</div>
这是我更改svg颜色的方法:
ul {
list-style: none;
}
a{
text-decoration: none;
}
#app-navigation:not(.vue) > ul > li > a, #app-navigation:not(.vue) > ul > li > ul > li > a {
background-size: 16px 16px;
background-position: 14px center;
background-repeat: no-repeat;
display: block;
justify-content: space-between;
line-height: 44px;
min-height: 44px;
padding: 0 12px 0 44px;
overflow: hidden;
box-sizing: border-box;
white-space: nowrap;
text-overflow: ellipsis;
color: black;
opacity: 0.57;
flex: 1 1 0px;
z-index: 100;
}
.nav-icon-files {
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2IiB2ZXJzaW9uPSIxLjEiIGhlaWdodD0iMTYiPjxwYXRoIGQ9Im0xLjUgMmMtMC4yNSAwLTAuNSAwLjI1LTAuNSAwLjV2MTFjMCAwLjI2IDAuMjQgMC41IDAuNSAwLjVoMTNjMC4yNiAwIDAuNS0wLjI0MSAwLjUtMC41di05YzAtMC4yNS0wLjI1LTAuNS0wLjUtMC41aC02LjVsLTItMnoiIGZpbGw9IiMwMDAiLz48L3N2Zz4K);
}
#app-navigation:not(.vue) > ul > li.active,
#app-navigation:not(.vue) > ul > li a:hover,
#app-navigation:not(.vue) > ul > li a:focus,
#app-navigation:not(.vue) > ul > li a:active,
#app-navigation:not(.vue) > ul > li a.selected,
#app-navigation:not(.vue) > ul > li a.active,
#app-navigation:not(.vue) > ul > li.active > a,
#app-navigation:not(.vue) > ul > li a:hover > a,
#app-navigation:not(.vue) > ul > li a:focus > a,
#app-navigation:not(.vue) > ul > li a:active > a,
#app-navigation:not(.vue) > ul > li a.selected > a,
#app-navigation:not(.vue) > ul > li a.active > a {
opacity: 1;
box-shadow: inset 4px 0 blue;
}
body{
background: #1e272e;
}
/* CUSTOM */
.nav-icon-files{
filter: invert(72%) sepia(3%) saturate(75%) hue-rotate(22deg) brightness(80%) contrast(91%);
}
<div id="app-navigation">
<ul class="with-icon">
<li data-id="files" class="nav-files">
<a href="#" class="nav-icon-files svg">Files</a>
</li>
</ul>
</div>
现在,我的图标颜色已更改,但我的box-shadow
也已更改。如何保持原始颜色?
编辑:
.nav-icon-files:before{
filter: invert(72%) sepia(3%) saturate(75%) hue-rotate(22deg) brightness(80%) contrast(91%);
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2IiB2ZXJzaW9uPSIxLjEiIGhlaWdodD0iMTYiPjxwYXRoIGQ9Im0xLjUgMmMtMC4yNSAwLTAuNSAwLjI1LTAuNSAwLjV2MTFjMCAwLjI2IDAuMjQgMC41IDAuNSAwLjVoMTNjMC4yNiAwIDAuNS0wLjI0MSAwLjUtMC41di05YzAtMC4yNS0wLjI1LTAuNS0wLjUtMC41aC02LjVsLTItMnoiIGZpbGw9IiMwMDAiLz48L3N2Zz4K);
}
答案 0 :(得分:1)
稍微调整代码并使用伪元素代替背景
ul {
list-style: none;
}
a{
text-decoration: none;
}
#app-navigation:not(.vue) > ul > li > a, #app-navigation:not(.vue) > ul > li > ul > li > a {
background-size: 16px 16px;
background-position: 14px center;
background-repeat: no-repeat;
display: block;
justify-content: space-between;
line-height: 44px;
min-height: 44px;
padding: 0 12px 0 28px;
overflow: hidden;
box-sizing: border-box;
white-space: nowrap;
text-overflow: ellipsis;
color: black;
opacity: 0.57;
flex: 1 1 0px;
z-index: 100;
color:#fff;
}
.nav-icon-files:before {
content:"";
display:inline-block;
width:16px;
height:16px;
margin-right:5px;
vertical-align:text-bottom;
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2IiB2ZXJzaW9uPSIxLjEiIGhlaWdodD0iMTYiPjxwYXRoIGQ9Im0xLjUgMmMtMC4yNSAwLTAuNSAwLjI1LTAuNSAwLjV2MTFjMCAwLjI2IDAuMjQgMC41IDAuNSAwLjVoMTNjMC4yNiAwIDAuNS0wLjI0MSAwLjUtMC41di05YzAtMC4yNS0wLjI1LTAuNS0wLjUtMC41aC02LjVsLTItMnoiIGZpbGw9IiMwMDAiLz48L3N2Zz4K);
}
#app-navigation:not(.vue) > ul > li.active,
#app-navigation:not(.vue) > ul > li a:hover,
#app-navigation:not(.vue) > ul > li a:focus,
#app-navigation:not(.vue) > ul > li a:active,
#app-navigation:not(.vue) > ul > li a.selected,
#app-navigation:not(.vue) > ul > li a.active,
#app-navigation:not(.vue) > ul > li.active > a,
#app-navigation:not(.vue) > ul > li a:hover > a,
#app-navigation:not(.vue) > ul > li a:focus > a,
#app-navigation:not(.vue) > ul > li a:active > a,
#app-navigation:not(.vue) > ul > li a.selected > a,
#app-navigation:not(.vue) > ul > li a.active > a {
opacity: 1;
box-shadow: inset 4px 0 blue;
}
body{
background: #1e272e;
}
/* CUSTOM */
.nav-icon-files:before{
filter: invert(72%) sepia(3%) saturate(75%) hue-rotate(22deg) brightness(80%) contrast(91%);
}
<div id="app-navigation">
<ul class="with-icon">
<li data-id="files" class="nav-files">
<a href="#" class="nav-icon-files svg">Files</a>
</li>
</ul>
</div>