I have a Next.js app with five buttons that have the same SCSS class and height. However, the height of the ::after element in one button is different and I don't know why.
Scss class:
.underline-button {
color: $color;
cursor: pointer;
user-select: none;
&:after {
content: "";
display: block;
width: 50%;
height: 1px;
margin-left: auto;
margin-right: auto;
background: $color;
transition: width 0.3s;
}
&:hover:after {
width: 100%;
}
&:active:after {
width: 0;
}
}
Jsx code:
export default function Home() {
return (
<div>
<div className="underline-button">Button</div>
<div className="underline-button">Button</div>
<div className="underline-button">Button</div>
<div className="underline-button">Button</div>
<div className="underline-button">Button</div>
<div className="underline-button">Button</div>
</div>
);
Render output (.png)
I have a Next.js app with five buttons that have the same SCSS class and height. However, the height of the ::after element in one button is different and I don't know why.
Scss class:
.underline-button {
color: $color;
cursor: pointer;
user-select: none;
&:after {
content: "";
display: block;
width: 50%;
height: 1px;
margin-left: auto;
margin-right: auto;
background: $color;
transition: width 0.3s;
}
&:hover:after {
width: 100%;
}
&:active:after {
width: 0;
}
}
Jsx code:
export default function Home() {
return (
<div>
<div className="underline-button">Button</div>
<div className="underline-button">Button</div>
<div className="underline-button">Button</div>
<div className="underline-button">Button</div>
<div className="underline-button">Button</div>
<div className="underline-button">Button</div>
</div>
);
Render output (https://i.sstatic/9nDgBtcK.png)
Share Improve this question asked Nov 19, 2024 at 16:28 benben 12 bronze badges 2 |1 Answer
Reset to default -2It seems that you have written your code in wrong hierarchy.
$color: #333;
.underline-button {
color: $color;
cursor: pointer;
user-select: none;
text-align: center;
padding: 15px 0;
font-size: 24px;
&:after {
content: "";
display: block;
width: 50%;
height: 1px;
margin-left: auto;
margin-right: auto;
background: $color;
transition: width 0.3s;
}
&:hover {
&:after {
width: 100%;
}
}
&:active {
:after {
width: 0;
}
}
}
<div>
<div class="underline-button">Button</div>
<div class="underline-button">Button</div>
<div class="underline-button">Button</div>
<div class="underline-button">Button</div>
<div class="underline-button">Button</div>
<div class="underline-button">Button</div>
</div>
As your code is in .SCSS please check this.
发布者:admin,转转请注明出处:http://www.yc00.com/questions/1742413497a4439281.html
<>
icon. See How to create a Minimal, Reproducible Example – Paulie_D Commented Nov 19, 2024 at 16:33