2015-12-08 1 views
1

Я пытаюсь установить положение шрифта удивительной иконки в поле ввода во время выполнения. Чтобы сделать это, я надеялся, что во время выполнения будет рассчитан стиль, как это было сделано с другими элементами таблицы стилей. Тем не менее, я стучу головой о стену с этим. Я не включил jfiddle, потому что моя проблема заключается в том, чтобы сделать элемент динамическим, и я не верю, что смогу это сделать в скрипке.Пытается «псевдоним» селектора элементов CSS во время выполнения

Этот код работает. Знак доллара отображается в правой части поля ввода:

<div class="col-md-6 form-control-static"> 
    <div class="input-icon right"> 
     <i class="fa fa-dollar"></i> 
      <input> 

Обратите внимание, что я использовал «право», чтобы получить значок справа. То, что я хочу сделать, это заменить этот элемент на общий элемент и динамически установить это значение в вычисленном css.

Так что я на самом деле хочу сказать, это:

<div class="input-icon currencyPlacement"> 

А потом в вычисленных стилях как-то решить «currencyPlacement», чтобы быть «влево» или «вправо», основываясь на условиях, которые я вычислю.

<style> 
     .currencyPlacement { ????? } 
    </style> 

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

+0

Можете ли вы уточнить «динамически»? Где будет вход для 'left' и' right'? –

+0

Большое спасибо за ваш ответ. Части нашей таблицы стилей (включая символ и размещение валюты) генерируются через код, поскольку они зависят от данных. В этом примере я хочу, чтобы общий элемент «currencyPlacement» каким-то образом разрешал «право» или «левый» в таблице стилей. Я по существу стараюсь «связывать» классы (из-за отсутствия лучшей фразы). –

+0

Извините, но CSS пока не может определить условия, отличные от размеров экрана. Вам нужно попробовать JS. Но при необходимости вы можете использовать SASS. –

ответ

0

Вы сказали, что генерируете все это по коду. Так что, предположительно, ваш код «знает» валюту и ее размещение. Мне кажется гораздо более понятным использовать ваш первоначальный подход. Или, возможно, вместо «right» или «currencyPlacement» назначить стиль, который соответствует валюте, как

.currUSD, .currEUR, .currATS {CSS, чтобы поместить его прямо} .currXYZ {CSS, чтобы поместить его оставили}

И в Если вы укажете валюту на той же странице, не будет никакого способа обойти JS, чтобы назначить соответствующий класс этому полю ввода.

Обновление: ответьте на ваш комментарий: поскольку вы вставляете FA-тег, связанный с USD, я предполагаю, что вы знаете, какая валюта будет при создании страницы. Итак, если у вас есть эти знания, не можете ли вы затем убедиться, что элементы управления отображаются в соответствующем порядке, как в этом example? Я думаю, что это сделало бы намного проще - иначе я бы только знал, как делать с JS, но я не вижу решения с помощью CSS, боюсь.

+0

Я думаю это вроде бы сердце вопроса. Какой css был бы эквивалентен boostrap «right» или «left»? Мне нужен тот же результат. Например, если бы я положил его слева, я хочу, чтобы редактируемый текст был просто право на знак доллара –

+0

Обновленный ответ :) – MBaas

+0

Большое спасибо за ваш ответ. Да, в конечном итоге я мог бы сделать большую часть этого на контрольном уровне. У нас так много элементов управления, что я пытался avoi d, но это, вероятно, необходимо. –