Tom Söderlund
Tom Söderlund

Reputation: 4747

Safari on iOS can't render button text center aligned?

I'm trying to make a <button> with large text (“300kr” below):

enter image description here

But as you can see, when I use the <button> tag and a large font size, the text is left-aligned from the center of the button (image 2). It renders fine in all other browsers I've checked. Is this a Safari iOS bug?

CSS code for the button:

background-color: rgb(0, 0, 0);
border-color: rgb(0, 0, 0);
border-top-left-radius: 100px;
border-top-right-radius: 100px;
border-bottom-right-radius: 100px;
border-bottom-left-radius: 100px;
border-width: 5px;
box-shadow: rgba(0, 0, 0, 0.572549) 0px 7px 34px;
color: rgb(255, 255, 255);
font-family: KGEmpireofDirt;
font-size: 72px;
font-weight: 300;
opacity: 1;
transform: rotate(-20deg);
text-align: center;
width: 100%;
height: 100%;
border-style: solid;
-moz-box-sizing: border-box;
box-sizing: border-box;
display: inline-block;
position: relative;
text-decoration: none;
font-family: Helvetica, sans-serif;
font-weight: 700;
background-color: #6ec8dc;
color: #fff;
border-radius: 6px;
border: 0;
font-size: 100%;
-webkit-appearance: none
outline: 0;
resize: none;

HTML:

<a weld-element="" id="button-5762" class="weld-element weld-container weld-button ng-scope" ng-href="" style="height: 172.23703002929688px; left: 27.243403116862197%; top: 647.8621179414583px; width: 177.01909383137794px; z-index: 103;">
    <button class="weld-child apply-styles ng-binding" id="button-5762-btn" ng-hide="isEditing" style="
        background-color: rgb(0, 0, 0);
        border-color: rgb(0, 0, 0);
        border-top-left-radius: 100px;
        border-top-right-radius: 100px;
        border-bottom-right-radius: 100px;
        border-bottom-left-radius: 100px;
        border-width: 5px;
        box-shadow: rgba(0, 0, 0, 0.572549) 0px 7px 34px;
        color: rgb(255, 255, 255);
        font-family: KGEmpireofDirt;
        font-size: 50px;
        font-weight: 300;
        /* letter-spacing: 0.03em; */
        opacity: 1;
        transform: rotate(-20deg);
        text-align: center;">300kr</button>
</a>

Upvotes: 2

Views: 6586

Answers (1)

Tom S&#246;derlund
Tom S&#246;derlund

Reputation: 4747

The solution was to set an explicit padding: 0 for the button. It turns out that Safari iOS has a different User Agent stylesheet than Safari for macOS, where padding defaulted to 1em.

Upvotes: 13

Related Questions