Перевод строки в html.

jonishko

Перевод строки в html считается пробелом, есть ли красивый способ убрать пробел, кроме того что писать в одну строчку?

uncle17

бр-р-р... не понял... перевод строки - это \n или <br>?
поясни подробней

otets-mihail

перевод строки — это когда верстальщик переводит целую строку на всякую фигню

uncle17

чорт... когда я табами структуру шаблона пишу - это ж вапще песдетс?

jonishko

Без br, просто с новой строки пишем,браузер этот перевод воспринимает как пробел.

oleg701

Так ты хочешь чтоб на этом месте вообще не было пробела или чтобы был перенос строки?

skvoria

Красивого вроде нет, если только на стороне сервера резать при выдаче...

jonishko

Надо чтобы на этом месте пробела не было, но в коде страницы был перенос строки.

Andbar

зачем тебе перевод строки?
У тебя что редактор не поддерживает строчек нужной длины?

jonishko

то есть чтобы на выдачу шёл весь код одной строкой, хотя в реальном документе весь код с переводами строк?

uncle17

понял... есть такое. Как убить - не знаю. В никсах попробуй то же самое (без \r). Но не уверен

jonishko

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

oleg701

Красивый вариант наверное xhtml с приписанным к нему xsl для удаления переносов

jonishko

всё верно, симпатичнее решения я тоже пока не нашёл
Похоже что его и нету...

jonishko

Просто думал вдруг есть какой-то магический символ, а я его не знаю...

bansek

Э-э-э
если совершенно случайно проблема примерно в этом:
<a многомногомногобукв>
[[вот тут лишний пробел]]
текст</a>
то мона делать так:
<a многомногомногобукв
>текст</a>
т.к. переводы строк внутри тэгов браузер не обрабатывает
Более того, отсюда следуеют, что можно решить более общую проблему, заключая каждый перенос строки в коде в скобки тэга: <qqq вот такой перенос ...
>

jonishko

ну надо же, реально вариант
Только выглядит это непривычно... Что скажете, кодеры?
То есть вместо:

<a href='#'>link</a>
<a href='#'>link</a>
<a href='#'>link</a>

получаем:

<a href='#'>link</a
><a href='#'>link</a
><a href='#'>link</a
>

Работать-то вроде работает, но всё же что-то смущает...

dedwowan

Кодеры тебе скажут, что вариант конструкции, приведенной в примере, не коректен
т.е.
<a href='#'>link</a>
<a href='#'>link</a>
<a href='#'>link</a>
бессмысленен. т.к. в результате в браузере отобразится
linklinklink, все будет подчерукнуто и где какая ссылка никто не разберет.
Человек тебе говорил о конструкции типа
<a href='#' и тут еще много всякой фигни
>link
</a>
дабы пробел не возникал внутри линка. Для кодеров, в данном случае, была привычна картина
<a href='#'
onclick="blablabla"
class="blablabla"
и так далее еще куча атрибутов
>link</a>

jonishko

да ну?
линклинклинк это для примера, и как раз его я подразумевал корректным
скажи ещё что три одинаковых слова это плохо,пользователь не поймёт чё имеется ввиду
между ними будут пробелы из-за переводов строк, каких в каком-то конкретном случае быть не должно. Например первый линк-это картинка, второй линк-слово. Требование-между картинкой и словом не должно быть пробела.
Второй приведённый вариант удовлетворяет требованию, но синтаксически мне не нравится что последний символ закрывающего тэга нужно переводить на новую строку. Вот про это я спрашивал, что скажут кодеры, как им такие переносы
А какие ещё пробелы внутри линка? Это где хреф,онклик и иже с ними? А нам не пох ли на эти пробелы между ними?

jonishko

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

jonishko

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

dedwowan

В приведенном тобою примере непонятно зачем используется 3 тега a для проставления одной единственной ссылки.

dedwowan

А вот за такое любому верстальщику на работе оторвут руки и промоют мозг. Возможно он после этого не сможет некоторое время сидеть.

yolki

как ни странно, довольно быстро вспомнился конкретный пример, где такая вёрстка успешно применена:

slonishka

на википедии маза вообще каждую букву ссылкой делать

dedwowan

Что говорит не в пользу того ресурса, где она примененна

jonishko

