HTML & CSS 연습/Fruitables
fruit
별초롱언니
2025. 4. 25. 17:19
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://kit.fontawesome.com/705381df09.js" crossorigin="anonymous"></script>
<link rel="stylesheet" href="./style.css">
<script src="./dropdown.js" defer></script>
<script src="./slider.js" defer></script>
<script src="./tab.js" defer></script>
<title>Conan's favorite fruit</title>
</head>
<body>
<!-- 헤더 -->
<header>
<div class="container">
<div class="header_left">
<span><i class="fa-solid fa-location-dot"></i> 123 Street, New York</span>
<span><i class="fa-solid fa-envelope"></i> Email@Example.com</span>
</div>
<div class="header_right">
<span>Privacy Policy / </span>
<span>Terms of Use</span>
<span>Sales and Refunds</span>
</div>
</div>
</header>
<!-- 내비 -->
<section id="nav">
<div class="container">
<div class="nav_title">
<h1>Fruitables</h1>
</div>
<div class="nav_menu">
<ul>
<li>Home</li>
<li>Shop</li>
<li>Shop Detail</li>
<li id="mainList">Pages<i class="fa-solid fa-angle-down"></i>
<ul id="subList" class="display_none">
<li>Cart</li>
<li>Checkout</li>
<li>Testimonial</li>
<li>404 Page</li>
</ul>
</li>
<li>Contact</li>
</ul>
</div>
<div class="nav_icons">
<i class="fa-solid fa-magnifying-glass glass"></i>
<i class="fa-solid fa-bag-shopping shopping"></i>
<i class="fa-solid fa-user user"></i>
</div>
</div>
</section>
<!-- 메인 슬라이더 -->
<section id="main">
<div class="container">
<div class="main_text">
<p>100% Organic Foods</p>
<h1>Organic Veggies & <br>
Fruits Foods</h1>
<input type="text" placeholder="Search" class="main_search">
<input type="submit" value="submit Now" class="main_submit">
</div>
<div class="slidebox">
<div class="slides">
<div class="slide">
<div class="slide_img">
<img src="./img/hero-img-1.png" alt="">
</div>
<div class="slide_text">
<p>Fruites</p>
</div>
</div>
<div class="slide">
<div class="slide_img">
<img src="./img/hero-img-2.jpg" alt="">
</div>
<div class="slide_text">
<p>Fruites</p>
</div>
</div>
</div>
<div id="slidebtn">
<i class="fa-solid fa-angle-left left"></i>
<i class="fa-solid fa-chevron-right right"></i>
</div>
</div>
</div>
</section>
<!-- 탭 -->
<section id="tab">
<div class="container">
<div class="tab_menu">
<div class="tab_title">
<h1>Our Organic Products</h1>
</div>
<div class="tab_button">
<span id="tab1">All Products</span>
<span id="tab2">Vegetables</span>
<span id="tab3">Fruits</span>
<span id="tab4">Bread</span>
<span id="tab5">Meat</span>
</div>
</div>
<div class="tab_contents">
<div class="tab_content tab1 tab2">
<div class="tab_img">
<img src="./img/fruite-item-1.jpg">
</div>
<div class="tab_text">
<h2>Grapes</h2>
<p>Lorem ipsum dolor sit amet <br>
consectetur adipisicing elit sed do <br>
eiusmod te incididunt</p>
<span>$4.99 / kg</span>
<a href="#"><i class="fa-solid fa-bag-shopping"></i> Add to cart</a>
</div>
</div>
<div class="tab_content tab1 tab3">
<div class="tab_img">
<img src="./img/fruite-item-1.jpg">
</div>
<div class="tab_text">
<h2>Grapes</h2>
<p>Lorem ipsum dolor sit amet <br>
consectetur adipisicing elit sed do <br>
eiusmod te incididunt</p>
<span>$4.99 / kg</span>
<a href="#"><i class="fa-solid fa-bag-shopping"></i> Add to cart</a>
</div>
</div>
<div class="tab_content tab1 tab4">
<div class="tab_img">
<img src="./img/fruite-item-3.jpg">
</div>
<div class="tab_text">
<h2>Grapes</h2>
<p>Lorem ipsum dolor sit amet <br>
consectetur adipisicing elit sed do <br>
eiusmod te incididunt</p>
<span>$4.99 / kg</span>
<a href="#"><i class="fa-solid fa-bag-shopping"></i> Add to cart</a>
</div>
</div>
<div class="tab_content tab1 tab5">
<div class="tab_img">
<img src="./img/fruite-item-4.jpg">
</div>
<div class="tab_text">
<h2>Grapes</h2>
<p>Lorem ipsum dolor sit amet <br>
consectetur adipisicing elit sed do <br>
eiusmod te incididunt</p>
<span>$4.99 / kg</span>
<a href="#"><i class="fa-solid fa-bag-shopping shopping"></i> Add to cart</a>
</div>
</div>
<div class="tab_content tab1 tab6">
<div class="tab_img">
<img src="./img/fruite-item-5.jpg">
</div>
<div class="tab_text">
<h2>Grapes</h2>
<p>Lorem ipsum dolor sit amet <br>
consectetur adipisicing elit sed do <br>
eiusmod te incididunt</p>
<span>$4.99 / kg</span>
<a href="#"><i class="fa-solid fa-bag-shopping"></i> Add to cart</a>
</div>
</div>
<div class="tab_content tab1 tab5">
<div class="tab_img">
<img src="./img/fruite-item-6.jpg">
</div>
<div class="tab_text">
<h2>Grapes</h2>
<p>Lorem ipsum dolor sit amet <br>
consectetur adipisicing elit sed do <br>
eiusmod te incididunt</p>
<span>$4.99 / kg</span>
<a href="#"><i class="fa-solid fa-bag-shopping"></i> Add to cart</a>
</div>
</div>
<div class="tab_content tab1 tab3">
<div class="tab_img">
<img src="./img/fruite-item-7.jpg">
</div>
<div class="tab_text">
<h2>Grapes</h2>
<p>Lorem ipsum dolor sit amet <br>
consectetur adipisicing elit sed do <br>
eiusmod te incididunt</p>
<span>$4.99 / kg</span>
<a href="#"><i class="fa-solid fa-bag-shopping"></i> Add to cart</a>
</div>
</div>
<div class="tab_content tab1 tab">
<div class="tab_img">
<img src="./img/fruite-item-1.jpg">
</div>
<div class="tab_text">
<h2>Grapes</h2>
<p>Lorem ipsum dolor sit amet <br>
consectetur adipisicing elit sed do <br>
eiusmod te incididunt</p>
<span>$4.99 / kg</span>
<a href="#"><i class="fa-solid fa-bag-shopping"></i> Add to cart</a>
</div>
</div>
</div>
</div>
</section>
</body>
</html>
@import url('https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&family=Raleway:ital,wght@0,100..900;1,100..900&display=swap');
/* font-family: "Open Sans", sans-serif; */
/* font-family: "Raleway", sans-serif; */
:root {
--main-color: #81c408;
--sub-color: #ffc107;
--bg-color: #f4f6f8;
--text-color: #45595B;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
text-decoration: none;
list-style: none;
color: inherit;
}
.container {
width: 70%;
margin: 0 auto;
}
header .container {
background-color: var(--main-color);
color: white;
display: flex;
justify-content: space-between;
padding: 15px;
border-radius: 350px 200px;
}
.header_left > span > i {
color: var(--sub-color);
padding: 0 5px;
}
/* 내비 */
#nav .container {
display: flex;
justify-content: space-between;
padding: 20px 0;
}
.nav_title h1 {
font-size: 40px;
color: var(--main-color);
}
.nav_menu > ul {
display: flex;
}
.nav_menu > ul > li {
padding-right: 30px;
}
#mainList > i {
padding-left: 10px;
font-size: 12px;
}
#mainList {
position: relative;
}
#subList {
position: absolute;
top: 35px;
left: -10px;
border-radius: 10px;
background-color: var(--bg-color);
}
#subList li {
padding: 10px 20px;
}
#subList li:hover{
background-color: var(--sub-color);
color: var(--main-color);
}
.display_none {
display: none;
}
.nav_icons i {
font-size: 30px;
padding-right: 20px;
color: var(--main-color);
}
.nav_icons .glass {
border: 1px solid var(--sub-color);
border-radius: 50%;
padding: 13px;
margin-right: 15px;
font-size: 16px;
}
/* 메인 */
#main {
background-image: url(./img/hero-img.jpg);
background-position: center;
padding: 80px 0;
}
#main .container {
display: flex;
justify-content: space-between;
align-items: center;
}
.main_text p {
font-size: 22px;
color: var(--sub-color);
margin-bottom: 20px;
}
.main_text h1 {
font-size: 64px;
color: var(--main-color);
margin-bottom: 40px;
}
.main_text .main_search {
border: 2px solid var(--sub-color);
border-radius: 30px;
padding: 20px 350px 20px 20px;
font-size: 16px;
}
.main_text .main_submit {
border: 2px solid var(--sub-color);
border-radius: 30px;
padding: 20px 30px;
margin-left: -150px;
font-size: 16px;
background-color: var(--main-color);
color: white;
font-weight: bold;
transition: all 1s ease ;
}
.main_submit:hover {
background-color: var(--sub-color);
}
/* 슬라이드 */
.slidebox {
width: 40%;
white-space: nowrap;
overflow: hidden;
position: relative;
}
.slides {
font-size: 0;
}
.slide {
width: 100%;
position: relative;
display: inline-block;
transition: all 1.2s ease ;
}
.slide img {
width: 100%;
}
.slide img:first-of-type {
background-color: var(--sub-color);
}
.slide_text {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
background-color: var(--sub-color);
color: white;
padding: 10px 30px;
font-size: 24px;
border-radius: 15px;
}
#slidebtn i {
position: absolute;
top: 50%;
transform: translateY(-50%);
font-size: 24px;
background-color: var(--main-color);
color: white;
border-radius: 20px;
padding: 10px 12px;
}
#slidebtn .left {
left: 20px;
}
#slidebtn .right {
right: 20px;
}
/* 탭 */
.tab_menu {
display: flex;
justify-content: space-between;
align-items: center;
margin: 50px 0;
}
.tab_title h1 {
font-size: 40px;
}
.tab_button span {
font-size: 18px;
background-color: var(--bg-color);
border-radius: 20px;
padding: 10px 35px;
margin-right: 10px;
}
.tab_contents {
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.tab_content {
position: relative;
/* 둘 다 동일하게 구현됨 */
flex: 0 1 calc((100% - 30px) / 4);
/* flex: 1 1 calc(25% - 10px); */
border-radius: 10px;
}
.tab_content:hover {
box-shadow: 0 0 50px 1px gray;
transition: all 1.2s ease;
}
.tab_img img {
width: 100%;
transition: all 1.2s ease;
border-radius: 10px 10px 0 0;
}
.tab_button span.active {
color: white;
background-color: var(--sub-color);
}
.tab_img {
overflow: hidden;
font-size: 0px;
border-radius: 10px 10px 0 0;
}
.tab_img img:hover {
transform: scale(1.2);
}
.tab_text {
text-align: center;
border: 1px solid var(--sub-color);
border-top: none;
border-radius: 0 0 10px 10px;
padding: 20px 0;
}
.tab_text > p {
margin-bottom: 10px;
}
.tab_text > a {
border: 1px solid var(--sub-color);
padding: 5px 10px;
border-radius: 20px;
color: var(--main-color);
}
.tab_text > a:hover {
transition: all 1.2s ease;
background-color: var(--sub-color);
color: white;
}
.tab_text > a:hover i {
color: var(--main-color);
}