oh, thanks a lot for your patience for this issue.
under your advice, i have found the point. i remove SFMono-Regular from font-family, the font display is fixed. but i dont find any font named like SFMono* installed on my system, why does chromium not load the next (or next to the next) font?
Website developers choose an order for fonts, so if one isn't present then it will try the next until "monospace" which is the default one in Chromium's settings.
GitHub's website uses a font order that gives each platform the best chances of using their native mono fonts. Neither Apple (SFMono) or Windows (Consolas) fonts are pre-installed on Ubuntu, so "Liberation Mono" should be the one that's used.
Different browsers support different font formats, so Firefox may not support or find the font that's providing "SFMono".
Bizarrely, SFMono is Apple's San Francisco Mono font It may not be a package, so try checking these hidden home folders:
~/.fonts/
~/.local/share/fonts/
You can use this command to specifically list a font containing the name "SF":
fc-list | grep SF
It could be under a different name, the DevTools should tell you the name of the font that is being rendered (it's under Styles → bottom of the right sidebar).
Once finding the erroneous font, try moving/deleting it and restart the browser.
Finally I’ve found the problem. The issue is due to my Locale setting.
When I change my Locale setting to United Kingdom, the problem is just solved.
It’s interesting that Chromium just takes the Locale setting and ignores the CSS Style.
I tried to set as China or Japan, the font displayed incorrectly (the loaded font is Noto Sans), but it displayed correctly when I set it as Korean. This is also interesting, and, emmm... a little weird.
So I still could not recognize clearly the way how Chromium decides to load the font.
For a supplement, I found, that in the DevTools, the right sidebar of Styles is only shown when I directly open it by F12, and it will not be shown when I right click and Inspect the element. So I just didn’t know that there is a right sidebar of the Styles.
Good to know. It does seem odd that this affects the first font SFMono-Regular as earlier confirmed that removing this one 'fixes' the monospace font too.
If you just need to set the locale for this one application, you can edit the launcher for Chromium in MATE's Main Menu editor.
env LANG=en_GB.UTF-8 chromium
It might be worth testing Ubuntu Kylin (Chinese version of Ubuntu) which also uses the MATE Desktop, to see if the problem happens there or if they have additional packages to support the use of Latin fonts.
Ah, I didn't realise UKUI was a fork of MATE. So while it is based on MATE, the freedom of the license (GPL) makes it perfectly within their rights to fork it and make changes as they please, as long they provide the source code (which they do). MATE developers can take UKUI's code too, if MATE developers wanted.
Since it's an official Ubuntu flavour, it's bound to use the same packages in regards to Chromium. I'm wondering if they have additional font packages installed that do not have the problem that could be installed in Ubuntu MATE. Both flavours share the same repository, after all.
I tried to reproduce the issue, but Chromium appears to work normally in both Ubuntu MATE 19.10 and Ubuntu Kylin 19.10 from a live session and installed (Chinese) system. I did learn that Chromium is now distributed as a snap package.
Both distros have identical fonts installed, so I'm just as baffled why it happens! The upside is that the en_GB.UTF-8 workaround works.