2020年10月1日に書いた記事です。
Laravelのフレームワークでassetを指定してファイルを呼び出す方法を紹介します。
css, js, imgを外部ファイルにすることで共通部分を作ることができ同じコードを複数書くことが不要になります。
概要
今回は例として固定ヘッダーをつけてみたいと思います。
asset クラスは、css, js, imgを収集しグループ化し、表示するために役立つメソッドをまとめたクラスです。
要するに、publicディレクトリを返す関数です。
public ____ css
|__ js
|__ img
|__ html
phpでの読み込み方
呼び出したいところのresources/views/以下のphpファイルに記述することで読み込まれます。
<!-- css -->
<link rel="stylesheet" href="{{ asset('/css/file.css') }}">
<!-- js -->
<script src="{{ asset('/js/file.js') }}"></script>
<!-- img -->
<img alt="文字表示" src="{{ asset('/img/file.png') }}">
固定ヘッダ例
固定表示はCSSの「position: fixed;」です。
HTML
<!DOCTYPE html>
<html>
<html>
<head>
<meta charset="utf-8">
<title>Progate</title>
<link rel="stylesheet" href="{{ asset('/css/header.css') }}">
</head>
<header class="site-header">
<h1 class="site-logo"><img src="images/logo.png" alt="サンプル"></h1>
<nav class="gnav">
<ul class="gnav__menu">
<li class="gnav__menu__item"><a href="">HTML</a></li>
<li class="gnav__menu__item"><a href="">CSS</a></li>
<li class="gnav__menu__item"><a href="">PHP</a></li>
<li class="gnav__menu__item"><a href="">Ruby</a></li>
<li class="gnav__menu__item"><a href="">Python</a></li>
</ul>
</nav>
</header>
<div class="hero"><img src="images/hero.jpg" alt="hero"></div>
<div class="content">
<!--省略-->
</div>
<footer class="site-footer">
<p class="copyright">サンプル</p>
</footer>
</html>
css
body{
background: #ffab77;
}
.site-header{
background: #fff;
display: flex;
padding: 60px 20px;
position: fixed;
justify-content: space-between;
width: 100%;
}
.site-logo img{
height: 20px;
width: auto;
}
.gnav__menu{
display: flex;
}
.gnav__menu__item{
margin-left: 20px;
}
.gnav__menu__item a{
color: #333;
text-decoration: none;
}
.hero{
max-height: 500px;
overflow: hidden;
}
.hero img{
height: auto;
width: 100%;
}
.content{
line-height: 1.6;
margin: 0 auto;
padding-top: 100px;
width: 800px;
}
.content p{
margin-bottom: 40px;
}
.site-footer{
background: #333;
padding: 80px 0;
}
.copyright{
color: #fff;
font-size: 12px;
text-align: center;
}
参考にしたサイト
https://webdesignday.jp/inspiration/technique/css/4166/
↑JavaScriptを使った固定ヘッダーもあり参考になりました。