Leaflet.EasyButton icon indicating copy to clipboard operation
Leaflet.EasyButton copied to clipboard

Icon not centered on mobile

Open delimmy opened this issue 5 years ago • 7 comments

Icon looks centered on desktop but is pushed to the right on mobile (iPhone X)

Screen Shot 2020-03-29 at 12 25 33 AM

const ezButton = L.easyButton('<span style="font-size:2em; line-height:26px; color:#FF3D2D;">&hearts;</span>', function (btn, map) {
})

Any ideas how to fix?

delimmy avatar Mar 29 '20 07:03 delimmy

My hunch is that this is more of general styling issue than an EasyButton issue. I'm happy to help with what I can though.

I'd guess that this stems from putting a large/wide character into a smaller, square box.

If you set font-size:26px (to match your line-height), how is centering affected?

atstp avatar Mar 30 '20 18:03 atstp

I'm probably late to this thread but just had to work through this myself:

const ezButton = L.easyButton(
    '<span style="font-size:2em; line-height:26px; color:#FF3D2D;">&hearts;</span>', 
    function (btn, map) {}
)
ezButton.button.style.padding = '0px';

This will remove the padding and allow your icon to be centered within the button. There may be a more elegant way of changing the button style when you initially create it. Hope this helps get you on the right track!

kitchensjn avatar Apr 30 '20 06:04 kitchensjn

I found the same problem on desktop computers

sonfire186 avatar May 24 '20 19:05 sonfire186

https://github.com/CliffCloud/Leaflet.EasyButton/issues/48

function _fixEasyButtonSize(button) {
    var buttonElement = button.button;
    buttonElement.style.padding = '0px';
    buttonElement.style.width = "26px";
    buttonElement.style.height = "26px";
    buttonElement.style.minWidth = "26px";
    buttonElement.style.minHeight = "26px";
}
_fixEasyButtonSize(button);

sonfire186 avatar May 24 '20 19:05 sonfire186

For me, adding padding: 0; directly to the CSS file, in the initial property, solves the issue:

.leaflet-bar button,
.leaflet-bar button:hover {
...
padding: 0;
}

In my case, i use a trick to place icons everywhere, using an extra CSS file and a function. But in the end, it results in the same problem as posted here, so even though they are slightly different situations, this solution should work for both.

dgva avatar Aug 25 '21 11:08 dgva

I am using leaflet embeded into a Wordpress site. Had a similar issue. It turned out to be the Wordpress CSS setting some styles to the button. Adding this as an inline css solved the issue for me.

button.easy-button-button	{
	padding: unset !important;
	font-size: unset !important;
	font-weight: unset !important;
	text-transform: unset !important;
	-webkit-transition: unset !important;;
	transition: unset !important;
}

F4FXL avatar Mar 04 '24 17:03 F4FXL