Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   [решено] Помогите склеить две формы для текста. (http://forum.oszone.net/showthread.php?t=162955)

maasja 10-01-2010 01:09 1315848

Помогите склеить две формы для текста.
 
Вложений: 1
Здравствуйте. Я придумал для сайта форму отправки сообщений. И тут возникла проблема. Форма будет не прямоугольной, а 6 угольной. Посмотрите пожалуйста на прикрепленный рисунок (поле Messages). Подойдет любое решение. На мой взгляд их два: 1. Создать большую форму, в левом верхнем угле поверх дать рисунок, а под ним не стирающиеся пробелы. Но не знаю как сделать так, чтоб пробелы всегда оставались. 2. Сделать две формы и их "склеить". Java scriptом сделать их работу как одного текстового поля, но тогда будет невозможно выделить весь написанный текст(с остальным думаю что-то сделать можно). Жду ваших советов.
P.S. обидно что современные веб программирование. не позволяет такого осуществить без всяких выдумок(((

Sham 10-01-2010 02:54 1315919

В HTML5 есть contenteditable, который позволяет менять содержимое тегов. Последними браузерами вроде поддерживается, и прошлыми IE тоже.
HTML код:

<div id="text" contenteditable="true">введите тут текст</div>
имхо это позволяет поэкспериментировать с отображением и обтеканием как угодно.
При отправке придется скриптом забирать содержимое тега и совать в скрытый input или textarea, либо аяксом напрямую или как-то иначе...

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

maasja 10-01-2010 19:03 1316501

Отлично!! Мне подходит такой вариант. Ну допустим это должно быть в таблице:
Код:

<td width="250px" height=150px">
<img src="message.png" width="100px" height="30px">
<div id="text" contenteditable="true" style="width:250px; height:150px;">введите тут текст</div>
</td>

, что мне нужно дописать, чтоб блок div обтекал рисунок? БОЛЬШОЕ СПАСИБО!!!

Sham 10-01-2010 22:03 1316651

у меня примерно так получилось
HTML код:

<div>
  <img src="message.png" width="100" height="100" style="float:left;" />
  <div id="text" contenteditable="true" style="margin:0; padding:0; width:300px; border:1px dotted #ff1493; min-height:200px;">
      текст текст текст текст текст текст текст
      текст текст текст текст текст текст текст
      текст текст текст текст текст текст текст
      текст текст текст текст текст текст текст
  </div>
</div>

без !DOCTYPE не везде работает.

p.s. всегда проверяйте свой HTML-код через валидатор, чтобы не было лишних вопросов...

Sham 10-01-2010 22:50 1316703

исправил, т.к. style="float:left;" будет предпочтительнее нежелательного атрибута align="left"...

maasja 11-01-2010 02:22 1316857

Спасибо.
Ну вот, набросал альфу-альфу версию. Посмотрите пожалуйста, что у меня получилось. Вот ссылка.
Чтоб выскочила форма отправки, нужно нажать на WRITE ME! Там только дизайн, сам php скрипт еще не написал, извините за большое разрешение))
Вопросы:
1. Как сделать так, чтоб когда напечатано много текста, то появлялся скролл, а не разъезжался блок?
2. Возможно ли сделать поле ввода 6-угольным, а не прямоугольником?
3. Как поставить переносы строк и т.д.?
P.S. не смотрите чрез оперу, а то там какой-то лаг. Лучше всего через Firefox или Chrome.

Sham 12-01-2010 00:58 1317747

Цитата:

Цитата maasja
1. Как сделать так, чтоб когда напечатано много текста, то появлялся скролл, а не разъезжался блок? »

вообще то overflow:scroll|auto , но тогда float картинки не работает (пропадает обтекание), так что имхо придется оставить как есть, но кнопку отправки сделать подвижной, чтобы динамически съезжала вниз... мб есть другое решение.
Цитата:

Цитата maasja
2. Возможно ли сделать поле ввода 6-угольным, а не прямоугольником? »

в html все четырехугольное...
чтобы не было фокус-рамки сделайте outline-width:0
Цитата:

Цитата maasja
3. Как поставить переносы строк и т.д.? »

не понял.

maasja 12-01-2010 06:20 1317811

В моем случае outline-width:0 в опере вообше не работает, (можете посмотреть ссылку выше), блок разъезжается как хочет да еще й в разных браузерах по разному, + нельзя совместить overflow:scroll|auto float:left;, кароче ппц((((( мне б идеально подошел textarea с обтеканием, может можно это сделать с помощью какого-нибудь скрипта? HELP, please

Sham 12-01-2010 19:15 1318448

Цитата:

Цитата maasja
textarea с обтеканием, может можно это сделать с помощью какого-нибудь скрипта? »

имхо даже и не думайте :) если даже это возможно, то сложно и нецелесообразно...

сделайте нормальную верстку, и кнопку send, чтобы она съезжала с текстом... имхо даже так удобнее, когда весь текст виден. Либо без выпендрежа сделайте обычную прямоугольную форму. Будет негламурненько, но функционально. "...не эстетично, зато дешево, надежно и практично..."(с).

maasja 14-01-2010 18:11 1320185

Цитата:

Цитата Sham
Либо без выпендрежа сделайте обычную прямоугольную форму. Будет негламурненько, но функционально. "...не эстетично, зато дешево, надежно и практично..."(с). »

- обидно конечно, но так и сделал. Спасибо.

Хотя вышло совсем даже неплохо, можете посмотреть.
P.S. мне так надоели ограниченные возможности в веб-программировании, что буду начинать писать что-то на пк.))

dmitryst 14-01-2010 18:39 1320216

Цитата:

Цитата maasja
Хотя вышло совсем даже неплохо »

текст переваливает за кнопку SEND и прочее..

Цитата:

Цитата maasja
мне так надоели ограниченные возможности в веб-программировании, »

есть технология Flash - там возможности программирования существенно шире :)

maasja 14-01-2010 19:24 1320257

Посмотрите, сейчас пожалуйста.

Только не через оперу.

dmitryst 14-01-2010 19:42 1320279

Скролл есть, а вот кнопка по-прежнему висит неестественно, среди набранного текста :)

maasja 14-01-2010 19:45 1320286

пожалуйста вышлите скрин(((

ой не надо, это баг в мозилле((((((

я работал в chrome

dmitryst 14-01-2010 20:02 1320302

FireFox 3.5.7 + IE 6


maasja 14-01-2010 20:14 1320313

оно везде отображается с багами (даже позиционируется на так) кроме google chrome, я это только-что выяснил(но еще не знаю почему).

Спасибо за скрины!!

dmitryst 14-01-2010 20:35 1320329

Цитата:

Цитата maasja
кроме google chrome »

если учесть, что им практически никто не пользуется.... :). Придется оптимизировать под популярные браузеры :(

maasja 14-01-2010 20:43 1320339

вот сейчас это и делаю((( а google все таки рулит!!

maasja 15-01-2010 19:05 1321158

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

dmitryst 16-01-2010 12:20 1321616

Скролл не появляется. А так ничё...

Цитата:

Цитата maasja
Опера поднимает абсолютное позиционирование на пару десятков пикселей выше »

я так помню, везде надо перекрыть значения margins и paddings нулевыми.

maasja 16-01-2010 17:15 1321860

Цитата:

Цитата dmitryst
Скролл не появляется. »

Я его специально отключил, а то он портит всю картину, очень некрасивый, а если создать свой скролл, то это поддерживают далеко не все браузеры.
Цитата:

Цитата dmitryst
надо перекрыть значения margins и paddings нулевыми. »

- не помогло. Как выяснилось Опера все элементы с position: absolute, поподнимала на16 пикселей, поменял из position: absolute , на position: relative, и проблема решилась. Теперь у меня гипер-кроссбраузерная форма отправки)))) Намучался же я с этим Internet explorer 6, я его внаглую обманывал, над каждым текстовым полем, протяливал прозрачный gif, с курсором текста и при клике курсор вставал в форму, бо explorer 6, глючит при параметре background-color: transparent. Может кому-то пригодится. Всем спасибо!
P.S. сажусь за php


Время: 23:39.

Время: 23:39.
© OSzone.net 2001-