Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.03.2012, 15:43
Аспирант
Отправить личное сообщение для GRIG Посмотреть профиль Найти все сообщения от GRIG
 
Регистрация: 26.03.2010
Сообщений: 55

Прижать часть строки влево, а часть вправо - как?
Народ! Помогите, кто чем может - у меня уже голова кипит от перенапряжения.
Ситуация такая: в HTML-документе есть кусок, в котором несколько раз повторяется такая конструкция:
<div>
  <span name="property">...</span>
  <input type="text" name="value" value="" />
  <img src="......" />
  <img src="......" />
  <img src="......" />
</div>

Все поля input имеют одинаковую ширину 300 пикселов. Все картинки являются квадратиками 16 на 16 пикселов. А вот что написано внутри span'ов - вещь сильно переменная. И, что значительно хуже, что находится слева от span'а - тоже вещь сильно переменная (запросто может иметь для разных span'ов разную ширину).
Нужно сделать так, чтобы все span'ы были сдвинуты до упора влево (каждый в своем div'е), а поля input и картинки (которые на самом деле будут кнопками) были сдвинуты до упора вправо (чтобы в совокупности от всех div'ов они выглядели ровной стройной колонной).
И неприятность заключается в том, что все это сделать нужно только силами CSS с минимальной модификацией HTML-тегов.
Одни только картинки прижать к правому краю получается, если на объемлющий div поставить style="position:relative", а на каждую из картинок в нем поставить style="position: absolute; right: ..." (и посчитать правильный отступ для каждой из картинок). Но при таком подходе input остается сдвинутым влево. Если дополнительно к тому на input тоже поставить style="position:absolute; right:..." - то результат оказывается непонятным: во-первых, input'ы от разных блоков накладываются друг на друга, и, во-вторых, нахрен летит верстка того, что находится слева.
Есть какие-нибудь идеи?
Ответить с цитированием
  #2 (permalink)  
Старый 13.03.2012, 16:14
Аватар для T-sh
Профессор
Отправить личное сообщение для T-sh Посмотреть профиль Найти все сообщения от T-sh
 
Регистрация: 04.12.2009
Сообщений: 579

родительскому диву назначить:
text-align: right;
a спану: float: left;
__________________
С моих слов записано верно.
Ответить с цитированием
  #3 (permalink)  
Старый 13.03.2012, 16:27
Аспирант
Отправить личное сообщение для GRIG Посмотреть профиль Найти все сообщения от GRIG
 
Регистрация: 26.03.2010
Сообщений: 55

Отлично! Именно то, что нужно. Спасибо огромное!
Только никак не могу врубиться: а почему именно так?
Ответить с цитированием
  #4 (permalink)  
Старый 13.03.2012, 16:30
Аватар для T-sh
Профессор
Отправить личное сообщение для T-sh Посмотреть профиль Найти все сообщения от T-sh
 
Регистрация: 04.12.2009
Сообщений: 579

Сообщение от GRIG Посмотреть сообщение
Отлично! Именно то, что нужно. Спасибо огромное!
Только никак не могу врубиться: а почему именно так?
в смысле, почему именно так?
можете наоборот сделать, если хочется: text-aling: left — родителю;
float: right — детю.. суть не изменится

логика тут простая:
всё, что находится внутри родительского блока прижимаем вправо, а нужный нам элемент приклеиваем влево
__________________
С моих слов записано верно.
Ответить с цитированием
  #5 (permalink)  
Старый 13.03.2012, 16:33
Аспирант
Отправить личное сообщение для GRIG Посмотреть профиль Найти все сообщения от GRIG
 
Регистрация: 26.03.2010
Сообщений: 55

Нет. Я в том смысле, что решение оказалось очень неожиданным, и при этом неожиданно простым.
Ответить с цитированием
  #6 (permalink)  
Старый 13.03.2012, 16:35
Аватар для T-sh
Профессор
Отправить личное сообщение для T-sh Посмотреть профиль Найти все сообщения от T-sh
 
Регистрация: 04.12.2009
Сообщений: 579

Сообщение от GRIG Посмотреть сообщение
Нет. Я в том смысле, что решение оказалось очень неожиданным, и при этом неожиданно простым.
да в css вообще нет ничего сложного главное, правильно понять, что именно требуется.
__________________
С моих слов записано верно.
Ответить с цитированием
  #7 (permalink)  
Старый 15.03.2012, 13:37
Аспирант
Отправить личное сообщение для GRIG Посмотреть профиль Найти все сообщения от GRIG
 
Регистрация: 26.03.2010
Сообщений: 55

Дополнительный вопрос по этой теме: если в исходном блоке (с учетом данного выше ответа) заменить input на span - то это нахрен корежит всю верстку слева от блока. Почему?
Ответить с цитированием
  #8 (permalink)  
Старый 15.03.2012, 13:48
Аватар для T-sh
Профессор
Отправить личное сообщение для T-sh Посмотреть профиль Найти все сообщения от T-sh
 
Регистрация: 04.12.2009
Сообщений: 579

Сообщение от GRIG Посмотреть сообщение
Дополнительный вопрос по этой теме: если в исходном блоке (с учетом данного выше ответа) заменить input на span - то это нахрен корежит всю верстку слева от блока. Почему?
весь код покажи, и html и css.
__________________
С моих слов записано верно.
Ответить с цитированием
  #9 (permalink)  
Старый 15.03.2012, 15:31
Аспирант
Отправить личное сообщение для GRIG Посмотреть профиль Найти все сообщения от GRIG
 
Регистрация: 26.03.2010
Сообщений: 55

Это достаточно сложно.
Чисто визуально создается впечатление, что после такой замены input'а на span у очередного блока margin-left отсчитывается не от родительского div'а, а от предыдущего по размещению (и образуется своеобразная "обратная лестница"). В условиях, когда подобные блоки хитрым образом вложены один в другой, это мягко говоря, не одно и то же.
Ответить с цитированием
  #10 (permalink)  
Старый 15.03.2012, 15:34
Аватар для T-sh
Профессор
Отправить личное сообщение для T-sh Посмотреть профиль Найти все сообщения от T-sh
 
Регистрация: 04.12.2009
Сообщений: 579

Сообщение от GRIG Посмотреть сообщение
Это достаточно сложно.
Чисто визуально создается впечатление, что после такой замены input'а на span у очередного блока margin-left отсчитывается не от родительского div'а, а от предыдущего по размещению (и образуется своеобразная "обратная лестница"). В условиях, когда подобные блоки хитрым образом вложены один в другой, это мягко говоря, не одно и то же.
в смысле это достаточно сложно?

слова словами, а код нужен. без него не смогу сказать, что не так..

возможно, обычный clear:both; в css поможет.
__________________
С моих слов записано верно.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как удалить последний символ строки? PAMAC Events/DOM/Window 5 18.10.2009 15:01
можно ли, если да то как удалить строки из таблицы Avaria Я не знаю javascript 3 11.06.2009 03:03
как "выхватить" часть числа POLOS Общие вопросы Javascript 1 17.03.2009 12:55
Подскажите как убрать часть текста при нажатии на кномпу или гиперссылку. potkin Общие вопросы Javascript 6 10.10.2008 07:55
Как с помощью JS "на-лету" менять часть HTML кода greendoc Общие вопросы Javascript 2 18.03.2008 20:43