記事を書くためのフォームを作成しました。
フォームは、タイトルのtext_field、コンテンツのtext_area、フォームを送信するためのボタン、画像をアップロードするfile_fieldで構成されます。あなたは、私が選んだスタイルから見ることができるように、ボタンの上にオーバーラップするイメージをアップロードするためのスパン要素
<%= form_for(@atp_article, html: { multipart: true }) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<div class="article_field">
<%= f.text_field :title, placeholder: "Write the article's title..." %>
<%= f.text_area :content, placeholder: "Compose new article..." %>
</div>
<%= f.submit "Post", class: "btn btn-primary" %>
<span class="picture"> <%= f.file_field :picture, accept: 'image/jpeg,image/gif,image/png' %> </span>
<% end %>
file_field
は、上記の要素から10pxのマージンを持つようになっている: belowsのコードです
span.picture {
margin-top: 10px;
input {
border: 0;
}
}
しかしクラスとspan
要素.picture
は上記のボタンと重なり、スタイルも無視しています。imgboxでアップロードしたimageからわかります。
フォームを含む全体のコードは次のとおり
<div class="atp_articles_form">
<strong> Write below any useful ATP piece of news </strong>
<section class="atp_article_form">
<%= render 'shared/atp_article_form' %>
</section>
</div>
.atp_articles_form
クラスは30px上部および下部パディングを有しています。他のスタイルはありません。
私のアプリケーションの別のセクションでは上記のスタイルが使用されています。クラス.picture
のspanエレメントは、ボタンから10px下にあるその場所にとどまるように、付属のinput
エレメントとして29pxの高さになります。代わりに、この場合、クラス.picture
のspan要素は75pxの高さを持ち、付属のinput
要素は29pxです。私はなぜなのか理解していない。