- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Хочу чтобы при нажатии на блок div менялся размер шрифта на всем сайте (текста который заключен между <p></p>).
Прописал такой код:
<div onClick="document.getElementsByTagName('p').style.fontSize='16px';"></div>
но он не работает.
Если прописать
<div onClick="document.getElementsByTagName('p')[0].style.fontSize='16px';"></div>
то меняется размер шрифта только первого абзаца.
Скажите как правильно прописать чтобы изменялся размер шрифта у тегов <p> на всем сайте?
Спасибо
короткий ответ: никак
длинный: вариантов на самом деле несколько
1. использовать цикл
2. использовать addRule/insertRule http://stackoverflow.com/questions/6000077/changing-class-styles-dynamically-without-a-loop
3. стрелять в голову http://stackoverflow.com/questions/4232557/jquery-css-write-into-the-style-tag - ответ с большинством голосов
Не стоит напрямую в стили лезть. Разрулите через CSS
HTML:
<div class="content">
<p>First</p>
<p>Next</p>
</div>
JS:
document.getElementById("content").className = "firstParagraph";
document.getElementById("content").className = "allParagraph";
CSS:
.allParagraph p {font-size:150%}
.firstParagraph p:first-child {font-size:150%}
Ayavryk, это если знать, что всё только "p" ограничится. тогда можно сразу всем "p" класс влепить и дело с концом. но кто ж знает, что у ТС в голове?
но кто ж знает, что у ТС в голове?
Ну да, был невнимателен. Хотя ответ "никак" вряд ли правильный. Сделать можно что угодно. Проблема только в том во что это выльется.
SeoNk,Вы хотите чтобы у вас разом сменился стиль по всему сайту?
Ну да, был невнимателен. Хотя ответ "никак" вряд ли правильный. Сделать можно что угодно. Проблема только в том во что это выльется.
SeoNk,Вы хотите чтобы у вас разом сменился стиль по всему сайту?
Спасибо!
Совет оказался то что мне нужно. А вот по поводу того что стиль должен смениться сразу по всему сайту я раньше не подумал. Да он дрлжен меняться по всему сайту!
Задумка такая - на сайте хочу реализовать версию для слабовидящих, где они смогут увеличить шрифт и выбрать контрастность. Браузер должен запоминать эти настройки и при перемещении по ссылкам сайта. Подскажите как это возможно реализовать?
У меня получилось менять стили, но только на текущей странице. При ее обновлении все стили сбрасываются на значение по умолчанию.
запоминать в куки
Это довольно элементарно, думаю. Пример для смены на всем сайте
<a href="javascript: change1('');">Нет</a>
<a href="javascript: change1('Tahoma');">Tahoma</a>
<a href="javascript: change1('Veranda');">Veranda</a>
<a href="javascript: change1('Arial');">Arial</a>
<br>
<a href="javascript: change2('');">Нет</a>
<a href="javascript: change2('80%');">80%</a>
<a href="javascript: change2('100%');">100%</a>
<a href="javascript: change2('120%');">120%</a>
<br>
<a href="javascript: change3('');">Нет</a>
<a href="javascript: change3('#000000');">#000000</a>
<a href="javascript: change3('#666666');">#666666</a>
<a href="javascript: change3('#ffffff');">#ffffff</a>
<a href="javascript: change3('red');">red</a>
</center>
<script><!--
function change1(h1) {document.body.style.fontFamily=h1;}
function change2(h2) {document.body.style.fontSize=h2; for(var a=0; a<=document.getElementsByTagName('tbody').length; a++){document.getElementsByTagName('tbody')[a].style.fontSize=h2;}}
function change3(h3) {document.body.style.color=h3;}
--></script>
Могу вам за 2 минуты сделать с запоминанием в куки, если надо :)
Задумка такая - на сайте хочу реализовать версию для слабовидящих, где они смогут увеличить шрифт и выбрать контрастность. Браузер должен запоминать эти настройки и при перемещении по ссылкам сайта. Подскажите как это возможно реализовать?.
Думаю не очень хорошая идея разруливать через JS. Те кто плохо видит и так ставят большой масштаб/шрифт
если сильно надо, то надо идти другим путем.
1. сделать отдельный CSS-файл для слабовидящих.
2. при нажатии на кнопку подгрузить динамически этот СSS и сохранить куку.
3. В head прописать проверку куки и подгрузку дополнительного CSS
А делать так, как написал DiKiJ плохо. Экран дрыгаться будет.
А делать так, как написал DiKiJ плохо. Экран дрыгаться будет.
Самый быстрый способ.
У себя сделал так, что при выборе показывает сразу на JavaScript, а потом на PHP выводит нужный стиль. :)
Самый быстрый способ. У себя сделал так, что при выборе показывает сразу на JavaScript, а потом на PHP выводит нужный стиль. :)
У вас там идет перебор DOM:
for(var a=0; a<=document.getElementsByTagName('tbody').length; a++){document.getElementsByTagName('tbody')[a].style.fontSize=h2;}
Это лишнее. Броузер сам переопределит все стили если вы ему подсунете дополнительный CSS.
Кстати, у вас код жутко кривой. Вы в каждом цикле заново ищете по DOM все tbody. Если вынести document.getElementsByTagName('tbody') за цикл, то скорость существенно вырастет.