pretty-checkbox
pretty-checkbox copied to clipboard
Support for multiple lines in label?
I have spent several hours trying to make pretty checkbox with multiple lines of text in label, but no success... This was not planned from the beginning or am I wrong?
Hi @SeminAl ,
As you mentioned, the label text is expected to be in one line, and that's how it was built. Else the design will fail.
But I can imagine use cases of multi line label. May be in the next release I will come up with a solution for this.
Thanks!
Hi @SeminAl , I just made a fiddle for multi line label. Let me know if that helps. Thanks!
https://jsfiddle.net/lokesh_coder/my15u1gm/
That's exactly what I was looking for :) Thank you!
@lokesh-coder Want to integrate your fiddle into the repo?
Great. I used top: calc(50% - ((1em + 2px)/2)) instead of top: 0, to center it horizontally.
why this multi line label hasn't integrated into repo yet?
If you're using icons you'll need to do:
.pretty .state label:after,
.pretty .state label:before,
.pretty.p-icon .state .icon {
top: 0;
}
To size the labels relative to the parent div, change the width in .pretty to 100%. Allows the labels to be =pretty= responsive. Full CSS including the line that makes icons work. I import it as pretty-multiline.css after the pretty-checkboxes package.
/* Overwriting some Pretty-Checkbox styles to allow for word wrapping */
.pretty {
white-space: normal;
width: 100%;
}
.pretty .state label
{
text-indent: 0;
padding-left: 2rem;
}
.pretty .state label:after,
.pretty .state label:before,
.pretty.p-icon .state .icon
{
top: 0;
}
This is really a big issue and should be fixed as soon as possible.
Great fix, I made a little change:
.pretty .state label:after, .pretty .state label:before, .pretty.p-icon .state .icon, .pretty.p-svg .state .svg { top: 0; }
Then the svg image is also in the right place!
I was able to make pretty check box handle wrapping of long text for labels and allow for click-able links within them with the following:
.pretty .state label { white-space: normal; text-indent: unset; padding-left: 5vw; /* Change to your preferred dimensions */ }
/* This will make the use of an svg align correctly, you may need to add other formats if you use them. */ .pretty.p-svg .state .svg, .pretty .state label:after, .pretty .state label:before { top: 0; }
/* Make pretty checkbox handle links in labels, thanks goes to pmonte, for a pointer in the right direction */ .pretty a { z-index: 3; position: relative; }