For book

Back to the index.

I retested the CSS properties I discuss in chapter 5 of my book. Eventually these entries will be superseded by new ones in the context of the CSS module the properties appear in.

iOS Android Chrome Opera BlackBerry Nokia UC Puffin Nintendo Dolphin Tizen One IE Firefox
6 7 2 4 18 31 Mini Mob 12 Mob 18 6 7 10 Xpress MeeGo Anna Belle Mini 8 9 9 10 OS And
The background image does not scroll; the element serves as a “window” on the background image. Static Jumpy 4.1 No Static No No No Static Incomplete - Yes Buggy Static No Yes No Yes Static Ugly
Jumpy
Image is readjusted after scrolling or zooming stops.
Static
Background image is correctly positioned on page load, but does not change on scrolling.
  • The Samsung Android 4 doesn’t support fixed; the HTC does. This seems to be an Android version thing: 4.1 and up support fixed.
  • Symbian supports it, but the effect is rather ugly.
  • UC9 tries to support it, but mostly fails.
  • NetFront is no-img, but also after a scroll.
  • Firefox scrolls the image rather than jumping.
The background image scrolls with the element (and not the document). Yes - No Yes No - No Yes - Yes Minimal - Yes Ugly Yes No Yes No Yes No Yes
Untestable
Browser does not support scrollable elements.
  • Symbian Belle moves part of the background image when you scroll the element, but the rest only moves when you scroll outside the element. Also, in the test page it gets confused with the previous example; apparently the scrolling layers overlap invisibly.
Extra mobile test
Percentages of the layout viewport width or height
50vw = 50% of viewport width
Buggy No No Yes No Yes No vv No - No No vv No vv No Yes No Yes
vv
Unit relative to the visual viewport, not to the layout viewport.
Static
Widths not updated when the viewport changes, for instance by changing the orientation
  • Safari calculates these issues relative to the HTML element, it seems.
  • Opera 14: weird numbers that bear no discernible relation to any viewport.
The smaller or larger of vw and vh Incomplete Yes No No Yes No Yes No Incomplete No - No No Incomplete No Incomplete No Incomplete No Yes
Incomplete
Only supports vmin.
An element in an active state. No Incomplete Incomplete Yes No Yes Yes No No No No Almost No Yes No Incomplete Yes

Styles should be applied ontouchstart and removed ontouchend.

To be honest, I don't see a lot of use for this selector on touchscreen devices.

  • Android 2: Samsung supports it; HTC doesn’t.
  • Android 4: Wow. All browsers support it BUT
    • All browsers but Huawei leave the style until you touch the next item (Huawei removes it ontouchend)
    • The Xperia, LG, and Huawei do not add active styles when you hold an element while interface elements such as select are still visible for another element. They only do active when interface elements are missing.
  • Chrome 18 Samsung supports it; the Google version does not.
  • Nintendo supports it, but only when you hold the element for a while. A simple tap is not enough.
  • FF OS: the Geekphone supports it; the ZTE doesn’t.
An element in a hovered state. Special Yes Yes Incomplete Special Almost Incomplete Desktop Yes No Almost Yes No Yes Yes Almost Yes Yes Desktop Yes Yes

Normally the :hover styles are applied when the user touches the element, and removed when the user touches another element.

Special
Browser implements styles (and their removal) only on touchable elements; i.e. links, form fields, or elements with an explicit onclick event handler.
Desktop
Browser removes styles when touch ends; this is more in line with what the desktop browsers do.
  • Chrome 31/Opera 18 removes the hover styles when context menus appear (i.e. when you hold your touch long enough). If they don’t appear, hover works normally.
  • Opera 12 and Tizen do not apply the styles when you touchhold. Then it only shows the context menu.
  • MeeGo: only after a short tap. Touchhold doesn’t give hover styles.
iOS Android Chrome Opera BlackBerry Nokia UC Puffin Nintendo Dolphin Tizen One IE Firefox
6 7 2 4 18 31 Mini Mob 12 Mob 18 6 7 10 Xpress MeeGo Anna Belle Mini 8 9 9 10 OS And

Tested browsers

Mobile browser test array 1.2.3; December 2013

