Blogger Information
Blog 22
fans 1
comment 0
visits 20157
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
1231作业-仿写淘宝购物车页面-php培训十期线上班
Dseven
Original
919 people have browsed it

1.作业要求

仿写淘宝购物车页面的主体部分,页头和页脚用之前做的组件进行拼装
仿写对象:

2.完成思路

2.1对仿写对象进行布局分析,确定各主要区块,明确各区块的主要实现方法,初步确定DOM结构。

2.2在DOM结构确定的基础上,通过web控制台打开仿写页面,查看各主要元素的长、宽、字体、颜色、圆角、间距等内容。

2.3打开仿写页面点击鼠标右键,选择页面另存为,获取网页中的各类图片素材。

2.4建立html文件和css文件。首先完成html文件中的DOM结构,与仿写对象进行对比,检查有无漏项,检查之前确定的区块实现方法可否优化。其次完成CSS文件,先把所有需要使用的选择器建立好,并在后面注释其选择的具体元素,再逐步完善选择器中的属性,边进行边调试。

3.布局分析

3.1计划仿写的页面去除页头和页脚之后与一个组件类似,首先用一个容器进行包裹(最外层红色粗框)。从页面中可以发现,其内部的四个绿框组件是纵向排列,而且各绿框中内容格式不完全类似。因此最外面的容器设置为Flex容器,容器内项目主轴为纵轴。

3.2最上方的绿框中,是购物车的信息统计项目,其下方有一条横割线,尤其注意其左边的三项,字体、颜色有变化,右边的价格和按钮也有颜色变化。因此该容器设置为Flex容器,左边项目设为无序列表,右边用div包裹,两端对齐。

3.3第二个绿框,类似于一个表格的表头(其实可以将第二个绿框和第三个绿框合并为一个),可以用table或者grid实现。

3.4 第三个绿框从功能上来说是商品的清单信息,共有三项,每项格式基本相同,本文选择用Grid布局。

3.5最下方的绿框和最上方的绿框布局相似,方法一样。

4.实现代码

