body { font-family: 'Noto Sans JP', sans-serif; margin: 0; padding: 0; background-color: #f4f4f4; width: 100%; } .navbar { background-color: #333333; color: #f4f4f4; width: 100%; position: sticky;/* 2行だけの記述でfixedと同じ配置ができる*/ top: 0; z-index: 100; box-shadow: 0px 4px 8px #adadad; } .barContainer { width: 80%; margin: auto; padding: 1em 0; display: flex; justify-content: space-between; align-items: center; } .navbar h1 { margin: 0; padding: 0; } .navbar nav ul { list-style: none; margin: 0; padding: 0; display: flex; } .navbar nav ul li { margin-right: 1em; } .navbar nav ul li a { text-decoration: none; color: #f4f4f4; } .navbar nav ul li a:hover { border-bottom: 2px solid #ccb540; } .navbar nav ul li:nth-child(2) a { color: #ccb540; } /* ここまでは共通で記載する */ .category{ border-bottom: 1px solid #acacac; width: 100%; } .categoryContainer{ display: grid; grid-template-columns: repeat(auto-fit, 300px); justify-content: center; grid-gap:1em; /* ウィンドウに合わせて自動で改行(中央揃え左揃え)を再現するにはflexboxでは難しかった。 flex-wrap:wrapとjustify-content:centerでは改行した時に真ん中配置から始まっちゃうよーうまくいかないよー(>_<) しかし、gridなら4行でいけた。もっと短くできるかも。 */ } #menuContainer { width: 80%; margin:0 auto; } .menu-item { background-color: #ffffff; border-radius: 10px; box-shadow: 0px 0px 8px #acacac; padding: 0; text-align: center; width: 300px; margin: .5em auto; } .menu-item:hover { transform: scale(1.1); transition: transform 0.3s ease; } .menu-item img { width: 100%; height: 25vh; object-fit: cover; border-radius: 10px 10px 0 0 ; padding: 0; } .menu-item a img:hover{ opacity:0.5; } .menu-item h3 { margin: 0 1em; font-size: 110%; border-bottom: 2px solid #acacac; } .price{ font-size: 1.2vw; } @media screen and (max-width: 1164px){ .navbar{ width: 100%; } #menuContainer{ width: 95%; margin: 0 auto; } .category{ width: 80%; margin: 1em auto; } @media screen and (max-width: 793px){ .category{ text-align: center; } .categoryContainer{ display: grid; grid-template-columns: repeat(auto-fit, 170px); justify-content: center; } .menu-item{ width: 170px; } .barContainer { width: 80%; margin: auto; padding: 1em 0; flex-direction: column; } } }