I'm trying to create CSS Selectors using JavaScript for certain browsers and on mobile. This is the method that already works:
// CHECK BROWSER AND SET AS CSS METHOD
function getBrowserName() {
var name = "Unknown";
if(navigator.userAgent.indexOf("MSIE")!=-1){
name = "msie";
} if(navigator.userAgent.indexOf("Trident")!=-1){
name = "msie";
} if(navigator.userAgent.indexOf("Edge")!=-1){
name = "msie";
} else if(navigator.userAgent.indexOf("Firefox")!=-1){
name = "firefox";
} else if(navigator.userAgent.indexOf(" OPR/")>=0){
name = "opera";
} else if(navigator.userAgent.indexOf("Chrome") != -1){
name = "chrome";
} else if(navigator.userAgent.indexOf("Safari")!=-1){
name = "safari";
}
return name;
}
if (getBrowserName() != "Unknown"){
document.getElementsByTagName('html')[0].className += "is-" + getBrowserName(name);
}
This works great by calling .is-(browser-name element-selector { css }
. However, I can't get this to work for mobile. Here's my code...
var mobile = (/iphone|ipod|android|blackberry|mini|windows\sce|palm/i.test(navigator.userAgent.toLowerCase()));
if (mobile) {
document.getElementsByTagName('html')[0].className += "is-mobile";
}
I've been using everything outside of the if (mobile)
section with jQuery, which already works, but I would like to make this process a bit quicker using regular CSS and JavaScript. I'd include a working code snippet, but it obviously won't work since my current code depends on the user using certain browsers...I've included a sample in the hopes it might be easier to read.
Does anyone have any idea why this code works for the different browsers section, but not the mobile? Thanks for the help!
// WORKS
function getBrowserName() {
var name = "Unknown";
if (navigator.userAgent.indexOf("MSIE") != -1) {
name = "msie";
}
if (navigator.userAgent.indexOf("Trident") != -1) {
name = "msie";
}
if (navigator.userAgent.indexOf("Edge") != -1) {
name = "msie";
} else if (navigator.userAgent.indexOf("Firefox") != -1) {
name = "firefox";
} else if (navigator.userAgent.indexOf(" OPR/") >= 0) {
name = "opera";
} else if (navigator.userAgent.indexOf("Chrome") != -1) {
name = "chrome";
} else if (navigator.userAgent.indexOf("Safari") != -1) {
name = "safari";
}
return name;
}
if (getBrowserName() != "Unknown") {
document.getElementsByTagName('html')[0].className += "is-" + getBrowserName(name);
}
// DOESN'T WORK
var mobile = (/iphone|ipod|android|blackberry|mini|windows\sce|palm/i.test(navigator.userAgent.toLowerCase()));
if (mobile) {
document.getElementsByTagName('html')[0].className += "is-mobile";
}
// WORKS
if (mobile) {
$(".about-text").css("width", "90%");
$("body").css("font-size", "50px");
$("section").css("padding-top", "160px");
}
/* works */
.is-msie hr {
margin: 50px 0 10px 0;
}
/* doesn't work */
.is-mobile hr {
margin: 50px 0 10px 0;
}
<!--REPEATING TABLE WITH HR FOR SEPARATORS -->
<div class="col span-1-of-2 table right-col">
<hr>
<div>
<div class="col span-1-of-8 date">
<p><span>12</span> Nov.</p>
</div>
<div class="col span-1-of-8 venue">
<p>The Venue</p>
</div>
<div class="col span-1-of-8 city">
<p>San Francisco, CA</p>
</div>
<div class="col span-1-of-8 rsvp desktop">
<div><a class="btn-sm btn-full" href="#">RSVP</a></div>
</div>
<div class="col span-1-of-8 tickets desktop">
<div><a class="btn-sm btn-ghost" href="#">Tickets</a></div>
</div>
<div class="col span-2-of-8 info">
<div><a class="btn-sm btn-full" href="#">Info</a></div>
</div>
</div>
<hr>
<div>
<div class="col span-1-of-8 date">
<p><span>12</span> Nov.</p>
</div>
<div class="col span-1-of-8 venue">
<p>The Venue</p>
</div>
<div class="col span-1-of-8 city">
<p>San Francisco, CA</p>
</div>
<div class="col span-1-of-8 rsvp desktop">
<div><a class="btn-sm btn-full" href="#">RSVP</a></div>
</div>
<div class="col span-1-of-8 tickets desktop">
<div><a class="btn-sm btn-ghost" href="#">Tickets</a></div>
</div>
<div class="col span-2-of-8 info">
<div><a class="btn-sm btn-full" href="#">Info</a></div>
</div>
</div>
<hr>
<div>
<div class="col span-1-of-8 date">
<p><span>12</span> Nov.</p>
</div>
<div class="col span-1-of-8 venue">
<p>The Venue</p>
</div>
<div class="col span-1-of-8 city">
<p>San Francisco, CA</p>
</div>
<div class="col span-1-of-8 rsvp desktop">
<div><a class="btn-sm btn-full" href="#">RSVP</a></div>
</div>
<div class="col span-1-of-8 tickets desktop">
<div><a class="btn-sm btn-ghost" href="#">Tickets</a></div>
</div>
<div class="col span-2-of-8 info">
<div><a class="btn-sm btn-full" href="#">Info</a></div>
</div>
</div>
<hr>
<div>
<div class="col span-1-of-8 date">
<p><span>12</span> Nov.</p>
</div>
<div class="col span-1-of-8 venue">
<p>The Venue</p>
</div>
<div class="col span-1-of-8 city">
<p>San Francisco, CA</p>
</div>
<div class="col span-1-of-8 rsvp desktop">
<div><a class="btn-sm btn-full" href="#">RSVP</a></div>
</div>
<div class="col span-1-of-8 tickets desktop">
<div><a class="btn-sm btn-ghost" href="#">Tickets</a></div>
</div>
<div class="col span-2-of-8 info">
<div><a class="btn-sm btn-full" href="#">Info</a></div>
</div>
</div>
<hr>
</div>