Дополнительный текст отображается при переполнении: скрыто - PullRequest
0 голосов
/ 15 апреля 2010

Я держу основную область содержимого веб-страницы небольшой, чтобы навигацию нижнего колонтитула можно было видеть «выше сгиба». Это делается с помощью javascript, устанавливающего основной контент <div> таким образом:

sec.style.height = '265px';
sec.style.overflow = 'hidden';

А затем с помощью javascript вставьте кнопку, чтобы изменить стиль обратно на обычный:

sec.style.height = 'auto';

Проблема в том, что точка отсечения 265 пикселей (определяется размером изображения, которое я не хочу скрывать) не совсем соответствует разрыву между строками текста. Это означает, что на верхушках высоких букв видны маленькие забавные метки. Есть ли способ скрыть текст, который частично отображается в <div style="overflow: hidden;">?

Снимок экрана http://timothy.green.name/Temp/overflow.jpg

Изменить, чтобы добавить: Полный JavaScript

var overflow = {
    hide: function() {
        var sec = app.get('content_section');
        sec.style.height = '263px';
        sec.style.overflow = 'hidden';
        overflow.toggle(false);
    },
    toggle: function(value) {
        var cnt = app.get('toggle_control');
        if (value) {
            var func = 'hide';
            cnt.innerHTML = 'Close « ';
        } else {
            var func = 'show';
            cnt.innerHTML = 'More » ';
        }
        cnt.onclick = function() {eval('overflow.' + func + '();'); return false;};
        cnt.style.cursor = 'pointer';
        cnt.style.fontWeight = 'normal';
        cnt.style.margin = '0 0 0 857px';
    },
    show: function() {
        var sec = app.get('content_section');
        sec.style.height = 'auto';
        overflow.toggle(true);
    }
}

if (document.addEventListener) {
    document.addEventListener('DOMContentLoaded', overflow.hide, false);
} else {
    window.onload = function() {return overflow.hide();};
}

Ответы [ 3 ]

1 голос
/ 18 апреля 2010

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

пример http://img687.imageshack.us/img687/7564/sitametsit.png

0 голосов
/ 15 апреля 2010

Для этого вам необходимо:

  1. Узнать высоту в пикселях линии
  2. У всех линий одинаковой высоты

Для # 1 установка высоты строки в пикселях может сделать свое дело (я не проверял это), но это может повлиять на ваш макет в мониторах с различными настройками DPI (вы устанавливаете размеры шрифта в относительные единицы, не так ли?). В противном случае вы можете визуализировать фиктивный узел DOM с двумя строками и считать его высоту из его вычисленного стиля .

Что касается # 2, я не уверен. Хорошее начало - отсутствие картинок, подписок или надстрочных знаков.

Как бы то ни было, я уверен, что оно того не стоит. Пользователи не так умны, как думают разработчики, но не настолько глупы, как полагают эксперты по юзабилити.

0 голосов
/ 15 апреля 2010

Нет - это не реально. Однако я ставлю под сомнение ваше решение оставить нижний колонтитул над сгибом. Сгиб действительно не важен, как однажды подумал - мне не хочется искать статьи, но есть много исследований по этому вопросу. И кроме того, ваша основная навигация не должна быть в вашем нижнем колонтитуле.

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