Да причём тут конкретно этот ресурс. И тем более никто не утверждает что так надо делать всегда и везде. Но есть варианты, когда это просто необходимо, и более того такую расстановку требуют, а не то что:
А вот за такое любому верстальщику на работе оторвут руки и промоют мозг
Привожу один из вариантов. Есть линк с картинкой:
open
Только во-первых картинка должна быть ссылкой, точнее вся эта строка это какой-то один и тот же функционал.
Во-вторых ссылка по умолчанию должна быть не подчёркнута, а при наведении должна подчёркиватся.
Итак, требования:
1. Кроссбраузерность (ие, опера, мозилла, сафари)
2. Пробела между картинкой и ссылкой быть не должно! что в общем-то логично, ведь это всё будет один и тот же функционал. И надеюсь понятно, что не должно его там быть по тем причинам, что в этом случае если вести курсор со слова на картинку, то на какой-то миг ссылка теряется. Вот это и не устраивает ни руководство, ни программистов, ни меня. А отпозиционировать, так можно и с пробелом его к такому же виду привести, это не проблема.
Сразу отмечу, что заключив картинку и слово "open" в один тэг <a></a> теряется кроссбраузерность. При наведении на ссылку, мозилла подчёркивает не только текст, но и картинку.
Как бы решил такую задачу ты?

Barbie29

<nobr>
?

dedwowan

Сразу отмечу, что заключив картинку и слово "open" в один тэг <a></a> теряется кроссбраузерность. При наведении на ссылку, мозилла подчёркивает не только текст, но и картинку.
Какая версия мозилы это делает? Вот такой вот код вполне корректно отработал в мозиле версии 1.7.1

<style>
a {
text-decoration: none;
}

a:hover {
text-decoration: underline;
}
</style>
<body style="margin:0px;height:100%">
<a href="#"><img src="xtree/images/file.png" border="0">asdasdasd</a>
</body>

jonishko

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

jonishko

а строчечку не хочешь добавить, типа такой:
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd'>
Или у вас, кодеров, это считается дурным тоном?

dedwowan

Не знаю как там у всех кодеров, а я на эту строку особого внимания не обращаю.
Честно говоря логику разработчиков я не понял, но с подобным поведением боролся бы примерно так же. Единственно что я переносил бы не скобку закрывающего тега, а как и приводил в своем примере, что-нибудь в середине тега. Скорее всего img

jonishko

На строку действительно можно забить, если ты пишешь для себя и требования устанавливаешь сам. Но если десять проектов висят на одной шапке включающей doctype, и весь контент соотв-но строится по этому стандарту, то в одиннадцатый проект этот стандарт само собой войдёт. И мне следовало это добавить третьим требованием

korsar0156

Если картинки одного известного заранее размера, то можно их задавать в виде заднего
плана вместо тега img. Такие картинки никто подчёркивать разумеется не будет.

Barbie29

