Функция изменения размера текста - PullRequest
4 голосов
/ 22 декабря 2009

Мне нужно сделать элемент управления, который имеет три Т различного размера, которые связаны между собой. При нажатии на каждую букву T текст статьи изменится соответственно на маленький, средний или большой шрифт.

Кто-нибудь знает, как я могу это сделать? Кроме того, знаете ли вы сайт, который использует такую ​​функцию изменения размера текста?

Заранее спасибо.

ОБНОВЛЕНИЕ: Спасибо за все ваши ответы. Я немного покопался в Google и обнаружил, что у этого есть потенциал: http://mirificampress.com/permalink/daynamically_resizing_text_with_css_and_javascript Он использует JS для динамического изменения размера шрифта, и это именно то, что я хочу сделать. Я бы предпочел сделать это в CSS, если это возможно, хотя бы еще - кто-нибудь?

Ответы [ 5 ]

5 голосов
/ 22 декабря 2009

Вы можете сделать это с помощью CSS - если все ваши шрифты в процентах, вы можете установить один размер шрифта для документа, и все дочерние элементы будут в процентах от этого.

1 голос
/ 22 декабря 2009

Подход не сможет быть реализован только с использованием CSS. Вам нужно будет использовать CSS вместе с JavaScript.

Наилучшим подходом было бы установить размер тела по умолчанию на вашей странице, используя проценты или ems. Вы должны создать два дополнительных класса для большего и меньшего размера шрифта для контейнера страницы или тега <body>. Эти классы могут использовать большие и меньшие проценты / ems или вы можете использовать ключевые слова: xx-small, x-small, small, large, x-large, xx-large. (ПРИМЕЧАНИЕ: я пропустил все меньше и больше, поскольку они иногда не работают).

Затем с помощью JavaScript вы можете прикрепить событие onclick к своим трем тамам, которое динамически добавит нужный класс в контейнер страницы (или тег <body>). Если бы они щелкнули по средней букве T, тогда примененный большой / маленький класс был бы удален, и на странице был бы установлен размер шрифта по умолчанию.

Несколько вещей, которые нужно иметь в виду:

  • Пользователь может установить минимальный размер шрифта для своего браузера, поэтому, если вы установите «маленький» размер ниже этого значения, этот пользователь никогда не увидит настройки наименьшего шрифта.
  • Вам нужно будет поэкспериментировать с тем, как работает ваш макет, если у пользователя больше размер шрифта по умолчанию.

Надеюсь, это поможет и удачи!

0 голосов
/ 22 декабря 2009

Вы можете использовать

("fontSize",+=3px)

Если вы не хотите иметь лимит.

0 голосов
/ 22 декабря 2009

Используя jQuery, вы можете сделать что-то вроде этого:

$(function(){
  $('#smallT').click(setTextToSmall);
  $('#mediumT').click(setTextToMedium);
  $('#largeT').click(setTextToLarge);
});

function setTextToSmall(evt)
{
  $('.text-to-resize').addClass('small').removeClass('medium').removeClass('large');
}

// Have similar setTextTo.. functions for Medium and Large here

Чтобы уточнить, это на самом деле использует CSS для изменения размеров. У вас будет три CSS-класса с именами: «маленький», «средний» и «большой»:

.small { font-size: 0.5em; }
.medium { font-size: 1em; }
.large { font-size: 1.5em; }

Функция setTextToSmall() вызывается, когда пользователь нажимает маленькую букву «Т». Он добавляет класс small для всех элементов, которые уже имеют класс text-to-resize, и удаляет средние и большие классы. Итак, где вы могли бы иметь это до щелчка:

<div class="text-to-resize">Some sample text</div>

После клика вы бы это получили:

<div class="text-to-resize small">Some sample text</div>

Если вы хотите применить это к каждому элементу на странице, вы просто измените setTextToSmall() на следующее:

function setTextToSmall(evt)
{
  $().addClass('small').removeClass('medium').removeClass('large');
}

Преимущество jQuery (или других фреймворков в этом отношении) состоит в том, что он абстрагирует DOM, что очень сложно для разных браузеров. Например, чтобы сделать это в простом Javascript, вы можете инстинктивно захотеть использовать document.getElementsByClassName(). Однако этот метод не существует ни в одной версии IE .

0 голосов
/ 22 декабря 2009

Вы можете прикрепить разные CSS-файлы в зависимости от того, на каком «человеке» нажали (изменяя размер текста абзаца). Я уверен, что есть лучший способ, но это сделает работу!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...