For a website I want to use specific CSS rules for mobile devices. What I want is the following:
<a href="tel:+1234567890">+1234567890</a>
(similar to mailto:[email protected])I want to use CSS to hide the phone number with the link on non-mobile devices, and display another element with a plain phone number. I could use the media="handheld" option, but it seems Android and iOS ignore this. A clean CSS-method is preferred, but it's no problem if Javascript (or JQuery) is needed.
My question is now about this tel-link, but I probably will use the same method for other changes to the stylesheet for mobile devices.
The most common is by looking at the User-Agent header, which is sent by the browser along with every request. This header contains information about the browser and operating system, and websites can use this to determine whether a particular device is a mobile phone.
The easiest way to check your phone's model name and number is to use the phone itself. Go to the Settings or Options menu, scroll to the bottom of the list, and check 'About phone', 'About device' or similar. The device name and model number should be listed.
An easy way to test a website on mobile devices online is to use BrowserStack's free Responsive Checker. Simply enter the URL of the website to be tested, and instantly see how it renders on multiple latest devices such as iPhone X, Galaxy Note 10, iPhone 8 Plus, Galaxy S9 Plus, and more.
This is what i use to check if the given request comes from a mobile device:
$mobile_browser = '0';
if (preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|android)/i', strtolower($_SERVER['HTTP_USER_AGENT']))) {
$mobile_browser++;
}
if ((strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml') > 0) or ((isset($_SERVER['HTTP_X_WAP_PROFILE']) or isset($_SERVER['HTTP_PROFILE'])))) {
$mobile_browser++;
}
$mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'], 0, 4));
$mobile_agents = array(
'w3c ','acs-','alav','alca','amoi','audi','avan','benq','bird','blac',
'blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno',
'ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-',
'maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-',
'newt','noki','oper','palm','pana','pant','phil','play','port','prox',
'qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar',
'sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-',
'tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp',
'wapr','webc','winw','winw','xda ','xda-');
if (in_array($mobile_ua,$mobile_agents)) {
$mobile_browser++;
}
if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'windows') > 0) {
$mobile_browser = 0;
}
if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'mac') > 0) {
$mobile_browser = 0;
}
if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'ios') > 0) {
$mobile_browser = 1;
}
if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'android') > 0) {
$mobile_browser = 1;
}
if($mobile_browser == 0)
{
//its not a mobile browser
echo"You are not a mobile browser";
} else {
//its a mobile browser
echo"You are a mobile browser!";
}
?>
I made this with help of a mate of mine, if you have tips or corrections for me please give in comments:)
If you just want a selector for href's using "tel" you can use css attr "starts with" selectors, like so...
a[href^="tel"] { color: red; }
See my example here: http://jsfiddle.net/blowsie/gn9Ld/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With