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

网站首页的布局设计学网站建设有用吗

网站首页的布局设计,学网站建设有用吗,前端网站建设,建筑方案设计网站这一篇文章中,我会教你如何做一个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.15wanjia.com/news/189092.html

相关文章:

  • 手机上哪个网站学校网站的作用和意义
  • 昆山网站建设公司苏州爬虫科技基金网站建设需求书
  • 泰州做网站哪家好中铁建设集团有限公司官网
  • 网站开发者工作描述地方网站模板
  • 如何做英文网站怎样免费做彩票网站
  • 百度推广需要先做网站吗百度一下的网址
  • 网站空间管理平台网站简繁转换
  • wordpress 手机 自建站同学会网站建设方案
  • 响应式网站建站网站备案地址
  • 上饶市做网站企业怎么做网站
  • 建网站的流程和费用漳州微信网站建设电话
  • 无锡做网站排名电商网站建设与管理 教案
  • 在线推广企业网站的方法有哪些福州小程序开发外包
  • swf影视网站源码广州房产网
  • 外贸多语言网站建设什么是oa系统软件
  • vs做的网站案例如何有效的进行网站策划
  • 高埗镇仿做网站网站推广方式主要通过
  • 做网站一天赚多少钱企业网站推广可以选择哪些方法?
  • 吉林seo推广系统手机优化好还是不优化好
  • 定制做网站报价网站后台传图片传不了
  • 网站怎么用网站建设网络推广首选公司
  • 通用网站后台管理系统(php版)logopond设计网站
  • 做网站实现自动生成pdf开源网
  • 中国专门做统计网站地产金融网站开发
  • 怎么样上传网站资料wordpress后台下载
  • 自己公司怎样弄个网站宁波网站seo公司
  • asp提交到另外网站网站设计需求方案
  • 网站开发 定制 合同深圳网络设计
  • 广州建网站哪家最好wordpress文章模板自定义字段
  • 福州哪家专业网站设计制作最好cms主题 wordpress