<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Zhang San's personal homepage</title>
<style>
:root {
--primary-color: #3498db;
--secondary-color: #2ecc71;
--text-color: #333;
--bg-color: #f4f4f4;
}
body {
font-family: 'Arial', sans-serif;
line-height: 1.6;
color: var(--text-color);
background-color: var(--bg-color);
margin: 0;
padding: 0;
}
header {
background-color: var(--primary-color);
color: white;
text-align: center;
padding: 2rem 0;
}
nav {
background-color: #333;
padding: 1rem;
overflow-x: auto;
}
nav ul {
list-style-type: none;
padding: 0;
display: flex;
justify-content: center;
}
nav ul li {
margin: 0 1rem;
white-space: nowrap;
}
nav ul li a {
color: white;
text-decoration: none;
transition: color 0.3s;
}
nav ul li a:hover {
color: var(--secondary-color);
}
main {
max-width: 1200px;
margin: 0 auto;
padding: 1rem;
}
section {
margin-bottom: 3rem;
}
h2 {
color: var(--primary-color);
border-bottom: 2px solid var(--secondary-color);
padding-bottom: 0.5rem;
}
.works-grid, .projects-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 1rem;
}
.work-item, .project-item {
background-color: white;
border-radius: 8px;
overflow: hidden;
box-shadow: 0 4px 6px rgba(0,0,0,0.1);
transition: transform 0.3s;
}
.work-item:hover, .project-item:hover {
transform: translateY(-5px);
}
.work-item img, .project-item img {
width: 100%;
height: 200px;
object-fit: cover;
}
.work-item h3, .project-item h3 {
padding: 1rem;
margin: 0;
font-size: 1rem;
}
footer {
background-color: #333;
color: white;
text-align: center;
padding: 1rem 0;
}
@media (max-width: 768px) {
.works-grid, .projects-grid {
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}
.work-item img, .project-item img {
height: 150px;
}
.work-item h3, .project-item h3 {
font-size: 0.9rem;
}
}
.about-content {
display: flex;
align-items: flex-start;
gap: 2rem;
}
.profile-photo {
width: 200px;
height: 200px;
border-radius: 50%;
object-fit: cover;
order: 2;
}
.about-text {
flex: 1;
order: 1;
display: flex;
flex-direction: column;
justify-content: space-between;
height: 200px;
}
.contact-info {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: flex-start;
}
.contact-details {
flex: 1;
min-width: 250px;
}
.qr-codes {
display: flex;
justify-content: space-around;
margin-top: 1rem;
}
.qr-code {
width: 120px;
height: 120px;
margin: 0.5rem;
}
.motto {
font-style: italic;
color: var(--primary-color);
text-align: center;
margin: 2rem 0;
padding: 1rem;
border-left: 4px solid var(--secondary-color);
background-color: rgba(46, 204, 113, 0.1);
}
@media (max-width: 768px) {
.about-content {
flex-direction: column-reverse;
align-items: center;
}
.about-text {
height: auto;
}
.profile-photo {
margin-bottom: 1rem;
}
.contact-info {
flex-direction: column;
align-items: center;
}
.contact-details {
text-align: center;
}
}
</style>
</head>
<body>
<header>
<h1>Zhang San's personal homepage</h1>
<p id="dynamic-slogan">Innovative, professional and efficient</p>
</header>
<nav>
<ul>
<li><a href="#about">About me.</a></li>
<li><a href="#contact">contact details</a></li>
<li><a href="#works">Showcase</a></li>
<li><a href="#projects">Project Cases</a></li>
</ul>
</nav>
<main>
<section id="about">
<h2>About me.</h2>
<div class="about-content">
<img src="/200" alt= "Personal photographs" class="profile-photo">
<div class="about-text">
<p>I am Zhang San, a passionate full-stack developer. I specialize in front-end and back-end development and have 5 years of working experience. I love to innovate, I am good at solving complex problems, and I am willing to learn new technologies. I am a team player, good at communication, and able to complete projects efficiently.</p>
<p>I graduated from Peking University majoring in computer science and technology, and participated in several open source projects during my school years. After graduation, I have worked in several well-known Internet companies, and accumulated a wealth of practical experience.</p>
<p>Besides programming, I love reading and traveling. I believe these hobbies can broaden my horizons and stimulate my creativity. My goal is to become an outstanding technology leader and contribute to the advancement of technological innovation.</p>
</div>
</div>
</section>
<blockquote class="motto">"Change the world with code, lead the future with innovation."</blockquote>
<section id="contact">
<h2>contact details</h2>
<div class="contact-info">
<div class="contact-details">
<p>Email: zhangsan@</p>
<p>Phone: 123-456-7890</p>
<p>LinkedIn: /in/zhangsan</p>
<p>GitHub: /zhangsan</p>
<p>Address: xxx Building, xxx Street, Chaoyang District, Beijing, China</p>
</div>
<div class="qr-codes">
<img src="/120" alt= "WeChat QR code" class="qr-code">
<img src="/120" alt= "Public QR code" class="qr-code">
</div>
</div>
</section>
<section id="works">
<h2>Showcase</h2>
<div class="works-grid">
<div class="work-item">
<img src="/300x200" alt= "Opus 4">
<h3>Data Visualization Project</h3>
</div>
<div class="work-item">
<img src="/300x200" alt= "Opus 5">
<h3>Reorganization of the official website of the enterprise</h3>
</div>
<div class="work-item">
<img src="/300x200" alt= "Op. 6">
<h3>AI assistant development</h3>
</div>
<div class="work-item">
<img src="/300x200" alt= "Opus 7">
<h3>Social media applications</h3>
</div>
</div>
</section>
<section id="projects">
<h2>Project Cases</h2>
<div class="projects-grid">
<!-- Add 5 project examples here-->
</div>
</section>
</main>
<footer>
<p>© 2023 Individual home page of the last name. All rights reserved.</p>
</footer>
<script>
const slogans = [
"Innovative, professional and efficient",
"Doing every project with heart and soul",
"Maximizing value for customers",
"Technology changes the world.",
"The pursuit of excellence never stops"
];
let currentSlogan = 0;
setInterval(() => {
currentSlogan = (currentSlogan + 1) % ;
('dynamic-slogan').textContent = slogans[currentSlogan];
}, 3000);
// Generate 50 project cases
const projectsGrid = ('.projects-grid');
for (let i = 1; i <= 8; i++) {
const projectItem = ('div');
= 'project-item';
= `
<img src="/300x200" alt="Item ${i}">
<h3>Project Case ${i}</h3>
`;
(projectItem);
}
</script>
</body>
</html>