iOS 6
WebKit 536
Default browser on iPhone 4S with iOS 6.1.3
iOS 7
WebKit 537
Default browser on iPad 2 with iOS 7.0.4
Android 2
WebKit 533
Default browser on HTC Legend, Android 2.2
Default browser on Samsung Galaxy Pocket, Android 2.3.6
Android 4
WebKit 534
Default browser on Samsung Galaxy Note I, Android 4.0.3
Default browser on Sony Xperia S, Android 4.1.2
Default browser on LG L5, Android 4.1.2
Default browser on Xiaomi M2, Android 4.1.1
Default browser on Huawei C8813, Android 4.1.1
Default browser on Samsung Galaxy S3, Android 4.1.2
Default browser on HTC One X, Android 4.2.2
Chrome 18
WebKit 535
Default browser on Samsung Galaxy S4, Android 4.2.2
On Sony Xperia S, Android 4.1.2. This is a downloaded version from Google
It will be interesting to see if Samsung’s purported Chrome 18 is really the real Chrome 18.
Chrome 31
Blink (Chromium 31)
On HTC One X, Android 4.2.2
On Nexus 7, Android 4.4
Opera Mini
Presto
Proxy browser
7.0.5 on iPad 2, iOS 7.0.3
7.1 on BlackBerry 9800 (OS6)
7.1 on Nokia PureView 808, Symbian Belle
7.5 on Samsung Galaxy Note I, Android 4.0.3
Opera Mobile 12
Presto
12.00 on Nokia E7, Symbian Anna
12.10 on Samsung Galaxy Pocket, Android 2.3.6
Opera Mobile 18
Blink (Chromium version not given; likely 30 or 31)
On Sony Xperia S, Android 4.1.2
On Nexus 7, Android 4.3
BlackBerry 6
WebKit 534
Default browser on BB Torch 9800 (OS6)
BlackBerry 7
WebKit 534
Default browser on BB Torch 9810 (OS7)
BlackBerry 10
WebKit 537
Default browser on BlackBerry Z10 (BB OS 10.1)
This device has 1GB of internal memory instead of the customary 2GB, which may matter in performance tests.
Xpress
Gecko 20100401; this version was used for some Firefoxes from 3 to 4.
Proxy browser
3.9 on the Nokia Asha 311, S40.
This browser used to be called Ovi. Nokia developed it because it saw how succesful Opera was on Nokia’s own devices.
MeeGo
WebKit 534
Default browser on Nokia N950, MeeGo Harmattan 1.2
Originally slated as Symbian’s successor, MeeGo was ousted in favour of Windows Phone. Some devices were sold, however, and a Finnish company is trying to re-start MeeGo under the name Sailfish. Also, rumour has it that Nokia is quietly hiring back ex-MeeGo people, so a Nokia-based restart is not entirely impossible.
Anna
WebKit 533
Default browser (7.3) on Nokia E7, Symbian Anna
The next-to-last Symbian build. I don’t think it was the prime Symbian build for long; it was replaced by Belle fairly soon. But it’ll be in some people’s pockets.
Belle
WebKit 535
Default browser (8.3) on Nokia PureView 808, Symbian Belle FP2
The most recent Symbian build.
UC Mini
Gecko; don’t know version number
Proxy browser
8.8 on HTC One X, Android 4.2.2
UC
WebKit 534
UC 8.5.1 on Xiaomi M2 (Android 4.1.1)
UC 9.2.3 on Huawei C8813 (Android 4.1.1)
The largest Chinese browser. This is the full variant, not the proxy. These browsers were pre-installed (next to Android WebKit; don’t ask me why).
Puffin
WebKit 534
2.1 Free Edition on Samsung Galaxy Note, Android 4.0.3
Claims to be Chrome 11
Nintendo
WebKit 536
Nintendo browser 2.0.0 on Wii U 4.0.0
Supposed to be based on NetFront.
Dolphin
WebKit 534
Dolphin 10 with JetPack on Sony Xperia S, Android 4.1.2.
Independent full browser for Android, as long as you install both Dolphin 10 and the Jetpack extension.
QQ One
WebKit 533
4.2.2 on HTC One X, Android 4.2.2
This is the downloadable, international browser TenCent created.
Tizen
WebKit 537
Default browser on Ref.Device-PQ by Samsung; Tizen 2.2
Tizen is an OS jointly being developed by Samsung and Intel. I expect Samsung to start producing devices this year, and it will get a few percent of market share.
IE9
Trident
Default browser on Nokia Lumia 800, Windows Phone 7.5.
IE10
Trident
Default browser on Nokia Lumia 820, Windows Phone 8.0.
Firefox OS
Gecko 18
Geekphone/Telefónica (Peak and/or qcom); Boot2Gecko 1.0.1.0-prerelease
Default browser on ZTE Open, FF OS 1.0.0802
The ZTE Open will get an upgrade to 1.1 pretty soon.
Firefox Android
Gecko 25
25 on Samsung Galaxy Pocket, Android 2.3.6
25 on HTC One X, Android 4.2.2