iOS Safari 13.X no longer styling scroll bars - ios

I have a web app that draws lots of overflowed canvases with windows styled scroll bars.
Previously on iOS 12.X this worked fine and we had 17px scroll bars being overlayed, this behaviour still works-on Android Chrome, and all desktop browsers.
Here's a JS fiddle of a "typical" item we have https://jsfiddle.net/wf80rp5g/4/
css for it
.VTSOuterDiv {
width: 400px;
height: 400px;
overflow: auto;
}
::-webkit-scrollbar {
-webkit-appearance: none;
width: 17px;
height: 17px;
overflow: scroll;
}
::-webkit-scrollbar-track {
/* This color is also used by WIN_NODE's setCanvasSize method, so if we change this
then we should update that. */
background-color: rgb(240, 240, 240);
}
::-webkit-scrollbar-thumb {
background-color: rgb(205, 205, 205);
min-width: 10px;
min-height: 10px;
}
::-webkit-scrollbar-button {
display: normal;
background-color: rgb(240, 240, 240);
background-repeat: no-repeat;
background-position: center;
width: 17px;
height: 17px;
}
::-webkit-scrollbar-thumb:hover {
background-color: rgb(170, 170, 170);
}
::-webkit-scrollbar-thumb:active {
background-color: rgb(141, 141, 141);
}
::-webkit-scrollbar-button:hover {
background-color: rgb(170, 170, 170);
}
::-webkit-scrollbar-button:active {
background-color: rgb(141, 141, 141);
}
On desktop browser there's scroll bars, on chrome mobile and older safari there's scroll bars, but on 13.X we no longer get stylized scroll bars.
is there any known work arounds for this? the release notes aren't forth coming about this change.

Related

Styling ion-refresher

I am trying to style the ion-refresher component background on one specific page, because it has a header. It works like expected in Safari, but on the device, it overlays everything on top.
I have tried some stuff with z-index (also with pseudo element) + positioning absolute, but I cannot get the ion-refresher to sit where it normally is. As soon as I add a background-color to the ion-refresher, it will overlay on top.
Any ideas on how to style the background of this element?
The CSS I used. Please note it only overlays everything when I add a background-color.
ion-refresher:global(.ios) {
height: 120px;
ion-refresher-content {
position: relative;
padding-top: 18px;
justify-content: start !important;
&::after {
content: '';
display: block;
width: 100%;
height: 120px;
position: absolute;
top: 0;
z-index: -9999;
background-color: purple;
}
}
:global(.refresher-pulling-icon) {
color: white;
}
ion-spinner {
color: white;
}
}
Any advice on how to debug this?

CSS Pseudo Selector :active in React and Static Html displays differently on Iphone chrome browser

I've recently come across this issue that
pseudo selector :active doesn't display the same on React and Static page.
this is what I apply
css code exactly the same
I don't even understand why this selector renders on mobile differently according to the framework and static.
button {
margin: 0;
padding: 0;
border: 0;
background-color: transparent;
-webkit-appearance: none;
text-transform: none;
outline: 0;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
cursor: pointer;
}
.form_button {
display: block;
position: relative;
padding: 8px 0 8px 58px;
border: 1px solid red;
border-radius: 8px;
margin-bottom: 18px;
width: 200px;
height: 100px;
text-align: left;
}
.form_button:active {
background-color: green;
}
please check out these both link below on Iphone chrome broswer. ( not Android)
React page - https://codesandbox.io/s/elated-smoke-o8m2xo?file=/src/index.css:0-476
Static page without framework - https://codesandbox.io/s/vigorous-dew-vssmej
Does anyone know about this issue?
or any solution for this?

Ionic Popup Custom CSS iOS issue

I have customized the Popup css to have it in fixed position and horizontally aligned in the center of the screen. It displays correctly in Android device, but way of in iOS. Below is the css I have and the screenshot for iOS and Android. How can I fix the issue in iOS?
.credit-deny-popup .popup {
position: fixed;
top: 60px;
margin-left:auto;
margin-right:auto;
width: 250px;
height: 250px;
}
.credit-deny-popup .popup-title {
font-weight: bold;
font-size: larger;
color: #FFFFFF;
}
.credit-deny-popup .popup-head {
background-color: #387EF5;
}
iOS Screenshot
Android Screenshot
Thank you in advance!
As suggested by #DaDanny in https://forum.ionicframework.com/t/ionic-popup-position/111102/4 fixed the issue. I had to add left and right in the css as well.
.credit-deny-popup .popup {
position: fixed;
top: 60px;
margin-left:auto;
margin-right:auto;
left: 0;
right: 0;
width: 250px;
height: 250px;
}

Ipad / IOS hover issues

In my site there are a few thumbnail when u hover, there will be text coming out.
In android it is perfect, when u touch the thumbnail, the text will appear before the thumbnail go into the slideshow.
But in IOS, the text will not appear and straight away go to the slideshow.
The thumbnails
This is my css
.text {
background-color: rgba(183, 191, 183, 0.65);
color: white;
font-size: 16px;
width:100%;
height:100%;
padding-top:40%;
padding-left:2%;
cursor: pointer;
.middle {
transition: .5s ease;
-webkit-transition: .5s ease ;
opacity: 0;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 100%;
height: 100%;
-webkit-transform: translate(-50%,-50%);
}

visible scrollbars IOS with "webkit-overflow-scrolling: touch"

I want scrollbars to be always visible in IOS. The quick solution is the "::-webkit-scrollbar" fix. However when using "webkit-overflow-scrolling: touch" for the "slide feeling", the scrollbars are not visible anymore.
How can I get them both working?
See the example http://jsfiddle.net/gatb4ct6/5/:
.frame {
overflow-y: auto;
border: 1px solid black;
height: 13em;
width: 10em;
line-height: 1em;
/*-webkit-overflow-scrolling: touch;*/
/* uncomment above and scrollbars are not visible on IOS */
}
::-webkit-scrollbar {
-webkit-appearance: none;
}
::-webkit-scrollbar:vertical {
width: 11px;
}
::-webkit-scrollbar:horizontal {
height: 11px;
}
::-webkit-scrollbar-thumb {
border-radius: 8px;
border: 2px solid white; /* should match background, can't be transparent */
background-color: rgba(0, 0, 0, .5);
}
I was searching for the same problem. It appears that you can use just one of the two options. Scroll auto but with styled scrollbar or fluid scroll but with invisible and not styled scrollbar.
.frame {
overflow-y: auto;
border: 1px solid black;
height: 13em;
width: 10em;
line-height: 1em;
-webkit-overflow-scrolling: touch;
}
::-webkit-scrollbar {
-webkit-appearance: none;
}
::-webkit-scrollbar:vertical {
width: 11px;
}
::-webkit-scrollbar:horizontal {
height: 11px;
}
::-webkit-scrollbar-thumb {
border-radius: 8px;
border: 2px solid white; /* should match background, can't be transparent */
background-color: rgba(0, 0, 0, .5);
}
Or use the -webkit-overflow-scrolling: touch; and none of the pseudo classes after.

Resources