问题
I try to use them both but it fails..
h1 {
font-size: 72px;
background: linear-gradient(to top, black 50%, orange 50%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
text-shadow: -1px 0 black, 0 1px black, 1px 0 black, 0 -1px black;
}
<h1>Heading 1</h1>
Using only linear-gradient without text-shadow:
Using only text-shadow without linear-gradient:
Using both:
回答1:
Based on this previous answer here is an idea where you will need to duplicate the text:
h1 {
font-family:sans-serif;
font-size:60px;
font-weight: bold;
position:relative;
margin:20px;
}
h1::before,
h1::after {
content:attr(data-text);
}
h1::after {
color:#fff; /*use white*/
/*create the stroke around text*/
text-shadow:
1px 0 0px #000,
0 1px 0px #000,
1px 1px 0px #000,
-1px 0 0px #000,
0 -1px 0px #000,
-1px -1px 0px #000,
-1px 1px 0px #000,
1px -1px 0px #000;
mix-blend-mode: darken; /*everything is more dark than white so we always see the background */
}
h1::before {
position:absolute;
top:0;
left:0;
background:linear-gradient(to bottom,yellow 50%, red 51%);
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
color:transparent;
}
<h1 data-text="Heading 1"></h1>
回答2:
Where you have background: linear-gradient(to top, black 50%, orange 50%);
, you should replace it with bottom,
,
and where you have 1px 0 black
, you should get rid of black
.
<style>
h1 {
font-size: 72px;
background: -webkit-linear-gradient(bottom, black 50%, orange 50%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
text-shadow: -1px 0, 0 1px, 1px 0, 0 -1px
}
</style>
<h1>Heading 1</h1>
Changes:
background: -webkit-linear-gradient(
bottom,
black 50%, orange 50%);
text-shadow: -1px 0
black
, 0 1px
black
, 1px 0
black
, 0 -1px
`;black
来源:https://stackoverflow.com/questions/55269220/how-to-use-both-text-shadow-and-linear-gradient-for-text