4.1html部分

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <link rel="stylesheet" href="shop_shopingcart.css">
  7. <link rel="stylesheet" href="../../static/font/iconfont.css">
  8. </head>
  9. <body>
  10. <!--引入公共头部组件-->
  11. <div class="public-header">
  12. <a href="">网站首页</a>
  13. <a href="">专题</a>
  14. <a href="">网站导航</a>
  15. <a href="">二手商品</a>
  16. <a href="">讨论区</a>
  17. <span>
  18. <a href=""><i class="iconfont icon-huiyuan2"></i>登陆</a>
  19. <a href="">免费注册</a>
  20. </span>
  21. </div>
  22. <!--仿写的淘宝购物车页面主体部分-->
  23. <div class="shop-shopingcart">
  24. <!--信息统计-->
  25. <div class="title">
  26. <ul>
  27. <li>
  28. <a href="">
  29. <span>全部商品</span>
  30. <span>4</span>
  31. </a>
  32. </li>
  33. <li>
  34. <a href="">
  35. <span>降价商品</span>
  36. <span>0</span>
  37. </a>
  38. </li>
  39. <li>
  40. <a href="">
  41. <span>库存紧张</span>
  42. <span>0</span>
  43. </a>
  44. </li>
  45. </ul>
  46. <div>
  47. <span>已选商品(不含运费)</span>
  48. <span>¥283.80</span>
  49. <button>结算</button>
  50. </div>
  51. </div>
  52. <!--商品清单表头-->
  53. <div class="thead">
  54. <!--复选框及全选标签-->
  55. <input type="checkbox" name="all" id="alltop" >
  56. <label for="alltop">全选</label>
  57. <span>商品信息</span>
  58. <span>单位</span>
  59. <span>数量</span>
  60. <span>金额</span>
  61. <span>操作</span>
  62. </div>
  63. <!--购物车清单主体-->
  64. <div class="cartinfo">
  65. <!--单个店铺区-->
  66. <div class="goodsinfo">
  67. <!--店铺名称区-->
  68. <div class="shop">
  69. <input type="checkbox" name="shopname" id="shopname" value="百瑞源旗舰店" checked>
  70. <img src="../../static/images/shopingcart/tianmao.jpg" alt=""><!--天猫图标 -->
  71. <span>店铺:</span>
  72. <a href="">百瑞源旗舰店</a>
  73. <img src="../../static/images/shopingcart/wangwang.jpg" alt=""><!--旺旺图标 -->
  74. </div>
  75. <!--商品信息区-->
  76. <div class="goods">
  77. <input type="checkbox" name="price" id="price" value="255.8" checked><!--商品复选框-->
  78. <!--商品图片 -->
  79. <a href="">
  80. <img src="../../static/images/shopingcart/gouqi.jpg" alt="">
  81. </a>
  82. <!--商品具体信息及下方信用图标-->
  83. <div>
  84. <a>百瑞源-顶天红枸杞子宁夏正宗特级优枸杞干免洗中宁枸杞泡茶男肾</a>
  85. <!--商品资质图片-->
  86. <div class="img">
  87. <img src="../../static/images/shopingcart/xcard.png" alt=""><!-- 信用-->
  88. <a href=""><img src="../../static/images/shopingcart/qitian.png" alt=""></a><!-- 七天-->
  89. <a href=""><img src="../../static/images/shopingcart/baozhang.png" alt=""></a><!-- 保障-->
  90. </div>
  91. </div>
  92. <!--单价-->
  93. <span>¥127.90</span>
  94. <!--数量输入框-->
  95. <input type="number" value="2" step="1">
  96. <!--总价-->
  97. <span>¥255.80</span>
  98. <!--删除 -->
  99. <a>删除</a>
  100. </div>
  101. </div>
  102. <div class="goodsinfo">
  103. <!--店铺名称区-->
  104. <div class="shop">
  105. <input type="checkbox" name="shopname" id="shopname" value="小熊慕熙专卖店">
  106. <img src="../../static/images/shopingcart/tianmao.jpg" alt=""><!--天猫图标 -->
  107. <span>店铺:</span>
  108. <a href="">小熊慕熙专卖店</a>
  109. <img src="../../static/images/shopingcart/wangwang.jpg" alt=""><!--旺旺图标 -->
  110. </div>
  111. <!--商品信息区-->
  112. <div class="goods">
  113. <input type="checkbox" name="price" id="price" value="127.9" ><!--商品复选框-->
  114. <!--商品图片 -->
  115. <a href="">
  116. <img src="../../static/images/shopingcart/guo.jpg" alt="">
  117. </a>
  118. <!--商品具体信息及下方信用图标-->
  119. <div>
  120. <a>小熊电煮锅多功能宿舍神器学生锅家用迷你小电锅炒炖蒸煮面一体锅</a>
  121. <!--商品资质图片-->
  122. <div class="img">
  123. <img src="../../static/images/shopingcart/xcard.png" alt=""><!-- 信用-->
  124. <a href=""><img src="../../static/images/shopingcart/qitian.png" alt=""></a><!-- 七天-->
  125. <a href=""><img src="../../static/images/shopingcart/baozhang.png" alt=""></a><!-- 保障-->
  126. </div>
  127. </div>
  128. <!--单价-->
  129. <span>¥127.90</span>
  130. <!--数量输入框-->
  131. <input type="number" value="1" step="1">
  132. <!--总价-->
  133. <span>¥127.90</span>
  134. <!--删除 -->
  135. <a>删除</a>
  136. </div>
  137. </div>
  138. <div class="goodsinfo">
  139. <!--店铺名称区-->
  140. <div class="shop">
  141. <input type="checkbox" name="shopname" id="shopname" value="maling梅林旗舰店" checked>
  142. <img src="../../static/images/shopingcart/tianmao.jpg" alt=""><!--天猫图标 -->
  143. <span>店铺:</span>
  144. <a href="">maling梅林旗舰店</a>
  145. <img src="../../static/images/shopingcart/wangwang.jpg" alt=""><!--旺旺图标 -->
  146. </div>
  147. <!--商品信息区-->
  148. <div class="goods">
  149. <input type="checkbox" name="price" id="price" value="13.9" checked ><!--商品复选框-->
  150. <!--商品图片 -->
  151. <a href="">
  152. <img src="../../static/images/shopingcart/guantou1.jpg" alt="">
  153. </a>
  154. <!--商品具体信息及下方信用图标-->
  155. <div>
  156. <a>梅林糖水荔枝罐头650g 果肉饱满夏季休闲水果沙拉饮料蛋糕甜点</a>
  157. <!--商品资质图片-->
  158. <div class="img">
  159. <img src="../../static/images/shopingcart/xcard.png" alt=""><!-- 信用-->
  160. <a href=""><img src="../../static/images/shopingcart/qitian.png" alt=""></a><!-- 七天-->
  161. <a href=""><img src="../../static/images/shopingcart/baozhang.png" alt=""></a><!-- 保障-->
  162. </div>
  163. </div>
  164. <!--单价-->
  165. <span>¥13.90</span>
  166. <!--数量输入框-->
  167. <input type="number" value="1" step="1">
  168. <!--总价-->
  169. <span>¥13.90</span>
  170. <!--删除 -->
  171. <a>删除</a>
  172. </div>
  173. <div class="goods">
  174. <input type="checkbox" name="price" id="price" value="13.9" checked ><!--商品复选框-->
  175. <!--商品图片 -->
  176. <a href="">
  177. <img src="../../static/images/shopingcart/guantou2.jpg" alt="">
  178. </a>
  179. <!--商品具体信息及下方信用图标-->
  180. <div>
  181. <a>上海梅林糖水黄桃水果罐头650g新鲜水果沙拉蛋糕甜点烘焙食品材料</a>
  182. <!--商品资质图片-->
  183. <div class="img">
  184. <img src="../../static/images/shopingcart/xcard.png" alt=""><!-- 信用-->
  185. <a href=""><img src="../../static/images/shopingcart/qitian.png" alt=""></a><!-- 七天-->
  186. <a href=""><img src="../../static/images/shopingcart/baozhang.png" alt=""></a><!-- 保障-->
  187. </div>
  188. </div>
  189. <!--单价-->
  190. <span>¥13.90</span>
  191. <!--数量输入框-->
  192. <input type="number" value="1" step="1">
  193. <!--总价-->
  194. <span>¥13.90</span>
  195. <!--删除 -->
  196. <a>删除</a>
  197. </div>
  198. </div>
  199. </div>
  200. <!--购物车清单底部-->
  201. <div class="cartfooter">
  202. <!--底部前段商品选择区-->
  203. <ul>
  204. <li>
  205. <input type="checkbox" name="all" id="allbottom">
  206. </li>
  207. <li><label for="allbottom">全选</label></li>
  208. <li><a href="">删除</a></li>
  209. <li><a href="">移入收藏夹</a></li>
  210. <li><a href="">分享</a></li>
  211. </ul>
  212. <!--底部后端结算信息-->
  213. <ul>
  214. <li>
  215. <a href="">已选商品<span>3</span></a>
  216. </li>
  217. <li>合计(不含运费):</li>
  218. <li>¥283.60</li>
  219. </ul>
  220. <button>结算</button>
  221. </div>
  222. </div>
  223. <!--引入公共页脚组件-->
  224. <div class="public-footer">
  225. <ul>
  226. <li><a href="">简介</a></li>
  227. <li><a href="">联系我们</a></li>
  228. <li><a href="">招聘信息</a></li>
  229. <li><a href="">友情链接</a></li>
  230. <li><a href="">用户服务协议</a></li>
  231. <li><a href="">隐私权声明</a></li>
  232. <li><a href="">法律投诉声明</a></li>
  233. </ul>
  234. <span>LOGO</span>
  235. <div>
  236. <p>2019 fengniao.com. All rights reserved.安徽闹着玩有限公司(无聊网)版权所有</p>
  237. <p>皖ICP证15110号 京ICP备14323013号-2 皖公网安备110108024357788号</p>
  238. <p>违法和不良信息举报电话:0551-1234567 举报邮箱:admin@baidu.com</p>
  239. </div>
  240. <div>
  241. <span>关注公众号</span>
  242. <img src="../../static/images/erwei-code.png" alt="">
  243. </div>
  244. </div>
  245. </body>
  246. </html>

