Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.03.2012, 22:00
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Многоколоночный текст. Реально ли это?
Почитав в интернете о многоколоночном тексте, о том как создавать его с помощью CSS3, пришел к выводу, что всё это ерунда и совсем не то, что нужно. Не то, что нужно людям и мне в частности.
Все механизмы создания (разбиения) текста на несколько столбцов страдают одной и той же проблемой: задается количество колонок. При этом высота колонок получается... уж какой получается, такой и получается!
Всё это сводит на нет идею многоколоночности, т.к. в отличие от газет приходится сто раз скроллировать текст вверх/вниз чтобы читать такое на интернет-сайте.
Что требуется:
-не задавать количество колонок, а задавать только ширину колонок текста (возможно в процентном отношении к экрану). При этом механизм разбиения текста в определенном окне (DIV_е) не должен допустить появления вертикального скроллера.
-допустимо появление горизонтального скроллера в случае, если количество полученных столбцов по суммарной ширине превышает размер экрана по горизонтали.
Господа, есть идеи?
Ответить с цитированием
  #2 (permalink)  
Старый 26.03.2012, 23:23
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,497

ff
<div style="-moz-column-width:150px;height:100px">Lorem ipsum dolor sit amet, consectetur adipisicing elit,   
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,   
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.   
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat   
nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa   
qui officia deserunt mollit anim id est laborum</div>
<hr>
<div style="-moz-column-width:150px;height:200px">Lorem ipsum dolor sit amet, consectetur adipisicing elit,   
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,   
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.   
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat   
nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa   
qui officia deserunt mollit anim id est laborum</div>

В чём проблема?
__________________
29375, 35

Последний раз редактировалось Aetae, 26.03.2012 в 23:26.
Ответить с цитированием
  #3 (permalink)  
Старый 27.03.2012, 11:48
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Сообщение от Aetae Посмотреть сообщение
В чём проблема?
Откровенно говоря я даже не понял, что демонстрирует Ваш пример. Может я вижу на экране не то, что Вы? Я вижу два DIV_а, один над другим, каждый из которых повторяет один и тот же текст. Это не имеет никакого отношения к многоколоночному тексту.
Посмотрите, пожалуйста, на пример многоколоночного текста
http://www.xiper.net/examples/html-a...column-tr.html
Этот пример обладает недостатками, которые я описал в своем посте.
P.S. Посмотрел Ваш пример в Google Chrome, Opera, IE и увидел эффект только в FireFox.

Последний раз редактировалось Маэстро, 27.03.2012 в 11:53.
Ответить с цитированием
  #4 (permalink)  
Старый 27.03.2012, 14:06
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Aetae,
в общем Вы правы. Точнее не в общем, а в частном случае. Я добавил к стилю ещё свойства:
<div style="column-width:300px; -moz-column-width:300px; -webkit-column-width:300px; height:200px; text-align:justify">
и поисследовал это. Вот живой пример: http://gigalit.com.ua/test/test116.htm
Браузеры неоднозначно отображают многоколоночный текст. Точнее когда это самый простой текст, то более-менее. Но если в текст вставить еще другие элементы (например, картинки), то результат восприятия неоднозначен.
Больше всего меня улыбнул Google Chrome. Он буквально разрезал картинку на три части и расположил эти части в трех колонках. Fire Fox отобразил картинку целиком, но на половине картинки написал текст (поверх). Opera просто обрезала половину картинки показав только ту часть, которая уместилась в колонке. IE 8 - не смог.
На http://www.xiper.net/collect/js-plug...ti-column.html
описан эмулятор многоколоночного текста для IE, Однако с ним много проблем. И вообще, когда я заглянул вовнутрь эмулятора http://www.xiper.net/examples/html-a...ulti-column.js - мне стало страшно. Там для эмуляции "column-width" даже используется xmlhttp (!?)
В общем, сырое это всё пока что ещё.
Скажите, а кто-нибудь уже сейчас использует многоколоночный текст на своих сайтах?
Ответить с цитированием
  #5 (permalink)  
Старый 27.03.2012, 15:02
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,497

Не знаю, вроде должны, но не видел.)
__________________
29375, 35
Ответить с цитированием
  #6 (permalink)  
Старый 27.03.2012, 18:59
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Как сделать кроссбраузерный многоколоночный текст?
Меня посетила гениальная идея как сделать кроссбраузерный многоколоночный текст. Делается это не с помощью CSS3, а с помощью всеми нами любимого javascript.
Рассказываю суть механизма (на упрощенном примере). Предположим, у нас на экране текст помещается в 5 колонок. Создаем 5 элементов DIV с абсолютным позиционированием, заданными размерами и overflow:hidden.
Например, стиль такой:
position:absolute; top:50px; left:' + l + 'px; width:'+dx+'px; height:'+dy+'px; overflow:hidden
Каждый такой элемент будет имитировать одну колонку текста. После этого в каждую такую колонку вставляем тоже контейнер DIV, в который помещаем наш длииииинный текст. После этого смещаем в отрицательную область свойство top встроенных (внутренних) контейнеров на высоту "колонки" текста пропорционально номеру колонки. Получаем волне красиво и одинаково во всех браузерах: Живой пример: http://gigalit.com.ua/test/test119.htm
Проблемки:
1. Пример я сделал умышленно только для "plain" текста. Чтобы не было разрезания текста прямо посередине строки необходимо задавать свойство line-height и высоту DIV "колонки" таким образом, чтобы второе было кратно первому (делилось нацело).
2. Для очень больших текстов может потребоваться значительно больше памяти, чем для небольших, т.к. практически весь текст дублируется столько раз, сколько колонок на странице. Но, это можно поправить, усложнив механизм (рисовать только видимые колонки на экране и отслеживать координату top при перемещении горизонтального скроллера).
Ответить с цитированием
  #7 (permalink)  
Старый 23.12.2013, 16:13
Аспирант
Отправить личное сообщение для Владимир Седов Посмотреть профиль Найти все сообщения от Владимир Седов
 
Регистрация: 21.05.2010
Сообщений: 41

Для чтения текста на планшете или ином другом лопатнике я использую ссылку с выпадающим текстом. Сейчас решил сделать другую фичу - рисунок в векторной графике *.svg в программе Inkscape пишу текст и сохраняю в векторе. Преимущество - текст читаем. Для скроллинга - кнопка с ссылкой на якорь. Как бы там ни было многие лопатники не поддерживают множество скриптов.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выравнять три дива в одной строке debugx (X)HTML/CSS 9 06.10.2011 12:03
Определение номера тега. awas Internet Explorer 6 18.07.2011 17:54
текст внутри <div> DraY Events/DOM/Window 1 22.05.2011 19:41
Заменить текст линка на свой текст Почемучкин Events/DOM/Window 4 22.05.2011 10:58
Вопрос: И опять про offsetLeft... sigurd Общие вопросы Javascript 11 04.10.2010 14:06