Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.05.2012, 14:56
Интересующийся
Отправить личное сообщение для winter Посмотреть профиль Найти все сообщения от winter
 
Регистрация: 31.05.2012
Сообщений: 18

Изменять размер шрифта относительно количества символов
Есть блок в котором. вписывается заголовок страницы h1, когда заголовок состоит из 2-3 слов, все выглядит шикарно но если слов блошье 20т то выглядит ужасно. Помогите найти или как так сделать чтобы если например символов было 20 то шрифт был 37pt но если больше 20 то он был равен 32и т.д
Ответить с цитированием
  #2 (permalink)  
Старый 31.05.2012, 15:19
Кандидат Javascript-наук
Отправить личное сообщение для nyols Посмотреть профиль Найти все сообщения от nyols
 
Регистрация: 16.02.2011
Сообщений: 134

<style>
   h1 {
      font-size: 40px;
   }
</style>

<script>
   function fix(h1) {
      if (h1.innerHTML.length > 20)
         h1.style.fontSize = '20px';
      else if (h1.innerHTML.length > 10)
         h1.style.fontSize = '30px';
   }
</script>

<h1 onclick="fix(this);">Fix me plese</h1>
<h1 onclick="fix(this);">Fix me pleaseeeeeeeeeeeeeeeeeeeeeeeee</h1>
Ответить с цитированием
  #3 (permalink)  
Старый 31.05.2012, 15:33
Интересующийся
Отправить личное сообщение для winter Посмотреть профиль Найти все сообщения от winter
 
Регистрация: 31.05.2012
Сообщений: 18

Спасибо все Работает, но только по нажатию на заголовок. Как сделать чтобы сразу все было сделанно
Ответить с цитированием
  #4 (permalink)  
Старый 31.05.2012, 16:08
Аватар для Dim@
Профессор
Отправить личное сообщение для Dim@ Посмотреть профиль Найти все сообщения от Dim@
 
Регистрация: 21.04.2012
Сообщений: 951

<body onload='fix("h1")'>
<style>
	   h1 {
	      font-size: 40px;
	   }
	</style>
	 
	<script>
	   function fix(tagname) {
tegi=document.getElementsByTagName(tagname);
for(i=0;i<tegi.length;i++){
	      if (tegi[i].innerHTML.length > 20)
	         tegi[i].style.fontSize = '20px';
	      else if (tegi[i].innerHTML.length > 10)
	         tegi[i].style.fontSize = '30px';
	   }}
            
	</script>
	 
	<h1>I'm fixed</h1>
	<h1>Fix me pleaseeeeeeeeeeeeeeeeeeeeeeeee</h1></body>

можно так=)
Ответить с цитированием
  #5 (permalink)  
Старый 31.05.2012, 20:04
Интересующийся
Отправить личное сообщение для winter Посмотреть профиль Найти все сообщения от winter
 
Регистрация: 31.05.2012
Сообщений: 18

Dim@,nyols, спасибо вам вопрос решен все четко
Ответить с цитированием
  #6 (permalink)  
Старый 31.05.2012, 20:53
Аватар для Dim@
Профессор
Отправить личное сообщение для Dim@ Посмотреть профиль Найти все сообщения от Dim@
 
Регистрация: 21.04.2012
Сообщений: 951

Незачто
Ответить с цитированием
  #7 (permalink)  
Старый 08.06.2019, 17:12
Аватар для selezen
Новичок на форуме
Отправить личное сообщение для selezen Посмотреть профиль Найти все сообщения от selezen
 
Регистрация: 03.03.2017
Сообщений: 2

Как реализовать такой же скрипт для блока div?
Здравствуйте. Подскажите как реализовать такой же скрипт но только не для тега h1 а для блока div?
Ответить с цитированием
  #8 (permalink)  
Старый 12.06.2019, 19:11
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

<div>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Exercitationem unde assumenda voluptatem dolore. Ab, maxime! Tenetur fuga laudantium labore aperiam.</div>
<div>Lorem ipsum dolor sit amet consectetur adipisicing elit. Saepe, perspiciatis!</div>
<div>Lorem ipsum dolor sit amet.</div>
<div>Lorem ipsum dolor</div>
<script>
var size = [[20,20],[10,30],[5,40],[0,50]]; // [>=слов,размер]
document.querySelectorAll('div').forEach(el=>el.style.fontSize = size.find(s => s[0] <= el.textContent.split(/\s/).length)[1]+'px');
</script>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Размер шрифта в input Indiana Элементы интерфейса 5 16.02.2010 19:52