目录
效果图:
任务描述
源码:
详细讲解:
1.产品信息部分
2.用户评论区域
效果图:
任务描述
-
页面结构:
- 页面应包括一个标题部分、一个产品展示区和一个客户评价区。
- 使用图片展示产品,并添加描述。
- 客户评价区展示一些用户的评价。
-
页面内容:
- 标题部分:显示一个大标题和副标题。
- 产品展示区:展示一张产品图片,并包含产品名称、价格和描述。
- 客户评价区:显示几条用户评论,每条评论包含用户名和评论内容。
-
样式:
- 使用 CSS 设置背景颜色、文本颜色和字体。
- 使用不同的字体大小和颜色来区分标题和正文。
- 为产品图片添加边框和阴影效果。
- 使用网格布局(CSS Grid)或弹性盒布局(Flexbox)来组织页面内容。
- 设置客户评价区的背景颜色,并使用内边距和边距来调整布局。
源码:
<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>XYZ笔记本电脑</title><style>/* 全局样式设置 */body {margin: 0; /* 移除浏览器默认的外边距 */padding: 0; /* 移除浏览器默认的内边距 */font-family: Arial, sans-serif; /* 设置字体为Arial */background-color: #f4f4f4; /* 设置背景颜色为浅灰色 */}/* 容器样式设置 */.container {width: 90%; /* 宽度设置为父容器的90% */max-width: 1200px; /* 最大宽度设置为1200px */margin: 0 auto; /* 水平居中对齐 */padding: 20px; /* 内部填充20px */background-color: #fff; /* 背景颜色为白色 */}/* 主内容布局样式 */.home {display: grid; /* 使用CSS网格布局 */grid-template-columns: 1fr 1fr; /* 设置两列布局 */gap: 20px; /* 列之间的间距 */align-items: center; /* 垂直方向对齐内容 */}/* 图片样式设置 */.home img {width: 100%; /* 图片宽度占满父容器 */height: auto; /* 高度自适应 */border-radius: 5px; /* 圆角边框 */}/* 产品标题样式设置 */.goods h3 {font-size: 24px; /* 字体大小 */color: #333; /* 字体颜色 */}/* 产品描述样式设置 */.goods p {font-size: 16px; /* 字体大小 */color: #555; /* 字体颜色 */line-height: 1.5; /* 行高,增加可读性 */}/* 链接样式设置 */.goods a {color: #5690c2; /* 链接颜色 */text-decoration: none; /* 去掉下划线 */font-size: 14px; /* 字体大小 */}/* 销售进度条背景样式设置 */.goods .pl1 {background-color: #bdbdbd; /* 背景颜色 */width: 50%; /* 宽度为50% */height: 20px; /* 高度为20px */border-radius: 5px; /* 圆角边框 */margin: 10px 0; /* 上下外边距 */}/* 销售进度条实际进度样式设置 */.goods .pl2 {background-color: green; /* 背景颜色 */height: 100%; /* 高度占满背景 */width: 82%; /* 宽度表示销售进度的百分比 */border-radius: 5px; /* 圆角边框 */text-align: center; /* 文本居中对齐 */color: white; /* 文本颜色 */line-height: 20px; /* 文本垂直居中 */}/* 配置选项按钮样式设置 */.goods .opt button {background-color: #fff; /* 背景颜色 */border: 2px solid #c7c7c7; /* 边框颜色 */border-radius: 10px; /* 圆角边框 */margin: 5px; /* 外边距 */padding: 10px; /* 内部填充 */cursor: pointer; /* 鼠标悬停时显示为手指图标 */font-size: 15px; /* 字体大小 */}/* 选中的配置按钮样式设置 */.goods .opt button.active-border {border-color: #030303; /* 选中状态的边框颜色 */font-weight: bold; /* 选中状态的字体加粗 */}/* 产品价格样式设置 */.goods .piece {color: #ce4444; /* 字体颜色 */font-size: 17px; /* 字体大小 */}/* 产品规格表样式设置 */.tab1 table {width: 100%; /* 表格宽度占满父容器 */border-collapse: collapse; /* 合并边框 */margin-top: 20px; /* 顶部外边距 */}/* 表格单元格样式设置 */.tab1 table td {border-bottom: 1px solid #8e8d8d; /* 下边框颜色 */padding: 10px; /* 内部填充 */}/* 表格标题单元格样式设置 */.tab1 .td1 {font-weight: bold; /* 粗体显示 */}/* 用户评论区域样式设置 */.mark {margin-top: 50px; /* 顶部外边距 */}/* 单个用户评论样式设置 */.mark .user1 {border-bottom: 1px solid #8f8f8f; /* 下边框颜色 */padding-bottom: 20px; /* 底部内边距 */margin-bottom: 20px; /* 底部外边距 */}/* 用户信息部分样式设置 */.top1 {display: flex; /* 使用flex布局 */gap: 10px; /* 头像和名称之间的间距 */align-items: center; /* 垂直方向对齐 */}/* 用户头像样式设置 */.top1 .pic3 {width: 50px; /* 头像宽度 */height: 50px; /* 头像高度 */border-radius: 50%; /* 圆形头像 */}/* 用户评论评分部分样式设置 */.mid1 {display: flex; /* 使用flex布局 */gap: 10px; /* 评分进度条和文本之间的间距 */align-items: center; /* 垂直方向对齐 */}/* 评分进度条背景样式设置 */.div2 {background-color: #bdbdbd; /* 背景颜色 */width: 100px; /* 进度条宽度 */height: 20px; /* 进度条高度 */border-radius: 5px; /* 圆角边框 */}/* 实际评分进度样式设置 */.div3 {background-color: green; /* 背景颜色 */height: 100%; /* 高度占满背景 */border-radius: 5px; /* 圆角边框 */color: white; /* 文本颜色 */text-align: center; /* 文本居中对齐 */line-height: 20px; /* 文本垂直居中 */}/* 评论评分文本样式设置 */.div4 {font-weight: bold; /* 字体加粗 */font-size: 14px; /* 字体大小 */color: #555; /* 字体颜色 */}/* 用户评论文本样式设置 */.down1 p {font-size: 16px; /* 字体大小 */color: #333; /* 字体颜色 */}/* 响应式设计:调整屏幕宽度小于768px时的布局 */@media (max-width: 768px) {.home {grid-template-columns: 1fr; /* 切换为单列布局 */}}</style><script>/* JavaScript函数:处理按钮选择和活动状态 */function selectButton(button) {var buttons = document.getElementsByClassName('my-button'); /* 获取所有具有 'my-button' 类的按钮 */for (var i = 0; i < buttons.length; i++) {buttons[i].classList.remove('active-border'); /* 移除所有按钮的活动边框类 */}button.classList.add('active-border'); /* 为当前按钮添加活动边框类 */}</script>
</head>
<body><div class="container"><!-- 产品展示区域 --><section class="home"><!-- 产品图片部分 --><div class="picture"><img src="https://m.media-amazon.com/images/I/51PsNbMd-CL._AC_SX679_.jpg" alt="XYZ笔记本电脑"></div><!-- 产品信息部分 --><div class="goods"><h3>XYZ笔记本电脑</h3> <!-- 产品标题 --><p>XYZ 2023 款最新 Chromebook 笔记本电脑,14 英寸显示屏,英特尔赛扬 N4120 处理器,4GB RAM,64GB eMMC,英特尔 UHD 显卡 600,WiFi,蓝牙,Chrome 操作系统,现代灰色</p> <!-- 产品描述 --><p><a href="#XYZhome">访问XYZ官网</a></p> <!-- 官网链接 --><!-- 销售进度条 --><div class="pl1"><div class="pl2">82%</div> <!-- 进度条表示销售进度 --></div><p>40万+已售</p> <!-- 销售数量 --><hr> <!-- 分隔线 --><!-- 配置选项按钮 --><div class="opt"><button type="button" class="my-button" onclick="selectButton(this)"><span>4GB RAM | 64GB eMMC</span><span class="piece">¥177.90</span></button><button type="button" class="my-button" onclick="selectButton(this)"><span>8GB RAM | 128GB eMMC</span><span class="piece">¥257.90</span></button><button type="button" class="my-button" onclick="selectButton(this)"><span>16GB RAM | 512GB eMMC</span><span class="piece">¥559.90</span></button></div><!-- 产品规格表 --><div class="tab1"><table><tr><td class="td1">品牌</td><td>XYZ</td></tr><tr><td class="td1">型号</td><td>XYZ Chromebook</td></tr><tr><td class="td1">屏幕尺寸</td><td>14英寸</td></tr><tr><td class="td1">CPU型号</td><td>Celeron N</td></tr><tr><td class="td1">操作系统</td><td>Chrome OS</td></tr><tr><td class="td1">图形处理器</td><td>Intel UHD Graphics 600</td></tr></table></div></div></section><!-- 用户评论区域 --><section class="mark"><h3>来自中国的热门评论</h3> <!-- 评论标题 --><!-- 用户1评论 --><div class="user1"><div class="top1"><img src="https://m.media-amazon.com/images/S/amazon-avatars-global/default.png" alt="用户头像" class="pic3"><p>Mike</p> <!-- 用户名 --></div><div class="mid1"><div class="div2"><div class="div3" style="width: 79%;">79%</div> <!-- 用户评分进度条 --></div><div class="div4">非常棒的一次购物,开机速度很快</div> <!-- 用户评分文字描述 --></div><div class="down1"><p>这款 chromebook 本身就具有价值。它启动速度很快,没有任何问题。它适用于日常计算。图形清晰锐利,不伤眼睛。屏幕为 14 英寸,易于阅读。 Chrome 应用程序非常棒,运行完美且易于导航。</p></div></div><!-- 用户2评论 --><div class="user1"><div class="top1"><img src="https://m.media-amazon.com/images/S/amazon-avatars-global/default.png" alt="用户头像" class="pic3"><p>Jone</p></div><div class="mid1"><div class="div2"><div class="div3" style="width: 88%;">88%</div> <!-- 用户评分进度条 --></div><div class="div4">我喜欢我的笔记本电脑。它拥有我需要的一切,甚至更多。</div></div><div class="down1"><p>今年3月9日购买。收到电源线大约一个月后,电源线停止工作,笔记本电脑死机。我们回到这里,发现无法退货,所以我们购买了另一根电源线。</p></div></div><!-- 用户3评论 --><div class="user1"><div class="top1"><img src="https://m.media-amazon.com/images/S/amazon-avatars-global/default.png" alt="用户头像" class="pic3"><p>Whilson</p></div><div class="mid1"><div class="div2"><div class="div3" style="width: 95%;">95%</div> <!-- 用户评分进度条 --></div><div class="div4">一台好电脑,物超所值</div></div><div class="down1"><p>同样,它绝不是一台完整的笔记本电脑。但话又说回来,如果您正在寻找 Chromebook,您并不是在寻找笔记本电脑的全部功能。</p></div></div><!-- 用户4评论 --><div class="user1"><div class="top1"><img src="https://m.media-amazon.com/images/S/amazon-avatars-global/default.png" alt="用户头像" class="pic3"><p>Lily</p></div><div class="mid1"><div class="div2"><div class="div3" style="width: 75%;">75%</div> <!-- 用户评分进度条 --></div><div class="div4">我喜欢带灯的键盘</div></div><div class="down1"><p>我不太懂电脑,但它是一台漂亮的电脑,而且比我以前的电脑更小、更轻。</p></div></div></section></div>
</body>
</html>
详细讲解:
1.产品信息部分
/* 产品标题样式设置 */
.goods h3 {font-size: 24px; /* 字体大小 */color: #333; /* 字体颜色 */
}/* 产品描述样式设置 */
.goods p {font-size: 16px; /* 字体大小 */color: #555; /* 字体颜色 */line-height: 1.5; /* 行高,增加可读性 */
}/* 链接样式设置 */
.goods a {color: #5690c2; /* 链接颜色 */text-decoration: none; /* 去掉下划线 */font-size: 14px; /* 字体大小 */
}/* 销售进度条背景样式设置 */
.goods .pl1 {background-color: #bdbdbd; /* 背景颜色 */width: 50%; /* 宽度为50% */height: 20px; /* 高度为20px */border-radius: 5px; /* 圆角边框 */margin: 10px 0; /* 上下外边距 */
}/* 销售进度条实际进度样式设置 */
.goods .pl2 {background-color: green; /* 背景颜色 */height: 100%; /* 高度占满背景 */width: 82%; /* 宽度表示销售进度的百分比 */border-radius: 5px; /* 圆角边框 */text-align: center; /* 文本居中对齐 */color: white; /* 文本颜色 */line-height: 20px; /* 文本垂直居中 */
}/* 配置选项按钮样式设置 */
.goods .opt button {background-color: #fff; /* 背景颜色 */border: 2px solid #c7c7c7; /* 边框颜色 */border-radius: 10px; /* 圆角边框 */margin: 5px; /* 外边距 */padding: 10px; /* 内部填充 */cursor: pointer; /* 鼠标悬停时显示为手指图标 */font-size: 15px; /* 字体大小 */
}/* 选中的配置按钮样式设置 */
.goods .opt button.active-border {border-color: #030303; /* 选中状态的边框颜色 */font-weight: bold; /* 选中状态的字体加粗 */
}/* 产品价格样式设置 */
.goods .piece {color: #ce4444; /* 字体颜色 */font-size: 17px; /* 字体大小 */
}
<script>/* JavaScript函数:处理按钮选择和活动状态 */function selectButton(button) {var buttons = document.getElementsByClassName('my-button'); /* 获取所有具有 'my-button' 类的按钮 */for (var i = 0; i < buttons.length; i++) {buttons[i].classList.remove('active-border'); /* 移除所有按钮的活动边框类 */}button.classList.add('active-border'); /* 为当前按钮添加活动边框类 */}
</script>
<!-- html产品信息部分 -->
<div class="goods"><h3>XYZ笔记本电脑</h3> <!-- 产品标题 --><p>XYZ 2023 款最新 Chromebook 笔记本电脑,14 英寸显示屏,英特尔赛扬 N4120 处理器,4GB RAM,64GB eMMC,英特尔 UHD 显卡 600,WiFi,蓝牙,Chrome 操作系统,现代灰色</p> <!-- 产品描述 --><p><a href="#XYZhome">访问XYZ官网</a></p> <!-- 官网链接 --><!-- 销售进度条 --><div class="pl1"><div class="pl2">82%</div> <!-- 进度条表示销售进度 --></div><p>40万+已售</p> <!-- 销售数量 --><hr> <!-- 分隔线 --><!-- 配置选项按钮 --><div class="opt"><button type="button" class="my-button" onclick="selectButton(this)"><span>4GB RAM | 64GB eMMC</span><span class="piece">¥177.90</span></button><button type="button" class="my-button" onclick="selectButton(this)"><span>8GB RAM | 128GB eMMC</span><span class="piece">¥257.90</span></button><button type="button" class="my-button" onclick="selectButton(this)"><span>16GB RAM | 512GB eMMC</span><span class="piece">¥559.90</span></button></div><!-- 产品规格表 --><div class="tab1"><table><tr><td class="td1">品牌</td><td>XYZ</td></tr><tr><td class="td1">型号</td><td>XYZ Chromebook</td></tr><tr><td class="td1">屏幕尺寸</td><td>14英寸</td></tr><tr><td class="td1">CPU型号</td><td>Celeron N</td></tr><tr><td class="td1">操作系统</td><td>Chrome OS</td></tr><tr><td class="td1">图形处理器</td><td>Intel UHD Graphics 600</td></tr></table></div>
</div>
(1).获取所有按钮:
- var buttons = document.getElementsByClassName('my-button');
- 这行代码使用 document.getElementsByClassName 方法获取页面上所有具有 my-button 类名的按钮元素,并将这些元素存储在 buttons变量中。
- buttons是一个类数组对象(HTMLCollection),包含了所有配置选项按钮。
(2).移除活动状态:
- for (var i = 0; i < buttons.length; i++)
- 这个
for
循环遍历所有的按钮。 - 对每个按钮调用 classList.remove('active-border') 方法,移除 active-border 类。这意味着所有按钮的选中样式都会被清除。
- 这个
(3).添加活动状态:
- button.classList.add('active-border')
;
- 这行代码将 active-border 类添加到当前点击的按钮(button参数)上。
- 这样就给用户一个视觉反馈,显示这个按钮是被选中的。
2.用户评论区域
/* 用户评论区域样式设置 */
.mark {margin-top: 50px; /* 顶部外边距 */
}/* 单个用户评论样式设置 */
.mark .user1 {border-bottom: 1px solid #8f8f8f; /* 下边框颜色 */padding-bottom: 20px; /* 底部内边距 */margin-bottom: 20px; /* 底部外边距 */
}/* 用户信息部分样式设置 */
.top1 {display: flex; /* 使用flex布局 */gap: 10px; /* 头像和名称之间的间距 */align-items: center; /* 垂直方向对齐 */
}/* 用户头像样式设置 */
.top1 .pic3 {width: 50px; /* 头像宽度 */height: 50px; /* 头像高度 */border-radius: 50%; /* 圆形头像 */
}/* 用户评论评分部分样式设置 */
.mid1 {display: flex; /* 使用flex布局 */gap: 10px; /* 评分进度条和文本之间的间距 */align-items: center; /* 垂直方向对齐 */
}/* 评分进度条背景样式设置 */
.div2 {background-color: #bdbdbd; /* 背景颜色 */width: 100px; /* 进度条宽度 */height: 20px; /* 进度条高度 */border-radius: 5px; /* 圆角边框 */
}/* 实际评分进度样式设置 */
.div3 {background-color: green; /* 背景颜色 */height: 100%; /* 高度占满背景 */border-radius: 5px; /* 圆角边框 */color: white; /* 文本颜色 */text-align: center; /* 文本居中对齐 */line-height: 20px; /* 文本垂直居中 */
}/* 评论评分文本样式设置 */
.div4 {font-weight: bold; /* 字体加粗 */font-size: 14px; /* 字体大小 */color: #555; /* 字体颜色 */
}/* 用户评论文本样式设置 */
.down1 p {font-size: 16px; /* 字体大小 */color: #333; /* 字体颜色 */
}
<h3>来自中国的热门评论</h3> <!-- 评论标题 -->
<!-- 用户1评论 -->
<div class="user1"><div class="top1"><img src="https://m.media-amazon.com/images/S/amazon-avatars-global/default.png" alt="用户头像" class="pic3"><p>Mike</p> <!-- 用户名 --></div><div class="mid1"><div class="div2"><div class="div3" style="width: 79%;">79%</div> <!-- 用户评分进度条 --></div><div class="div4">非常棒的一次购物,开机速度很快</div> <!-- 用户评分文字描述 --></div><div class="down1"><p>这款 chromebook 本身就具有价值。它启动速度很快,没有任何问题。它适用于日常计算。图形清晰锐利,不伤眼睛。屏幕为 14 英寸,易于阅读。 Chrome 应用程序非常棒,运行完美且易于导航。</p></div>
</div>
完