2016-02-13 3 views
1

Я пытаюсь избежать добавления стиля онлайн, когда JS отключается. Например, я хотел бы скрыть элемент в теле, когда JS отключен, но я хотел бы сделать это только из внешнего CSS.Добавить стилизацию элементов, когда JavaScript отключен

Я хотел бы, чтобы избежать добавления стиля, как показано ниже

<noscript> 
    <style> 
    ...some style 
    </style> 

    <p class="no-js">You need Javascript enabled to view all of the content on this page.</p> 
</noscript> 

<body> 
    <div>element to hide when js disabled</div> 
</body> 

Есть ли альтернатива этому? Спасибо!

+0

CSS не имеет возможности обнаружить, если, или когда, JavaScript отключен; вместо этого используйте JavaScript для отображения элемента при его включении, что подразумевает, что он будет скрыт, когда JavaScript отключен. –

+0

Если он не сломан, не исправляйте его ;-) – user2267175

ответ

0

Вы должны использовать тег <noscript>, для скрытия элемента, в <style> тегом сделать его display:none. нет никакого пути к этому с автономным css! но вы можете сделать это с помощью javascript или т. д., посмотрите другой ответ.

<noscript> 
    <style type="text/css"> 
     .divtohide {display:none;} 
    </style> 
    <div class="divtohide"> 
    Javascript is disabled! 
    </div> 
</noscript> 
+0

Вы посмотрели на вопрос? OP уже делает именно это. –

+1

Да, это мое решение. Но мне было интересно, могу ли я избежать использования стилей в теге noscript. Интересно, есть ли лучшая альтернатива. – Beppe

+0

, если он подходит ко мне, я предпочитаю использовать этот метод, но я думаю, что нет лучшего способа сделать это, поскольку я сказал, что вы можете использовать 'javascript', но этот способ очень прост, чем другие. – Pedram

0

Попробуйте этот код:

<noscript> 
 
    <style> 
 
    #foo { 
 
     display:none; 
 
    } 
 
    </style> 
 
</noscript>

0

В качестве альтернативы, просто использовать JavaScript, чтобы скрыть DIV, который говорит пользователям, что они нуждаются в JS включен (если Javascript отключен, очевидно, она не может скрыть div, и это будет показано).

<script> 

    document.addEventListener("DOMContentLoaded", function() { 
    document.getElementById('nojs').style.display = "none"; 
    }); 

</script> 
1

«Я хотел бы скрыть элемент в теле, когда JS отключен»

Вы можете создать класс с display:none, присвоить его все элементы, которые вы хотите скрыть, если javascript отключен, и через javascript удалите этот класс из этих элементов, если javascript отключен, тогда этот класс будет применяться всегда, и все элементы этого класса не отображаются

JS Fiddle

var secrets = document.querySelectorAll('.secret'); 
for (var i in secrets) { 
    secrets[i].classList.remove('secret'); 
} 
.secret { 
    display: none; 
} 
Смежные вопросы