4.2CSS部分

header

  1. @import "../reset.css";
  2. .public-header {
  3. width: 100%;
  4. height: 44px;
  5. padding: 0 20px;
  6. box-sizing: border-box;
  7. background-color: black;
  8. display: flex;
  9. flex-direction: row;
  10. flex-wrap: nowrap;
  11. align-items: center;
  12. }
  13. .public-header a {
  14. color: white;
  15. padding: 0 10px;
  16. line-height: 44px;
  17. font-size: 13px;
  18. }
  19. .public-header > a:hover {
  20. background-color: white;
  21. color: black;
  22. }
  23. .public-header span {
  24. margin-left: auto;
  25. }
  26. .public-header i {
  27. margin-right: 10px;
  28. font-size: 13px;
  29. }

main(shop-shopingcart)

  1. @import "../../public/reset.css";
  2. @import "../../public/public_header/public_header.css";
  3. @import "../../public/public_footer/public_footer.css";
  4. body {
  5. background-color: white;
  6. }
  7. .shop-shopingcart {
  8. width: 1200px;
  9. margin: 20px auto;
  10. display: flex;
  11. flex-direction: column;
  12. flex-wrap: nowrap;
  13. }
  14. /*标题区样式设置开始*/
  15. /*设置该区域整体样式:宽、高、加上底边、为弹性容器、主轴为纵轴、不换行*/
  16. .shop-shopingcart .title {
  17. width: 1200px;
  18. height: 33px;
  19. border-bottom: 2px solid #e6e6e6 ;
  20. display: flex;
  21. flex-direction: row;
  22. flex-wrap: nowrap;
  23. }
  24. /*设置标题区前半段商品信息统计区无序列表样式为弹性容器、横向排列、不换行*/
  25. .shop-shopingcart .title ul {
  26. display: flex;
  27. flex-direction: row;
  28. flex-wrap: nowrap;
  29. }
  30. /*设置列表项的宽高*/
  31. .shop-shopingcart .title li {
  32. /*width: 134px;*/
  33. height: 33px;
  34. font-size: 16px;
  35. color: #3c3c3c;
  36. text-align: center;
  37. }
  38. /*设置信息统计区第一个列表项:全部商品 样式*/
  39. .shop-shopingcart .title li:nth-of-type(1) a {
  40. padding-left: 15px;
  41. padding-right: 30px;
  42. }
  43. /*设置信息统计区第二个列表项:降价商品 样式,并设置左右边框*/
  44. .shop-shopingcart .title li:nth-of-type(2) a{
  45. padding: 0 30px;
  46. border-left: 1px solid gray;
  47. border-right: 1px solid gray;
  48. box-sizing: border-box;
  49. }
  50. /*设置信息统计区第三个列表项:库存紧张 的样式*/
  51. .shop-shopingcart .title li:nth-of-type(3) a{
  52. padding: 0 30px;
  53. }
  54. /*设置信息统计区中所有的信息统计标题字体加粗*/
  55. .shop-shopingcart .title a span:first-of-type{
  56. font-weight: bolder;
  57. }
  58. /*设置信息统计区中所有信息统计数字字体为正常值*/
  59. .shop-shopingcart .title a span:last-of-type {
  60. color: #f40;
  61. margin-left: 5px;
  62. font-weight: normal;
  63. }
  64. /*设置信息统计区第一个区块字体为红色,下边有红色底边*/
  65. .shop-shopingcart .title li:nth-of-type(1) {
  66. border-bottom: 2px solid #f40;
  67. }
  68. .shop-shopingcart .title li:nth-of-type(1) a{
  69. color: #f40;
  70. }
  71. /*设置标题区后半段的结算区靠右*/
  72. .shop-shopingcart .title > div {
  73. margin-left: auto;
  74. height: 33px;
  75. font-size: 12px;
  76. }
  77. /*设置结算价钱的颜色和样式*/
  78. .shop-shopingcart .title > div span:nth-of-type(2) {
  79. color: #f40;
  80. font-weight: 700;
  81. }
  82. /*设置结算按钮的样式*/
  83. .shop-shopingcart .title button {
  84. width: 55px;
  85. background-color: #f40;
  86. color: white;
  87. border-radius: 2px;
  88. border: none;
  89. font-size: 12px;
  90. line-height: 25px;
  91. }
  92. /*标题区样式设置完毕*/
  93. /*商品清单表头样式设置开始*/
  94. .shop-shopingcart .thead {
  95. display: grid;
  96. grid-template-columns: 45px 90px 615px 120px 120px 105px 105px;
  97. grid-template-rows: 50px;
  98. /*grid-template-areas: 'check label info up num total op';*/
  99. align-items: center;
  100. }
  101. .shop-shopingcart .thead input {
  102. margin: 0 15px;
  103. }
  104. .shop-shopingcart .thead label {
  105. margin-left: -5px;
  106. }
  107. .shop-shopingcart .thead input:hover,.shop-shopingcart .thead label:hover{
  108. cursor: pointer;
  109. }
  110. .shop-shopingcart .thead span:first-of-type{
  111. padding-right: 315px;
  112. box-sizing: border-box;
  113. }
  114. /*清单主体区样式设置*/
  115. .shop-shopingcart .cartinfo {
  116. width: 1200px;
  117. display: flex;
  118. flex-direction: column;
  119. flex-wrap: nowrap;
  120. }
  121. /*商品标签样式设置*/
  122. .shop-shopingcart .goodsinfo {
  123. width: 1200px;
  124. display: flex;
  125. flex-direction: column;
  126. flex-wrap: nowrap;
  127. }
  128. /*店铺名称样式设置*/
  129. .shop-shopingcart .shop {
  130. height: 38px;
  131. padding-left: 15px;
  132. font-size: 12px;
  133. line-height: 38px;
  134. display: flex;
  135. }
  136. /*店铺复选框样式设置*/
  137. .shop-shopingcart .shop input {
  138. display: inline-block;
  139. width: 15px;
  140. height: 15px;
  141. align-self: center;
  142. }
  143. /*天猫图标样式*/
  144. .shop-shopingcart .shop img:first-of-type {
  145. width: 16px;
  146. height: 16px;
  147. border-radius: 2px;
  148. align-self: center;
  149. margin-left: 10px;
  150. margin-right: 10px;
  151. }
  152. /*旺旺图标样式*/
  153. .shop-shopingcart .shop img:last-of-type {
  154. width: 20px;
  155. height: 20px;
  156. border-radius: 2px;
  157. align-self: center;
  158. }
  159. /*店名链接样式*/
  160. .shop-shopingcart .shop a {
  161. font-size: 12px;
  162. line-height: 38px;
  163. }
  164. .shop-shopingcart .goodsinfo {
  165. margin-bottom: 15px;
  166. }
  167. /*货物详细清单样式设置*/
  168. .shop-shopingcart .goods {
  169. display: grid;
  170. grid-template-columns: 45px 90px 615px 120px 120px 105px 105px;
  171. grid-template-rows: 130px;
  172. grid-template-areas: 'check pic info up num total op';
  173. padding-top:15px;
  174. box-sizing: border-box;
  175. align-items: start;
  176. border: 1px solid #aaa;
  177. background-color: #fcfcfc;
  178. }
  179. /*货物详细清单复选框样式*/
  180. .shop-shopingcart .goods > input {
  181. justify-self: end;
  182. width: 15px;
  183. height: 15px;
  184. }
  185. .shop-shopingcart .goods > div{
  186. height: 80px;
  187. padding-right: 315px;
  188. box-sizing: border-box;
  189. display: flex;
  190. }
  191. /*设置货物详细清单中货物图片链接的样式*/
  192. .shop-shopingcart .goods > a:first-of-type {
  193. margin-left: 5px;
  194. }
  195. /*设置货物详细清单中文字说明信息部分的样式*/
  196. .shop-shopingcart .goods > div {
  197. display: flex;
  198. flex-direction: column;
  199. justify-content: space-between;
  200. }
  201. .shop-shopingcart .goods span:first-of-type {
  202. color: #3c3c3c;
  203. font-weight: 700;
  204. }
  205. .shop-shopingcart .goods span:last-of-type {
  206. color: #f40;
  207. font-weight: 700;
  208. }
  209. .shop-shopingcart .goods input:last-of-type {
  210. width: 39px;
  211. height: 15px;
  212. justify-self: start;
  213. }
  214. /*设置被选中商品的背景色*/
  215. .shop-shopingcart .goodsinfo:nth-of-type(1) .goods {
  216. background-color:#fff8e1;
  217. }
  218. .shop-shopingcart .goodsinfo:nth-of-type(3) .goods {
  219. background-color:#fff8e1;
  220. }
  221. /*底部样式设置开始*/
  222. .shop-shopingcart .cartfooter {
  223. width: 1200px;
  224. height: 50px;
  225. font-size: 8px;
  226. background-color: #e5e5e5;
  227. display: flex;
  228. flex-direction: row;
  229. flex-wrap: nowrap;
  230. margin:20px 0;
  231. justify-content: space-between;
  232. }
  233. .shop-shopingcart .cartfooter ul {
  234. display: flex;
  235. flex-direction: row;
  236. flex-wrap: nowrap;
  237. align-items: center;
  238. /*justify-content: space-between;*/
  239. }
  240. .shop-shopingcart .cartfooter ul li {
  241. font-size: 13px;
  242. color: #404040;
  243. }
  244. .shop-shopingcart .cartfooter ul:first-of-type li:first-of-type {
  245. padding-left: 5px;
  246. }
  247. .shop-shopingcart .cartfooter ul:first-of-type li:nth-of-type(2) {
  248. margin-left: -22px;
  249. }
  250. .shop-shopingcart .cartfooter li {
  251. margin-right:25px;
  252. }
  253. .shop-shopingcart .cartfooter ul:last-of-type a span {
  254. color: #f40;
  255. font-size: 18px;
  256. font-weight: 700;
  257. padding: 0 5px;
  258. }
  259. .shop-shopingcart .cartfooter ul:last-of-type {
  260. margin-left: auto;
  261. }
  262. .shop-shopingcart .cartfooter ul:last-of-type li:nth-of-type(3) {
  263. color: #f40;
  264. font-size: 22px;
  265. font-weight: 400;
  266. padding: 0 5px;
  267. }
  268. .shop-shopingcart .cartfooter button {
  269. width: 120px;
  270. height: 50px;
  271. background-color: #f40;
  272. color: white;
  273. border-radius: 3px;
  274. border:none;
  275. margin-right: 0;
  276. }

