I would like to get something like this:
And this is the current result:
What I've tried:
.accordion-button::after {
flex-shrink: 0;
width: 1.25rem;
height: 1.25rem;
margin-left: auto;
content: "";
background-image: url(data:image/svg xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e);
background-repeat: no-repeat;
background-size: 1.25rem;
transition: transform .2s ease-in-out;
float: left;
}
Unfortunately float: left;
did not worked.
Any ideas?
CodePudding user response:
You can use the flex order
property
.accordion-button:after {
order: -1; //swap order
margin-left: 0;
margin-right:0.5em; // just extra space between text and icon
}
CodePudding user response:
You could write a custom class to change the pseudo to ::before
and remove the margin-left
.
Note:
You have to hide ::after
pseudo element.
Eg:
.myaccordion .accordion-button::before {
flex-shrink: 0;
width: 1.25rem;
height: 1.25rem;
content: "";
background-image: url(data:image/svg xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e);
background-repeat: no-repeat;
background-size: 1.25rem;
transition: transform .2s ease-in-out;
}
.accordion-button::after {display: none !important;}