Certo. Obviamente, seria melhor usar CSS sozinho, mas se você não puder, use o que possui. Faça o máximo possível com CSS e use JS, conforme necessário. Não sei por que você não pode alterar o CSS existente, mas pode adicionar uma folha de estilos com 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);
})();
Fonte: http://christian-fei.com/add-stylesheets-after-the-head-using-javascript/
depois enlouqueça com as consultas CSS / mídia.
Ou com jQuery:
$('head').append('<link rel="stylesheet" type="text/css" href="{url}">');
Eu fiz 'skins' responsivas, onde algumas coisas simplesmente não eram possíveis sem alterar o DOM. Se você não tem acesso ao HTML, a manipulação do JS DOM às vezes é a única resposta.
EDIT:
Dependendo dos requisitos visuais da sua versão de tela pequena, você pode se surpreender com a distância que esse snippet CSS levará ao longo do caminho para 'dispositivos móveis'.
/* 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;
}
Se o desenvolvedor original do CSS gostava demais !important
e você não pode acessar o HTML, pode usar o jQuery / JS para adicionar um ID ao corpo ou ao contêiner de alto nível e adicioná-lo ao seu seletor.
#i-will-beat-you-important div,
#i-will-beat-you-important p,
#i-will-beat-you-important ul {
float: none !important;
...
}