footer

  1. @import "../../public/reset.css";
  2. a {
  3. color: #959ba2;
  4. padding: 5px 15px;
  5. }
  6. .public-footer {
  7. width: 100%;
  8. height: 250px;
  9. background-color: #282c31;
  10. color: #959ba2;
  11. padding: 30px;
  12. box-sizing: border-box;
  13. display: grid;
  14. grid-template-columns:130px 550px 400px;
  15. grid-template-rows: 30px 120px;
  16. grid-template-areas:'link link pic' 'logo info pic';
  17. justify-content: center;
  18. }
  19. .public-footer ul {
  20. grid-area: link;
  21. display: flex;
  22. flex-flow: row nowrap;
  23. height: 24px;
  24. }
  25. .public-footer span:first-of-type {
  26. grid-area: logo;
  27. font-size: 30px;
  28. align-self: center;
  29. }
  30. .public-footer div:nth-of-type(1) {
  31. grid-area: info;
  32. }
  33. .public-footer div:nth-of-type(1) p {
  34. height: 40px;
  35. line-height: 40px;
  36. }
  37. .public-footer > div:nth-of-type(2){
  38. grid-area: pic;
  39. padding-left: 40px;
  40. box-sizing: border-box;
  41. border-left: 2.5px solid #000000;
  42. display: flex;
  43. width: 400px;
  44. flex-direction: column;
  45. align-items: start;
  46. }
  47. .public-footer div:nth-of-type(2) span {
  48. font-size: 13px;
  49. width: 360px;
  50. padding-left: 20px;
  51. box-sizing: border-box;
  52. }
  53. .public-footer div:nth-of-type(2) img{
  54. width: 110px;
  55. height: 110px;
  56. margin-top: 10px;
  57. }

5.整体效果图

6.小结

6.1作业完成过程中对整体把握不够,布局分析还不够细致深入,各类布局的属性要求还不够清楚,比如说中间的两个绿框是可以合并完成的,造成了代码冗余,耗费了大量的时间。

6.2页面分析中第一个绿框左边部分信息统计栏鼠标滑过后整体变色的效果还没有完全实现。

6.3复选框的大小不会调节,始终达不到15*15的目标网页效果。

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:完成的很出色, 写了半天吧
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post