Por supuesto. Obviamente, sería mejor usar CSS solo, pero si no puedes, usa lo que tienes. Haga todo lo que pueda con CSS y use JS según sea necesario. No estoy seguro de por qué no puede cambiar el CSS existente, pero puede agregar una hoja de estilo con JS.
(function() {
//create a new element
var newStyle = document.createElement("link");
//set the required attribute for a valid css file
newStyle.rel = "stylesheet";
newStyle.href = "http://example.com/the/location/of/your/css/stylesheet.css";
//and then append it to the <head>
document.getElementsByTagName("head")[0].appendChild(newStyle);
})();
Fuente: http://christian-fei.com/add-stylesheets-after-the-head-using-javascript/
luego enloquece con las consultas CSS / medios.
O con jQuery:
$('head').append('<link rel="stylesheet" type="text/css" href="{url}">');
He hecho 'máscaras' receptivas donde algunas cosas simplemente no eran posibles sin cambiar el DOM. Si no tiene acceso al HTML, la manipulación de JS DOM es a veces la única respuesta.
EDITAR:
Dependiendo de los requisitos visuales de su versión de pantalla pequeña, es posible que se sorprenda de hasta qué punto este fragmento de CSS lo llevará a 'dispositivos móviles'.
/* hopefully the original CSS developer didn't include a bunch of !importants.*/
div, p, ul, table, img {
float: none !important;
max-width: 96% !important; /* breathing room on the sides */
margin-left: auto
margin-right: auto;
}
Si el desarrollador de CSS original era demasiado aficionado !important
y no puede acceder al HTML, puede usar jQuery / JS para agregar una ID al cuerpo o contenedor de alto nivel y agregarlo a su selector.
#i-will-beat-you-important div,
#i-will-beat-you-important p,
#i-will-beat-you-important ul {
float: none !important;
...
}