質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Haml

Haml(HTML abstraction markup language)は、HTML/XHTMLを効率的に記述するためのマークアップ言語および記法です。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

1467閲覧

サーバーサイドによる、cssのズレ

yume0409

総合スコア45

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Haml

Haml(HTML abstraction markup language)は、HTML/XHTMLを効率的に記述するためのマークアップ言語および記法です。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2020/02/05 06:49

編集2020/02/07 05:23

twitterのような簡易アプリを作成しています。

#やりたい内容
コメント機能の所で、ツイートに対して、コメントボタンを押すとコメントへ遷移されます。
そこで、そのツイートがログインしていたら編集ボタンが現れて、ログインしていないツイートだと編集ボタンは無くします。
それは何とか実装出来ました。
問題はその後です。
現時点でログインしているユーザーのツイートは編集ボタンがあって、ログインしていないツイートに対しては編集ボタンがない状態です。
編集ボタンの下辺りにツイートした時間が記述しています。
cssで編集ボタンの置きたい位置を合わして、時間も合わせました。
そして、自分のアカウントではない編集ボタンがないツイートを見ると時間の位置ズレているんです。
サーバーサイドによってcssのズレはサーバーサイドの問題より、cssの問題でしょうか?

#試した内容
位置を固定させる

position: fixed;

を使ってみたら編集ボタンがどこかに行ったりして余計分かりませんでした。
編集ボタンの位置移動には

position: relative; bottom: 52px;

を使っています。
これらが邪魔して、時間の位置がズレてしまったのかなぁと考えました。
margin-bottomが効かなかったのでpositionを使いました。

アプリは載せることが出来ないので、文章だけでは伝わりにくいかもしれませんが、
こう言う時はどう調整したらいいのでしょうか?
よろしくお願いします。

#補足

.tweets .user user name .messa tweet text - if user_signed_in? && current_user.id == @tweet.user_id = link_to "編集", "#", method: :get, class: "edit" .time = @tweet.created_at.strftime("%Y/%m/%d %H:%M")
.edit { border: solid 1px red; position: relative; bottom: 52px; margin-left: 300px; font-size: 15px; } .time { padding-left: 300px; font-size: 15px; margin-top: 36px; }

これで大丈夫でしょうか?
修正依頼ありがとうございます。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hatena19

2020/02/05 07:09

編集ボタンと時間の部分のhtmlとcssだけでも提示できませんか。 こちらで再現できるコードがないと回答は難しいかと。
hatena19

2020/02/05 07:31

ページに出力されたhtmlも提示してもらえるとより回答しやすいです。
guest

回答1

0

ベストアンサー

根本的に、CSS を解釈して表示をコントロールしているのは、Web ブラウザです。サーバは関知していません。

ログイン中でないと編集のリンク自体がないのですから、ログインしているときとしていないときでは .edit の CSS に対応するもの自体が存在しないわけで、それが「margin-left: 300px;」分存在しなくなるのと同義ですから、そりゃずれますね。

※そもそも link_to (a タグですかね)で幅をコントロールしてしまうから問題なのです

投稿2020/02/07 05:39

tacsheaven

総合スコア13703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yume0409

2020/02/07 08:22

回答ありがとうございます。 無事、解決しましたが、こう言う場合にposition: relative;を使うのでしょうか? 今までposition: relative;の使い方はなんとなく分かっていましたが、どう言った場合に使うなど・・・使い方をネットで調べてもよく分からなかったのです。marginとpaddingが効かなかった場合に使用していました。
tacsheaven

2020/02/07 08:48

今回の例でいえば、通常は link_to を囲うように div を定義しておいて、そこの class を edit としておくのが普通です。要するに「枠」を定義して、その枠に対して場所設定をするわけです。 CSS については MDN ドキュメント(https://developer.mozilla.org/ja/docs/Learn/CSS)とか、HTML クイックリファレンス(http://www.htmq.com/)とか、英語ですが CSS Reference(https://cssreference.io/)とかで、実際のサンプル表示を含めたリファレンスがありますので、そちらを参考にして勉強されるとよいでしょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問