Могу ли я изменить эстетику текстовых пространств в Ruby, просто используя чистый CSS?

0

Как и в названии. Мне просто интересно, так как я действительно новичок в Ruby. Я много пробовал, например:

<%= password_field_tag :Password, :class=>"textArea1"%>
<%= password_field_tag :Password, :class=>'textArea1'%>
<%= password_field_tag :Password, :html=>{:class=>"textArea1"%>
<%= password_field_tag :Password, :html=>{:class=>'textArea1'%>

но он все еще не работает. Кстати, это мои другие коды:

    <%= form_tag :login do %>

    <%= label_tag :Username %><br />
   <%= text_field_tag :Login, params[:Login] %>

    <%= label_tag :Password %><br/>
    <%= password_field_tag :Password, :class=>"textArea1"%>

  <%= submit_tag "Log in" %>

и мой css:

div.textArea1   {
padding: 7px;
-webkit-box-shadow: inset 2px 2px 2px 0px #dddddd;
-moz-box-shadow: inset 2px 2px 2px 0px #dddddd;
box-shadow: inset 2px 2px 2px 0px
}

Огромное спасибо заранее!

2 ответа

0

Взгляните на ссылку Rails API для password_field_tag. Вы не можете начинать передавать options так, как вы пытаетесь, пока не предоставите значения для аргументов, предшествующих этому.

В вашем вызове password_field_tag отсутствует второй аргумент для value.

<%= password_field_tag :Password, '', :class => "textArea1" %>

Бьюсь об заклад, это решит его для вас. Но если это не так, обновите свой вопрос, чтобы показать, как выглядит сгенерированный HTML для ввода пароля.

0

Неважно, на какой серверной технологии вы кодируете (Ruby, ASP.NET или что-то еще), coz, наконец, когда страница отображается вашим браузером, она находится в HTML, CSS и JS. Это означает, что если вы можете указать имя класса в элементах, вы можете использовать имя класса для таргетинга стилей с помощью CSS.

Что я отмечаю из вашего кода, так это то, что вы говорите

div.textArea1{
....
}

Это означает, что стили, введенные внутри, будут работать только в том случае, если элемент с классом textArea1 является div. В приведенном выше случае вы использовали поле пароля.

Другими словами, попробуйте это (чтобы охватить все входные элементы с помощью класса textArea1):

input.textArea1{
....
}

или просто это (для таргетинга всех входных элементов html с помощью класса textArea1)

.textArea1{
....
}

Как добавить класс в форму?

Это способ добавить класс и id:

<% form_tag :id => 'myid' :class => 'myclass' do -%>
...
<% end -%>

Сказав это, поймите, что "форма" - это элемент HTML, "enter" (например, ваш "text_field_tag") - это еще один элемент HTML.

Итак, если вы хотите стилизовать все элементы "ввода" внутри вашей формы с атрибутом класса "myclass", вам нужно использовать этот селектор CSS:

form.myclass input{
....
}

Предложите вам узнать об элементах HTML и основах селектора CSS с http://www.w3schools.com, чтобы понять, что генерируется языками кодирования на стороне сервера (например, Ruby)

  • 0
    Могу ли я спросить, как правильно объявить класс внутри form_tag? Потому что я использую:: class => "textArea1", но он не работал вместе с input.textArea1 или .textArea1
  • 0
    Я обновил ответ, чтобы ответить на ваш вопрос.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню