当前位置: 首页 > news >正文

p2p网站建设 上海用网站模板建站

p2p网站建设 上海,用网站模板建站,动漫制作技术专业就业方向,免费下载软件app这一篇文章中,我会教你如何做一个AirBnb Experiences的克隆网站。主要涵盖React中Props的使用。 克隆网站最终呈现的效果: 1. 使用vite构建基础框架 npm create vitelatestcd airbnb-project npm install npm run dev2. 构建网站的3个部分 网站从上…

这一篇文章中,我会教你如何做一个AirBnb Experiences的克隆网站。主要涵盖React中Props的使用。

克隆网站最终呈现的效果:
在这里插入图片描述

1. 使用vite构建基础框架

npm create vite@latestcd airbnb-project
npm install
npm run dev

2. 构建网站的3个部分

网站从上至下主要分为导航栏、简介和活动栏三个部分。
我们在public文件夹之下建立components文件夹,然后分别建立Navbar.jsx,Hero.jsx和Card.jsx这三个文件,分别对应网站的三个部分。
另外,在public文件夹之下建立images文件夹,包含网站要用的所有图片。
在这里插入图片描述
photo-grid.png
在这里插入图片描述
wedding-photography.png
在这里插入图片描述
mountain-bike.png
在这里插入图片描述
airbnb-logo.png
在这里插入图片描述
katie-zaferes.png
在这里插入图片描述
star.png

3. 删除index.css中的所有内容

index.css

* {box-sizing: border-box;
}body {margin: 0;font-family: 'Poppins', sans-serif;
}

4. 导航栏

Navbar.jsx

export default function Navbar() {return (<nav><img src="/images/airbnb-logo.png" className="nav--logo"/></nav>)
}

对应的index.css中的内容。

nav {height: 70px;display: flex;padding: 20px 36px;box-shadow: 0px 2.98256px 7.4564px rgba(0, 0, 0, 0.1);
}.nav--logo {max-width: 100px;
}

5. 简介栏

Hero.jsx

export default function Hero() {return (<section className="hero"><img src="/images/photo-grid.png" className="hero-photo" /><h1 className="hero-header">Online Experiences</h1><p className="hero--text">Join unique interactive activities led by one-of-a-kind hosts-all without leaving home.</p></section>)
}

对应的index.css中的内容。

section {padding: 20px;
}.hero {display: flex;flex-direction: column;
}.hero--photo {max-width: 400px;align-self: center;
}.hero--header {margin-bottom: 16px;
}.hero--text {margin-top: 0;
}

6. 活动栏

Card.jsx

export default function Card(props) {let badgeTextif (props.item.openSpots === 0){badgeText = "SOLD OUT"} else if (props.item.location === "Online"){badgeText = "ONLINE"}return (<div className="card">{badgeText && <div className="card--badge">{badgeText}</div>}<img src={`/images/${props.item.coverImg}` }className="card--image"alt="Image of Katie Zaferes."/><div className="card--stats"><img src="/images/star.png" className="card--star"alt="Star icon."    /><span>{props.item.stats.rating}</span><span className="gray">({props.item.stats.reviewCount}) · </span><span className="gray">{props.item.location}</span></div><h2>{props.item.title}</h2><p><span className="bold">From ${props.item.price}</span> / person</p></div>)
}

对应的index.css中的内容。

.card {width: 175px;font-size: 0.75rem;flex: 0 0 auto;display: flex;flex-direction: column;position: relative
}.card--image {width: 100%;border-radius: 9px;margin-bottom: 9px;
}.card--title {overflow: hidden;text-overflow: ellipsis;
}.card--stats {display: flex;align-items: center;
}.card--star {height: 14px;
}.card--price {margin-top: auto;
}.card--badge{position: absolute;top: 6px;left: 6px;background-color: white;padding: 5px 7px;border-radius: 2px;font-weight: bold;
}h2 {font-size: 0.75rem;font-weight: normal;
}.gray {color: #918E9B;
}.bold {font-weight: bold;
}

7. 删除App.css中的所有内容

8. 准备需要的数据

在src文件夹之下建立data.jsx文件,准备在活动栏中需要呈现的内容。
data.jsx

export default [{id: 1,title: "Life Lessons with Katie Zaferes",description: "I will share with you what I call \"Positively Impactful Moments of Disappointment.\" Throughout my career, many of my highest moments only came after setbacks and losses. But learning from those difficult moments is what gave me the ability to rise above them and reach my goals.",price: 136,coverImg: "katie-zaferes.png",stats: {rating: 5.0,reviewCount: 6},location: "Online",openSpots: 0,},{id: 2,title: "Learn Wedding Photography",description: "Interested in becoming a wedding photographer? For beginner and experienced photographers alike, join us in learning techniques required to leave the happy couple with memories that'll last a lifetime.",price: 125,coverImg: "wedding-photography.png",stats: {rating: 5.0,reviewCount: 30},location: "Online",openSpots: 27,},{id: 3,title: "Group Mountain Biking",description: "Experience the beautiful Norwegian landscape and meet new friends all while conquering rugged terrain on your mountain bike. (Bike provided!)",price: 50,coverImg: "mountain-bike.png",stats: {rating: 4.8,reviewCount: 2},location: "Norway",openSpots: 3,}
]

9. 更新App.jsx中的内容

App.jsx

import Navbar from "../public/components/Navbar"
import Hero from "../public/components/Hero"
import Card from "../public/components/Card"
import data from "./data"export default function App() {const cards = data.map(item => {return (<Cardkey = {item.id}item = {item}/>)})return (<div><Navbar /><Hero /><section className="cards--list">{cards}</section></div>)
}

对应的index.css中的内容。

.cards--list {display: flex;flex-wrap: nowrap;gap: 20px;overflow-x: auto;
}

10. 完整的index.css

* {box-sizing: border-box;
}body {margin: 0;font-family: 'Poppins', sans-serif;
}nav {height: 70px;display: flex;padding: 20px 36px;box-shadow: 0px 2.98256px 7.4564px rgba(0, 0, 0, 0.1);
}h2 {font-size: 0.75rem;font-weight: normal;
}.gray {color: #918E9B;
}.bold {font-weight: bold;
}.nav--logo {max-width: 100px;
}section {padding: 20px;
}.hero {display: flex;flex-direction: column;
}.hero--photo {max-width: 400px;align-self: center;
}.hero--header {margin-bottom: 16px;
}.hero--text {margin-top: 0;
}.cards--list {display: flex;flex-wrap: nowrap;gap: 20px;overflow-x: auto;
}.card {width: 175px;font-size: 0.75rem;flex: 0 0 auto;display: flex;flex-direction: column;position: relative
}.card--image {width: 100%;border-radius: 9px;margin-bottom: 9px;
}.card--title {overflow: hidden;text-overflow: ellipsis;
}.card--stats {display: flex;align-items: center;
}.card--star {height: 14px;
}.card--price {margin-top: auto;
}.card--badge{position: absolute;top: 6px;left: 6px;background-color: white;padding: 5px 7px;border-radius: 2px;font-weight: bold;
}

11. 上传到github

12. 上传到netlify

http://www.dt0577.cn/news/1847.html

相关文章:

  • 海尔网站建设最吸引人的营销广告词
  • 网站开发语言开发关键词有哪些?
  • 中国共产党两学一做网站女性广告
  • 访问不了服务器网站吗可以免费网络推广网站
  • 无锡做网站企业怎么弄一个自己的链接
  • 网站怎样做公众号网站排名优化软件有哪些
  • 在线公司网站查询广告推销网站
  • 做题网站中计算多项式的值怎么做郑州学校网站建设
  • 网站建设方法许昌seo公司
  • wordpress账号密码分享网站seo推广排名
  • 信创网站建设推广平台网站热狗网
  • 网络工作室名称大全站长seo软件
  • 合肥企业网站推广网络推广的方式有哪些?
  • 网站分析该怎么做每日精选12条新闻
  • 免费网站开发模板百度官方平台
  • 什么叫网站索引搜索引擎优化实训心得
  • 定制网站建设案例展示seo网站推广是什么
  • 画册设计模板图片网站seo批量查询工具
  • 不同网站模块分析360浏览器网页版入口
  • 郑州网站建设修改网络营销推广seo
  • 广州一起做的网站龙斗seo博客
  • 建筑网站 知乎人民日报最新消息
  • 做网站用什么源码最好百度搜索使用方法
  • 网站的上一页怎么做竞价托管多少钱一个月
  • 学校网站怎样建设全网营销推广软件
  • 上海市普陀区建设规划局网站精准引流推广
  • 怎么做网站教程seo推广方法
  • 做网站大图片最有效的广告宣传方式
  • 传奇网站模板psd网络关键词
  • 做家电家具回收用哪个网站好鄂州网站seo