Travel Note

2カラムブログ/2ページ
クリエイター: Leyco
ソースコード
HTML / HTML(2ページ目) / CSS / JS
HTML
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>travel note</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=MonteCarlo&family=Noto+Sans+JP&family=Zen+Old+Mincho:wght@400;600&display=swap" rel="stylesheet">
<link rel="stylesheet" href="assets/css/destyle.css">
<link rel="stylesheet" href="assets/css/style.css">
<link rel="icon" href="assets/img/favicon.ico">
</head>
<body class="body__home">
<!----------------header--------------->
<header class="header__home">
<h1 class="header__logo fadeIn">
<a href="index.html">
<img src="assets/img/logo.png" alt="travel note「私のトラベルノート」のロゴ">
</a>
</h1>
</header>
<div class="container">
<main>
<!--------feature----------->
<section class="feature">
<h2 class="section__title">
<span class="font_lg">おすすめ記事</span>
<span class="font_en">Feature</span>
</h2>
<div class="feature__article">
<article class="feature__article__item">
<a href="#">
<img src="assets/img/feature_1.jpg" alt="記事の画像" class="article__img">
<div class="article__text__area">
<h3 class="font_md">ここにタイトルが入ります</h3>
<p>
ここに抜粋文が入りますここに抜粋文が入りますここに抜粋文が入りますここに抜粋文が入りますここに抜粋文が入ります</p>
</div>
<div class="article__detail">
<p class="article__detail__date">2024.XX.XX</p>
<p class="article__detail__category">My favorite</p>
</div>
</a>
</article>
<article class="feature__article__item">
<a href="#">
<img src="assets/img/feature_2.jpg" alt="記事の画像" class="article__img">
<div class="article__text__area">
<h3 class="font_md">ここにタイトルが入ります</h3>
<p>
ここに抜粋文が入りますここに抜粋文が入りますここに抜粋文が入りますここに抜粋文が入りますここに抜粋文が入ります</p>
</div>
<div class="article__detail">
<p class="article__detail__date">2024.XX.XX</p>
<p class="article__detail__category">My favorite</p>
</div>
</a>
</article>
</div>
</section>
<!-----------------new------------------>
<section class="new">
<h2 class="section__title">
<span class="font_lg">新着記事</span>
<span class="font_en">New</span>
</h2>
<div class="new__article">
<article class="new__article__item js-fade">
<a href="page.html">
<img src="assets/img/new_1.jpg" alt="記事の画像" class="article__img">
<div class="article__text__area">
<h3 class="font_md">ここにタイトルが入ります</h3>
<p>ここに抜粋文が入りますここに抜粋文が入ります</p>
</div>
<div class="article__detail">
<p class="article__detail__date">2024.XX.XX</p>
<p class="article__detail__category">France</p>
</div>
</a>
</article>
<article class="new__article__item js-fade">
<a href="#">
<img src="assets/img/new_2.jpg" alt="記事の画像" class="article__img">
<div class="article__text__area">
<h3 class="font_md">ここにタイトルが入ります</h3>
<p>ここに抜粋文が入りますここに抜粋文が入ります</p>
</div>
<div class="article__detail">
<p class="article__detail__date">2024.XX.XX</p>
<p class="article__detail__category">France</p>
</div>
</a>
</article>
<article class="new__article__item js-fade">
<a href="#">
<img src="assets/img/new_3.jpg" alt="記事の画像" class="article__img">
<div class="article__text__area">
<h3 class="font_md">ここにタイトルが入ります</h3>
<p>ここに抜粋文が入りますここに抜粋文が入ります</p>
</div>
<div class="article__detail">
<p class="article__detail__date">2024.XX.XX</p>
<p class="article__detail__category">France</p>
</div>
</a>
</article>
<article class="new__article__item js-fade">
<a href="#">
<img src="assets/img/new_4.jpg" alt="記事の画像" class="article__img">
<div class="article__text__area">
<h3 class="font_md">ここにタイトルが入ります</h3>
<p>ここに抜粋文が入りますここに抜粋文が入ります</p>
</div>
<div class="article__detail">
<p class="article__detail__date">2024.XX.XX</p>
<p class="article__detail__category">Vietnam</p>
</div>
</a>
</article>
<article class="new__article__item js-fade">
<a href="#">
<img src="assets/img/new_5.jpg" alt="記事の画像" class="article__img">
<div class="article__text__area">
<h3 class="font_md">ここにタイトルが入ります</h3>
<p>ここに抜粋文が入りますここに抜粋文が入ります</p>
</div>
<div class="article__detail">
<p class="article__detail__date">2024.XX.XX</p>
<p class="article__detail__category">Vietnam</p>
</div>
</a>
</article>
<article class="new__article__item js-fade">
<a href="#">
<img src="assets/img/new_6.jpg" alt="記事の画像" class="article__img">
<div class="article__text__area">
<h3 class="font_md">ここにタイトルが入ります</h3>
<p>ここに抜粋文が入りますここに抜粋文が入ります</p>
</div>
<div class="article__detail">
<p class="article__detail__date">2024.XX.XX</p>
<p class="article__detail__category">Vietnam</p>
</div>
</a>
</article>
<article class="new__article__item js-fade">
<a href="#">
<img src="assets/img/new_7.jpg" alt="記事の画像" class="article__img">
<div class="article__text__area">
<h3 class="font_md">ここにタイトルが入ります</h3>
<p>ここに抜粋文が入りますここに抜粋文が入ります</p>
</div>
<div class="article__detail">
<p class="article__detail__date">2024.XX.XX</p>
<p class="article__detail__category">Taiwan</p>
</div>
</a>
</article>
<article class="new__article__item js-fade">
<a href="#">
<img src="assets/img/new_8.jpg" alt="記事の画像" class="article__img">
<div class="article__text__area">
<h3 class="font_md">ここにタイトルが入ります</h3>
<p>ここに抜粋文が入りますここに抜粋文が入ります</p>
</div>
<div class="article__detail">
<p class="article__detail__date">2024.XX.XX</p>
<p class="article__detail__category">Taiwan</p>
</div>
</a>
</article>
<article class="new__article__item js-fade">
<a href="#">
<img src="assets/img/new_9.jpg" alt="記事の画像" class="article__img">
<div class="article__text__area">
<h3 class="font_md">ここにタイトルが入ります</h3>
<p>ここに抜粋文が入りますここに抜粋文が入ります</p>
</div>
<div class="article__detail">
<p class="article__detail__date">2024.XX.XX</p>
<p class="article__detail__category">Taiwan</p>
</div>
</a>
</article>
</div>
<a href="#" class="btn">
過去の記事を見る
</a>
</section>
</main>
<!-----------------サイドバー--------------->
<aside>
<!-----------検索バー--------->
<form action="#" class="search-form">
<label>
<input type="text" placeholder="検索">
</label>
<button type="submit" aria-label="検索"></button>
</form>
<!-----------月別一覧------------>
<div class="index">
<p class="index__title">月別一覧</p>
<ul class="index__date">
<li><a href="#">2024.04(10)</a></li>
<li><a href="#">2024.03(20)</a></li>
<li><a href="#">2024.02(10)</a></li>
<li><a href="#">2024.01(20)</a></li>
</ul>
</div>
<!-----------カテゴリー別一覧------------>
<div class="index">
<p class="index__title">カテゴリー別一覧</p>
<ul class="index__category">
<li><a href="#">France</a></li>
<li><a href="#">My favorite</a></li>
<li><a href="#">Taiwan</a></li>
<li><a href="#">Vietnam</a></li>
</ul>
</div>
</aside>
</div>
<footer>
<p>©2024 Travel note</p>
</footer>
<script src="https://code.jquery.com/jquery-3.7.1.min.js" integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"></script>
<script src="assets/main.js"></script>
</body>
</html>HTML(2ページ目)
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>travel note</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link
href="https://fonts.googleapis.com/css2?family=MonteCarlo&family=Noto+Sans+JP&family=Zen+Old+Mincho:wght@400;600&display=swap"
rel="stylesheet">
<link rel="stylesheet" href="./assets/css/destyle.css">
<link rel="stylesheet" href="./assets/css/style.css">
<link rel="icon" href="./assets/img/favicon.ico">
</head>
<body>
<!----------------header--------------->
<header class="header__page">
<a href="./index.html" class="header__page__logo">
<img src="./assets/img/logo.png" alt="travel note「私のトラベルノート」のロゴ">
</a>
</header>
<div class="container">
<!--------main-------------->
<main>
<section class="page_body">
<section class="page__title__area">
<h1 class="font_lg">ここにタイトルが入ります</h1>
<div class="article__detail">
<p class="article__detail__date">2024.XX.XX</p>
<a href="#" class="article__detail__category">France</a>
</div>
<!--
コメント:
alt属性が抜けています。↓ ←修正しました!
-->
<img src="./assets/img/page_main.jpg" alt="記事の画像">
</section>
<section class="page__text__area">
<h2 class="font_md">ここに小見出しが入ります</h2>
<p>
ここに本文が入りますここに本文が入りますここに本文が入りますここに本文が入りますここに本文が入りますここに本文が入りますここに本文が入りますここに本文が入ります</p>
<p>
ここに本文が入りますここに本文が入りますここに本文が入りますここに本文が入りますここに本文が入りますここに本文が入りますここに本文が入りますここに本文が入ります</p>
<p>
ここに本文が入りますここに本文が入りますここに本文が入りますここに本文が入りますここに本文が入りますここに本文が入りますここに本文が入りますここに本文が入ります</p>
<img src="./assets/img/page_1.jpg" alt="記事の画像" class="js-fade">
</section>
<section class="page__text__area">
<h2 class="font_md">ここに小見出しが入ります</h2>
<p>
ここに本文が入りますここに本文が入りますここに本文が入りますここに本文が入りますここに本文が入りますここに本文が入りますここに本文が入りますここに本文が入ります</p>
<p>
ここに本文が入りますここに本文が入りますここに本文が入りますここに本文が入りますここに本文が入りますここに本文が入りますここに本文が入りますここに本文が入ります</p>
<p>
ここに本文が入りますここに本文が入りますここに本文が入りますここに本文が入りますここに本文が入りますここに本文が入りますここに本文が入りますここに本文が入ります</p>
<img src="./assets/img/page_2.jpg" alt="記事の画像" class="js-fade">
<img src="./assets/img/page_3.jpg" alt="記事の画像" class="js-fade">
<p>
ここに本文が入りますここに本文が入りますここに本文が入りますここに本文が入りますここに本文が入りますここに本文が入りますここに本文が入りますここに本文が入ります</p>
</section>
</section>
<a href="./index.html">
<button class="btn">ホームへ戻る</button>
</a>
</main>
<!-----------------サイドバー--------------->
<aside>
<!-----------検索バー--------->
<form action="#" class="search-form">
<label>
<input type="text" placeholder="検索">
</label>
<button type="submit" aria-label="検索"></button>
</form>
<!-----------月別一覧------------>
<div class="index">
<p class="index__title">月別一覧</p>
<ul class="index__date">
<li><a href="#">2024.04(10)</a></li>
<li><a href="#">2024.03(20)</a></li>
<li><a href="#">2024.02(10)</a></li>
<li><a href="#">2024.01(20)</a></li>
</ul>
</div>
<!-----------カテゴリー別一覧------------>
<!--
コメント:
↓ このdivに対応する終了タグがありません。
-->
<div class="index">
<p class="index__title">カテゴリー別一覧</p>
<ul class="index__category">
<li><a href="#">France</a></li>
<li><a href="#">My favorite</a></li>
<li><a href="#">Taiwan</a></li>
<li><a href="#">Vietnam</a></li>
</ul>
</aside>
</div>
</div>
<footer>
<p>©2024 Travel note</p>
</footer>
<script src="https://code.jquery.com/jquery-3.7.1.min.js"
integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"></script>
<script src="./assets/main.js"></script>
</body>
</html>CSS
@charset "utf-8";
/*----------------------共通設定----------------------------*/
:root {
--baseColor: #FAFAF9;
--subColor: #AEA3A3;
--textColor: #4D2E2E;
--accentColor: #CC8E8E;
--mgBg: 50px;
--mgMd: 30px;
--mgSm: 10px;
}
html {
scroll-behavior: smooth;
}
body {
font-family: 'Noto Sans JP', sans-serif;
color: var(--textColor);
letter-spacing: 0.05em;
line-height: 1.5em;
overflow-x: hidden;
background-color: var(--baseColor);
}
img {
width: 100%;
object-fit: cover;
}
p {
font-size: 16px;
}
a {
opacity: 1;
transition: all 0.5s ease;
}
a:hover {
opacity: 0.7;
}
.font_lg {
display: block;
font-family: "Zen Old Mincho", serif;
font-weight: 400;
font-style: normal;
font-size: 24px;
}
.font_md {
display: block;
font-family: "Zen Old Mincho", serif;
font-weight: 600;
font-style: normal;
font-size: 18px;
}
.font_en {
display: block;
font-family: "MonteCarlo", cursive;
font-weight: 400;
font-style: normal;
font-size: 21px;
color: var(--accentColor);
margin-top: 10px;
}
.section__title {
margin-bottom: var(--mgSm);
text-align: center;
}
.section__title>p {
margin-bottom: 15px;
}
/*------------jsでフェードイン-------------*/
.js-fade {
opacity: 0;
visibility: hidden;
transform: translateY(50px);
transition: all 1s;
}
.scroll {
opacity: 1;
visibility: visible;
transform: translateY(0px);
}
/*-------------ボタン設定---------------*/
.btn {
display: block;
margin: var(--mgBg) auto 0;
max-width: 275px;
text-align: center;
position: relative;
background-color: var(--accentColor);
color: white;
border-radius: 45px;
padding: 10px 90px;
opacity: 1;
transition: all 0.5s ease;
}
.btn::after {
position: absolute;
content: url("../img/arrow.svg");
top: 10px;
right: 20px;
width: 20px;
height: 20px;
}
.btn a {
display: inline-block;
}
.btn:hover {
opacity: 0.7;
}
/*---------------container------------------*/
.container {
padding: 0 20px;
}
aside {
margin-top: 50px;
}
/*----------------aside-----------------*/
/*----------検索バー------------*/
.search-form {
display: flex;
justify-content: space-between;
align-items: center;
overflow: hidden;
border: 2px solid var(--accentColor);
border-radius: 6px;
}
.search-form input {
width: 280px;
height: 40px;
padding: 5px 15px;
border: none;
box-sizing: border-box;
font-size: 1em;
outline: none;
}
.search-form input::placeholder {
color: #777777;
}
.search-form button {
display: flex;
justify-content: center;
align-items: center;
width: 50px;
height: 40px;
border: none;
background-color: var(--accentColor);
cursor: pointer;
}
.search-form button::after {
width: 18px;
height: 18px;
background-image: url(../img/search.svg);
background-repeat: no-repeat;
content: '';
}
/*------月別・カテゴリー別一覧--------*/
.index {
margin-top: 50px;
}
.index__title {
padding-bottom: 15px;
border-bottom: 1px dashed var(--subColor);
}
.index a {
display: block;
width: 100%;
padding: 15px 0 15px 40px;
}
.index__date>li,
.index__category>li {
position: relative;
border-bottom: 1px dashed var(--subColor);
}
.index__date>li::before {
position: absolute;
content: url("../img/arrow_index.svg");
top: 15px;
left: 20px;
color: var(--textColor);
height: 6px;
width: 6px;
}
.index__category>li::before {
position: absolute;
content: url("../img/folder.svg");
top: 16px;
left: 17px;
color: var(--textColor);
height: 15px;
width: 15px;
}
/*-----------footer------------*/
footer {
margin-top: var(--mgBg);
padding: 8px;
text-align: center;
background-color: var(--accentColor);
}
footer p {
color: white;
font-size: 14px;
}
/*----------------------index.html(トップページ)詳細設定--------------------------*/
/*-----------header------------*/
.header__home {
position: relative;
width: 100vw;
height: 80vh;
background-image: url("../img/fv_sp.jpg");
background-repeat: no-repeat;
background-size: cover;
background-attachment: fixed;
background-position: center bottom;
margin-bottom: var(--mgMd);
}
.header__logo {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.header__logo img {
width: 180px;
}
.fadeIn {
animation-name: fadeInAnime;
animation-duration: 3s;
animation-fill-mode: forwards;
opacity: 0;
}
@keyframes fadeInAnime {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
/*---------記事一覧の共通設定-----------*/
.article__img {
margin-bottom: var(--mgSm);
}
.article__text__area>h3,
.article__text__area>p {
margin-bottom: var(--mgSm);
}
.article__detail {
display: flex;
justify-content: start;
flex-wrap: wrap;
}
.article__detail__date {
position: relative;
margin-left: 20px;
}
.article__detail__date::before {
position: absolute;
content: url("../img/clock.svg");
top: 1px;
left: -25px;
width: 18px;
height: 18px;
}
.article__detail__category {
position: relative;
margin-left: 40px;
}
.article__detail__category::before {
position: absolute;
content: url("../img/folder.svg");
top: 3px;
left: -25px;
width: 22px;
height: 22px;
}
/*----------feature-----------*/
.feature__article__item {
width: 100%;
margin-bottom: 30px;
}
.feature__article__item:last-child {
margin-bottom: 0;
}
.feature__article__item img {
border-radius: 5px;
}
/*------------new--------------*/
.new {
margin-top: var(--mgBg);
}
.new__article img {
border-radius: 5px;
}
.new__article {
display: grid;
grid-template-columns: 1fr;
grid-template-rows: 1fr;
gap: 20px 0;
}
.new .article__text__area>p {
margin-bottom: 10px;
}
/*-------------------------page.html(記事ページ)詳細設定---------------------------------*/
/*------------header-------------*/
.header__page__logo img {
width: 110px;
margin: 10px 0 20px 20px;
}
/*-----------記事本文------------*/
.page__title__area {
margin-bottom: var(--mgMd);
}
.page__title__area h1 {
margin-bottom: 5px;
}
.page__title__area img {
border-radius: 5px;
margin-top: 20px;
}
.page__text__area {
margin-bottom: var(--mgMd);
}
.page__text__area>p {
margin-bottom: 20px;
}
.page__text__area h2 {
margin-bottom: 20px;
}
.page__text__area>img {
display: block;
margin: var(--mgMd) auto;
max-width: 550px;
border-radius: 5px;
}
.page_body {
margin-bottom: var(--mgBg);
}
/*---------------------レスポンシブ(タブレット)---------------------------*/
@media screen and (700px <= width) {
.btn {
max-width: 330px;
}
/*----------FV差し替え--------------*/
.header__home {
background-image: url("../img/fv_pc.jpg");
}
.header__logo img {
width: 220px;
}
/*----------featureの記事を横並びにする-----------*/
.feature__article {
display: flex;
justify-content: space-between;
}
.feature__article__item {
width: 48%;
margin-bottom: 0;
}
.feature__article__item img {
border-radius: 10px;
}
/*------------newの記事を横並びにする--------------*/
.new__article {
grid-template-columns: 1fr 1fr 1fr;
grid-template-rows: 1fr 1fr 1fr;
gap: 40px 16px;
}
/*-----------サイドバー------------*/
aside {
max-width: 800px;
margin: var(--mgBg) auto 0;
}
}
/*---------------------レスポンシブ(PC)---------------------------*/
@media screen and (1000px <= width) {
/*-------基本設定----------*/
:root {
--mgBg: 100px;
--mgMd: 50px;
--mgSm: 20px;
}
.font_lg {
font-size: 28px;
}
.font_md {
font-size: 20px;
}
.font_en {
font-size: 21px;
}
/*---------------メインとサイドバーを横並びにする-------------*/
.container {
max-width: 1290px;
margin: 0 auto;
display: flex;
justify-content: space-between;
align-items: flex-start;
}
main {
width: 73%;
margin-right: 40px;
}
aside {
width: calc(100% - 73% - 40px);
position: sticky;
top: 20px;
margin-top: 0;
}
/*-------ボタン設定--------*/
.btn::after {
right: 40px;
}
/*---------記事ページの調整-----------*/
.header__page {
max-width: 1290px;
margin: 20px auto;
}
.header__page__logo img {
width: 180px;
}
.page__title__area img,
.page__text__area img {
border-radius: 10px;
}
}
@media screen and (1300px <= width) {
.container {
padding: 0;
}
}JS
$(function () {
$(window).scroll(function () {
$('.js-fade').each(function () {
var pos = $(this).offset().top;
var scroll = $(window).scrollTop();
var windowHeight = $(window).height();
if (scroll > pos - windowHeight + 100) {
$(this).addClass('scroll');
}
});
});
});解説
まずは、模写コーディングの準備を読んで準備をしましょう。そして、模写コーディングの手順を参考にしながら挑戦してみましょう。



