起こった問題
ヘッダーにif文を書き足したらなぜかcssが適用されなくなった。
_header.html.haml
// 省略
%ul.lists
-if user_signed_in?
%li.my-page
= link_to "名前", user_path(current_user)
%li.logout
= link_to "ログアウト", destroy_user_session_path, method: :delete
- else
%li.login
= link_to 'ログイン', new_user_session_path
%li.sign-up
= link_to '新規登録', new_user_registration_path
_posts.scss
.lists {
display: flex;
align-items: center;
margin-left: auto;
font-size: 20px;
line-height: 20px;
li {
margin-right: 30px;
cursor: pointer;
}
a {
text-decoration: none;
color: black;
}
}
試したこと
1、キャッシュが残っていないかの確認(⌘キーとShiftキーとR同時押し)
2、cssの記述ミス確認
3、他の記述が優先されてないか
4、検証ツールで確認
解決した方法
検証ツールで確認したところul要素の中にli要素が入っていなかった。
よくhamlの記述を確認してみるとif文のインデントが一つズレていたそのため、cssが適用されなかった。
_header.html.haml
// 省略
%ul.lists
-if user_signed_in?
%li.my-page
= link_to "名前", user_path(current_user)
%li.logout
= link_to "ログアウト", destroy_user_session_path, method: :delete
- else
%li.login
= link_to 'ログイン', new_user_session_path
%li.sign-up
= link_to '新規登録', new_user_registration_path
終わりに
cssの記述が間違っていると思ってずっとcssを確認していたがhamlにミスが。
結局初歩的なミスだったのでインデント、タイポなどのミスはなるべく減らしたい。