Riim
User-
Posts
79 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Store
Everything posted by Riim
-
подсказали на другом форуме: http://jsfiddle.net/byd3c/ спасибо за внимание
- 1 reply
-
- 1
-
Привет. Почти как обычно: выровнять блок вертикально по центру родителя, высота блока зависит от контента, родитель должен реагировть на переполнение по Y (переполняет выравниваемый блок) увеличением высоты или появлением скролла. Можно использовать продвинутый (-webkit) css. Проблема в том, что блок содержит детей с overflow:hidden; + white-space:nowrap; + text-overflow:ellipsis; из-за чего стандартные способы ломаются: 1. display:table-cell; + vertical-align:middle; http://jsfiddle.net/7Ewfx/7/ не срабатывает overflow:hidden; . 2. display:flex; + align-items:center; http://jsfiddle.net/7Ewfx/8/ не срабатывает text-overflow:ellipsis; и блок с текстом смещается влево. 3. display:box; + box-align:center; http://jsfiddle.net/7Ewfx/9/ не срабатывает text-overflow:ellipsis; и display:box; вроде как устарел. Должно получиться вот так: http://jsfiddle.net/7Ewfx/10/ , но чтобы зеленый блок был в центре. Кто-нибудь знает как это сделать?
-
Моя очередная поделка: http://realcode.ru/regexptester/ . Прошу критики.
-
/[u|Z|E|R]/.test('|');// true [u|Z|E|R] => [uZER] || (?:U|Z|E|R)
-
return false в обработчике клика.
-
так уж получилось, что я не давал ни какого кода.
-
что-то я не вижу в ТС, что необходим именно алгоритм, написано: т. е. в первую очередь требуется именно способ. я прекрасно знаю, как обойтись без toFixed, а так же знаю, что в большинстве браузеров без toFixed работать будет быстрее, но там где от меня не требуют производительности, я не буду изобретать велосипеды.
-
Number#toFixed и Number#toPrecision уже не в моде?
-
alert('qwqwqwqw[abc]zxzxzxzx'.replace(/^.*?(?=abc)/, ''));
-
В perl-овских регулярках есть рекурсия, там бы эта задача решалась одной строкой, а здесь только так: var str = '{0[<em> </em>]0}{1[<em>{2[<em> </em>]2}</em>]1}{3[<em>{4[<em> </em>]4}{5[<em> </em>]5}</em>]3}{6[<em>{7[<em>{8[<em> </em>]8}{9[<em> </em>]9}</em>]7}{10[<em> </em>]10}</em>]6}'; var result = [], i = 0, j = 0, t1 = '<em>', t2 = '</em>', r1 = /<em>/g, r2 = /<\/em>/g, l1 = t1.length, l2 = t2.length; while ((i = l1 + str.indexOf(t1, j)) >= l1) { while (true) { var s = str.slice(i, j = str.indexOf(t2, j)); j += l2; if ((s.match(r1) || []).length == (s.match(r2) || []).length) { result.push(s); break; } } } alert(result.join('\r\n—————-\r\n').replace(/\u0020/g, '_'));
-
под "выделить" я понял именно "раскрасить". если бы вы не меняли условия, написанные в ТС, на ходу, то было бы как раз "то" - внутренний <em> раскрашиваться не будет. Может лучше сначала в DOM этот текст добавить? Так сделать проще будет.
-
var str = 'string <em>substring<em>substring</em>substring</em> xxx substring xxx <em>substring</em> xxx <em>substring</em>'; str = str.replace(/<em>([\s\S]*?<\/em>)/gi, '<em style="color: #f99;">$1'); alert(str);
-
Да вроде все так изучают, ну то есть сначала конечно книгу надо почитать, а потом уже примеры кода смотреть, разница лишь в том кто, сколько книгу читает. У меня редко хватает терпения прочитать дальше предисловия.
-
Я представляю, как бы все висло. А уж про количество ошибок лучше даже не думать, windows отдыхал бы. Linux в основном написан на си (без плюсов). я не путаю, различия мне понятны, просто хотел узнать как вы их видите. вы, наверное, подумали, что я пытаюсь пропагандировать использование фреймворков, но это не так, я просто совсем не согласен с формулировкой "абсолютное зло". Пользы действительно намного больше, чем просто отупение "конкурентов". Например, фреймворки - это хорошие примеры хорошего (иногда не очень) javascript-а. Javascript я изучал в основном читая PrototypeJs (не у всех получается учиться по книгам), и непонятные мне конструкции вбивал в гугл. Что еще, при таком способе обучения, можно читать кроме фреймворков? Может вот это г**но: http://woweb.ru/load/100 ? Сейчас я свободно ориентируюсь в коде PrototypeJs, многие его части наизусть уже запомнил и самое забавное, что я ни разу его нигде не использовал, наверное, даже к странице ни разу не подключал. Я не "за" и не "против" фреймворков, я против их бездумного использования. Говоря фразу: я имел в виду не подключить к странице фреймворк ради простейшего tooltip-а, а открыть код этого фреймворка, найти реализации нужных методов и, изменив под себя, использовать в своих проектах.
-
Я не знаю, насколько мое сравнение получилось удачным, поскольку ни на одном из перечисленных языков ни разу не писал, я просто хотел показать, что javascript это тоже не более чем очередной уровень абстракции, а учитывая количество различий в реализациях, вообще самопал. си-программист вам на это ответит что-то вроде: "в яве нельзя напрямую работать с памятью, а значит, ОС не написать", так же как вы ответили про фреймворки: в чем, по-вашему, принципиальное отличие между фреймворком, написанным на языке X, и новым языком более высокого уровня, чем язык X, написанном на языке X?
-
исходя из этого, я могу согласиться с формулировкой "Фреймворки - относительное зло!", но про "абсолютное" я не согласен. я вижу больше плюсов. А вообще, люди начинавшие на более низком уровне абстракции всегда ворчат на тех кто сразу хватается за самый, на данный момент, высокий уровень, но сами спускаться ниже того с чего они начинали почему-то не спешат. Человек, пишущий на си, не очень жалует яву, но и сам на ассемблере не очень хочет писать. С js-фреймворками та же ситуация.
-
это не готовое решение, а код, объясняющий как сделать то, что вам необходимо. почему?
-
var elem = Tooltip.elem, style = elem.style, scroll = $d.getScroll(), viewportDimensions = $d.viewport.getDimensions(); elem.innerHTML = initElem.tooltipText; var width = elem.offsetWidth + (parseFloat(elem.getStyle('marginLeft'), 10) || 0) + (parseFloat(elem.getStyle('marginRight'), 10) || 0), height = elem.offsetHeight + (parseFloat(elem.getStyle('marginTop'), 10) || 0) + (parseFloat(elem.getStyle('marginBottom'), 10) || 0); style.left = (lastE.pageX + width > scroll.x + viewportDimensions.x ? lastE.pageX - width : lastE.pageX) + 'px'; style.top = (lastE.pageY + height > scroll.y + viewportDimensions.y ? lastE.pageY - height : lastE.pageY) + 'px'; Реализации getScroll, viewport.getDimensions и getStyle есть в любом js-фреймворке.
-
при сравнении обычного текста это будет действительно удобно, но не факт, что при сравнении кода, программист будет рад такому вмешательству в свой код. Сделал еще одну опцию: "добавлять перевод строки при необходимости", т. е. можно переключаться.
-
rus, если одну длинную строку добавить в textarea, то визуально добавятся переносы, но фактически их нет. Сравнение построчное (не посимвольное), и здесь получаются две разные строки, вот все и выделяется.
-
Vitaly, Searcher, спасибо за отзывы. Сейчас должно получше быть. rus, можно этот текст? И какой у тебя браузер?
-
Как ни странно, но большинство современных IDE не умеют даже простейшего, а именно построчно сравнить два текста. Приходится либо искать какие-то плагины, либо держать на компе еще одну программу, в крайнем случае, можно в выводе консоли разбираться, что, на мой взгляд, верный способ сойти с ума. Решил реализовать этот функционал в виде online-сервиса. Может кому-то пригодится: http://realcode.ru/diff/ Делал как web 2.0 приложение. Прошу оценить (дизайн, верстка, юзабельность). //—————- И еще вопрос: для легенды используется такая конструкция: <dl id="legend"> <dt class="changed"></dt><dd>измененный текст</dd> <dt class="deleted"></dt><dd>удаленный текст</dd> <dt class="inserted"></dt><dd>добавленный текст</dd> </dl> насколько она здесь верна с точки зрения семантики, и как сделать правильней? Беспокоит то, что dt должен содержать термин, т. е. текст. Может туда пустые span-ы добавить?
-
Если учитывать все эти "вдруг", то определение одного браузера можно будет расписать на сотню строк кода, и оно по-прежнему не будет надежным.
-
Можно было бесплатно скачать: раз , два Еще где-то на хабре выкладывали.
-
Чем отличается скейт от башенного крана?