попробуй тогда это:
<a href="http://www.ru/">&nbsp;мама&nbsp;мыла&nbsp;раму&nbsp;мама
&nbsp;мыла&nbsp;раму&nbsp;мама&nbsp;мыла&nbsp;раму&nbsp;мама
&nbsp;мыла&nbsp;раму&nbsp;мама&nbsp;мыла&nbsp;раму&nbsp;мама
&nbsp;мыла&nbsp;раму&nbsp;мама&nbsp;мыла&nbsp;раму&nbsp;мама
&nbsp;мыла&nbsp;раму&nbsp;мама&nbsp;мыла&nbsp;раму&nbsp;мама
&nbsp;мыла&nbsp;раму&nbsp;мама&nbsp;мыла&nbsp;раму&nbsp;мама
&nbsp;мыла&nbsp;раму&nbsp;мама&nbsp;мыла&nbsp;раму&nbsp;мама
&nbsp;мыла&nbsp;раму&nbsp;мама&nbsp;мыла&nbsp;раму&nbsp;мама
&nbsp;мыла&nbsp;раму&nbsp;мама&nbsp;мыла&nbsp;раму&nbsp;мама
&nbsp;мыла&nbsp;раму&nbsp;мама&nbsp;мыла&nbsp;раму&nbsp;мама
&nbsp;мыла&nbsp;раму&nbsp;мама&nbsp;мыла&nbsp;раму&nbsp;мама
&nbsp;мыла&nbsp;раму&nbsp;мама&nbsp;мыла&nbsp;раму&nbsp;мама
&nbsp;мыла&nbsp;раму&nbsp;мама&nbsp;мыла&nbsp;раму&nbsp;мама
&nbsp;мыла&nbsp;раму&nbsp;мама&nbsp;мыла&nbsp;раму&nbsp;мама
&nbsp;мыла&nbsp;раму&nbsp;мама&nbsp;мыла&nbsp;раму&nbsp;мама
&nbsp;мыла&nbsp;раму&nbsp;мама&nbsp;мыла&nbsp;раму&nbsp;мама
&nbsp;мыла&nbsp;раму&nbsp;мама&nbsp;мыла&nbsp;раму&nbsp;мама
&nbsp;мыла&nbsp;раму&nbsp;мама&nbsp;мыла&nbsp;раму&nbsp;мама
&nbsp;мыла&nbsp;раму&nbsp;мама&nbsp;мыла&nbsp;раму&nbsp;мама
&nbsp;мыла&nbsp;раму&nbsp;мама&nbsp;мыла&nbsp;раму&nbsp;мама
&nbsp;мыла&nbsp;раму&nbsp;мама&nbsp;мыла&nbsp;раму&nbsp;мама
&nbsp;мыла&nbsp;раму&nbsp;мама&nbsp;мыла&nbsp;раму&nbsp;мама
&nbsp;мыла&nbsp;раму&nbsp;мама&nbsp;мыла&nbsp;раму&nbsp;мама
&nbsp;мыла&nbsp;раму&nbsp;мама&nbsp;мыла&nbsp;раму&nbsp;мама
&nbsp;мыла&nbsp;раму&nbsp;мама&nbsp;мыла&nbsp;раму&nbsp;мама
&nbsp;мыла&nbsp;раму&nbsp;мама&nbsp;мыла&nbsp;раму&nbsp;мама
&nbsp;мыла&nbsp;раму&nbsp;мама&nbsp;мыла&nbsp;раму&nbsp;мама
&nbsp;мыла&nbsp;раму&nbsp;мама&nbsp;мыла&nbsp;раму&nbsp;мама
&nbsp;мыла&nbsp;раму&nbsp;мама&nbsp;мыла&nbsp;раму&nbsp;мама
&nbsp;мыла&nbsp;раму&nbsp;мама&nbsp;мыла&nbsp;раму&nbsp;мама
&nbsp;мыла&nbsp;раму&nbsp;мама&nbsp;мыла&nbsp;раму&nbsp;мама
</a>
в сочетании с тегом <nobr> escape-последовательность &nbsp; может тебе помочь...

jonishko

Да это действительно хороший вариант вариант, мне нравится, в конкретно этом случае запросто использовал бы, но не универсален он. Допустим у меня подчёркивание не линией, а точками. Реализовать его можно только background-ом, где на a:hover будет подгружаться картинка из двух пикселей, один прозрачный, второй нужного цвета. Ну и repeat-y
Короче на a:hover уже использован background,так что при наведении либо треугольник, либо подчёркивание точками.
Хотя можно наверно span какой-нить вложить, мне это уже не нравится, симпатичнее тогда уж в одну строку две ссылки сделать, а можно вообще картинку сделать высотой с шрифт с заданным фоном и сделать ей relative на пару пикселей сверху, чтоб перекрывать подчёркивание, а в фотошопе сам треугольник поднять. Решения можно искать. Но вообще это тоже лишь приведённый пример был, когда это может понадобится. Тут вопрос именно об общем механизме избавления от появляющихся пробелов...
Я вижу пока два общих решения, самый красивый - это xhtml с xsl. Ну, второй с переносами, пока противоречий не нашёл, хотя настораживает и лично мне красивым не кажется...

jonishko

Честно признаться, мне кажется мы немного недопонимаем друг друга
что это?

yolki

а что, эта строчка как-то очень сильно изменит поведение браузера при наведении мышки?

jonishko

Не очень понял, в каком случае и почему она должна его изменить?

yolki

ну, мною логика треда воспринималась следующим образом:
: траблы с пробелом
filosof: ну типа можно так
: а вот мне нужно, чтоб вначале файла обязательно такая строчка была..
filosof: да нафига эта строчка?
: неее. она очень нужна
: а что, с ней код философа не работает?

jonishko

аа, вот ты про что. Ну конечно изменится.
Мозилла с таким doctype подчёркивает и картинки заключённые в тэг 'a'.
При объявлении разных типов документа браузер несколько иначе воспринимает тэги и отображает страницу.

jonishko

а что, с ней код философа не работает?
потесть ради интереса в мозилле, со строчкой и без
Оставить комментарий
Имя или ник:
Комментарий: