1. 前言

  通过使用 HTML + CSS 编写一个简易商城首页。 如图:

2. 布局思路

  通过页面分析,大致可以决定页面的布局分为 5 大板块。

接下来,可以先定义页面的布局:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="css/main.css">
<link href="https://cdn.bootcss.com/normalize/8.0.1/normalize.min.css" rel="stylesheet">
<title>蘑菇街 - 你的剁手街</title>
</head>
<body>
<div class="top-nav"></div>
<div class="header"></div>
<div class="main-promote"></div>
<div class="cat-promote"></div>
<div class="footer"></div> </body>
</html>

通过定义 5 个 div 将页面布局基本定义下来,接下来还是先定义页面详细的布局内容:

页面布局基本完成了, 接下来就是补充 css 样式。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="css/main.css">
<link href="https://cdn.bootcss.com/normalize/8.0.1/normalize.min.css" rel="stylesheet">
<title>蘑菇街 - 你的剁手街</title>
</head>
<body>
<div class="top-nav">
<div class="container clearf">
<div class="left">
<a href="" class="item">item</a>
</div>
<div class="right">
<a href="" class="item">item</a>
<a href="" class="item">item</a>
<a href="" class="item">item</a>
<a href="" class="item">item</a>
</div>
</div>
</div>
<div class="header">
<div class="container clearf">
<div class="col-2">蘑菇街</div>
<div class="col-5">
<input type="text">
<button>搜索</button>
</div>
<div class="col-3">
<a href="" class="item">我的购物车</a>
</div>
</div>
</div>
<div class="main-promote">
<div class="container clearf">
<div class="col-2">
<div class="cat">
<div class="item">item / item</div>
<div class="item">item / item</div>
<div class="item">item / item</div>
<div class="item">item / item</div>
<div class="item">item / item</div>
<div class="item">item / item</div>
<div class="item">item / item</div>
<div class="item">item / item</div>
<div class="item">item / item</div>
<div class="item">item / item</div>
<div class="item">item / item</div>
</div>
</div>
<div class="col-6">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusamus accusantium aliquid asperiores culpa cupiditate delectus, deserunt dolore eaque magnam maiores minima minus molestiae nihil placeat quae quaerat quos velit voluptas.
</div>
<div class="col-2">
<div class="auth">
<div class="avatar"></div>
你好,欢迎剁手.
</div>
<div class="anno">
<div class="title">公告</div>
<div class="content">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Culpa dolor dolore maxime numquam quia, reprehenderit sint voluptatem? Cum dolorem illum laboriosam omnis reiciendis, ut. Asperiores deserunt laudantium nam repudiandae tempore?
</div>
</div>
</div>
</div>
</div>
<div class="cat-promote">
<div class="container clearf">
<div class="title">男装</div>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Autem natus quam quos. Consectetur consequatur deserunt iusto nostrum quidem! Cupiditate dolor est facere illo, ipsam nobis quibusdam vel! Amet, hic, repudiandae.
</div>
</div>
<div class="footer">
<div class="container clearf">
<a href="" class="item">item</a>
<a href="" class="item">item</a>
<a href="" class="item">item</a>
<a href="" class="item">item</a>
<div class="">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aliquid at atque, explicabo fugiat harum in odit sapiente. A blanditiis cum, delectus, esse hic odit porro quasi quisquam quos sunt, unde.</div>
</div>
</div> </body>
</html>

index.html

* {
background-color: rgba(0,0,0,.1);
} body {
line-height: 1.7;
font-size: 14px;
} .left {
float: left;
} .right {
float: right;
} .container {
max-width: 1080px;
margin: 0 auto;
} .clearf:before,
.clearf:after {
display: block;
content: '';
clear: both;
} .col-1,
.col-2,
.col-3,
.col-4,
.col-5,
.col-6,
.col-7,
.col-8,
.col-9 {
display: block;
float: left;
} .col-1 {
width: 10%;
}
.col-2 {
width: 20%;
}
.col-3 {
width: 30%;
}
.col-4 {
width: 40%;
}
.col-5 {
width: 50%;
}
.col-6 {
width: 60%;
}
.col-7 {
width: 70%;
}
.col-8 {
width: 80%;
}
.col-9 {
width: 90%;
}

main.css

3. 添加 CSS 样式及调整

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="css/main.css">
<link href="https://cdn.bootcss.com/normalize/8.0.1/normalize.min.css" rel="stylesheet">
<title>蘑菇街 - 你的剁手街</title>
</head>
<body>
<div class="top-nav">
<div class="container clearf">
<div class="left">
<a href="" class="item">首页</a>
</div>
<div class="right">
<a href="" class="item">我的订单</a>
<a href="" class="item">收藏夹</a>
<a href="" class="item">注册</a>
<a href="" class="item">登录</a>
</div>
</div>
</div>
<div class="header">
<div class="container clearf">
<div class="col-2 logo">蘑菇街</div>
<div class="col-5 search-bar">
<input type="text">
<button>搜索</button>
</div>
<div class="col-3 cart">
<a href="" class="item">我的购物车</a>
</div>
</div>
</div>
<div class="main-promote">
<div class="container clearf">
<div class="col-2 cat">
<div class="item">item / item</div>
<div class="item">item / item</div>
<div class="item">item / item</div>
<div class="item">item / item</div>
<div class="item">item / item</div>
<div class="item">item / item</div>
<div class="item">item / item</div>
<div class="item">item / item</div>
<div class="item">item / item</div>
</div>
<div class="col-6">
<div class="slider">
<img src="img/slider_01.png" alt="">
</div>
<div class="cat-promote">
<div class="col-5">
<img src="img/001.png" alt="">
</div>
<div class="col-5">
<img src="img/002.png" alt="">
</div>
</div>
</div>
<div class="col-2 info">
<div class="auth clearf">
<div class="avatar"></div>
你好,欢迎剁手.
</div>
<div class="anno">
<div class="title">公告</div>
<div class="content">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Culpa dolor dolore maxime numquam quia, reprehenderit sint voluptatem? Cum dolorem illum laboriosam omnis reiciendis, ut. Asperiores deserunt laudantium nam repudiandae tempore?
reprehenderit sint voluptatem? Cum dolorem illum laboriosam omnis reiciendis, ut. Asperiores deserunt laudantium nam repudiandae tempore?
</div>
</div>
</div>
</div>
</div> <div class="container clearf">
<div class="cat-promote">
<div class="title">男装</div>
<div class="content">
<div class="col-2 item">
<div class="card"></div>
</div>
<div class="col-3 item">
<div class="card"></div>
</div>
<div class="col-2 item">
<div class="card"></div>
</div>
<div class="col-3 item">
<div class="card"></div>
</div>
</div>
</div>
<div class="cat-promote">
<div class="title">女装</div>
<div class="content">
<div class="col-3 item">
<div class="card"></div>
</div>
<div class="col-2 item">
<div class="card"></div>
</div>
<div class="col-3 item">
<div class="card"></div>
</div>
<div class="col-2 item">
<div class="card"></div>
</div>
</div>
</div>
</div> <div class="footer">
<div class="container clearf">
<a href="" class="item">item</a>
<a href="" class="item">item</a>
<a href="" class="item">item</a>
<a href="" class="item">item</a>
<div class="">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aliquid at atque, explicabo fugiat harum in odit sapiente. A blanditiis cum, delectus, esse hic odit porro quasi quisquam quos sunt, unde.</div>
</div>
</div> </body>
</html>

index.html

* {
/*background-color: rgba(0,0,0,.1);*/
box-sizing: border-box;
transition: background-color 200ms;
} body {
line-height: 1.7;
font-size: 14px;
background-color: #f9f9f9;
} a {
text-decoration: none;
} img {
float: left;
width: 100%;
} .left {
float: left;
} .right {
float: right;
} .container {
max-width: 1080px;
margin: 0 auto;
} .clearf:before,
.clearf:after {
display: block;
content: '';
clear: both;
} .col-1,
.col-2,
.col-3,
.col-4,
.col-5,
.col-6,
.col-7,
.col-8,
.col-9 {
display: block;
float: left;
} .col-1 {
width: 10%;
}
.col-2 {
width: 20%;
}
.col-3 {
width: 30%;
}
.col-4 {
width: 40%;
}
.col-5 {
width: 50%;
}
.col-6 {
width: 60%;
}
.col-7 {
width: 70%;
}
.col-8 {
width: 80%;
}
.col-9 {
width: 90%;
} .top-nav {
background-color: #eeeeee;
} .top-nav .item {
display: inline-block;
color: #666;
padding: 6px 10px;
} .header {
padding: 20px;
} .header .logo {
font-size: 30px;
} .header .search-bar {
border: 2px solid #dd182b;
background-color: #dd182b;
} .header .search-bar input,
.header .search-bar button {
float: left;
padding: 10px;
border:;
outline:;
} .header .search-bar input {
width: 80%;
} .header .search-bar button {
width: 20%;
background-color: #dd182b;
color: #fff;
} .header .search-bar input:focus {
box-shadow: inset 0 0 2px 2px rgba(0,0,0,.2);
} .header .search-bar button:hover {
background-color: #ce1829;
} .header .cart {
text-align: center;
} .header .cart .item {
float: right;
width: 80%;
padding: 10px;
border: 2px solid #eee;
color: #dd182b; } .main-promote {
background-color: #dedede;
} .main-promote .cat {
background-color: #6e6568;
} .main-promote .cat .item {
padding: 14px 20px;
color: #fff;
} .main-promote .cat .item:hover {
background-color: rgba(0,0,0,.2);
} .main-promote .info {
padding: 10px;
background-color: #fff;
color: #888;
box-shadow: 0 1px 2px rgba(0,0,0,.1);
} .main-promote .info .avatar {
float: left;
display: inline-block;
height: 50px;
width: 50px;
border-radius: 50%;
background-color: #aaa;
margin-right: 10px;
margin-bottom: 10px;
} .cat-promote .title:before {
display: inline-block;
content: '';
height: 22px;
width: 5px;
background-color: #dd182b;
margin-right: 10px;
vertical-align: middle;
} .cat-promote .title {
font-size: 22px;
}
.cat-promote .content .item {
padding: 5px;
}
.cat-promote .content .card {
height: 300px;
background-color: #ccc;
border-radius: 4px; } .footer {
margin-top: 30px;
padding: 30px 0;
background-color: #eee;
text-align: center;
color: #999;
} .footer a {
color: #999;
}

main.css

4. 总结

  在编写 HTML 页面时,首先将页面整体的框架构建出来,不要一上来就写CSS,将整体的框架确定好了后,在进行小模块的编写。最后在通过css优化出来。

简易商城 [ html + css ] 练习的更多相关文章

  1. .NETCore 快速开发做一个简易商城

    介绍 上一篇介绍 <.NETCore 基于 dbfirst 体验快速开发项目>,讲得不太清楚有些多人没看懂.这次吸取教训,将一个简易商城做为案例,现实快速开发. 本案例用于演示或学习,不具 ...

  2. LayoutSimple简易响应式CSS布局框架

    开发这个css布局的目的是为了少做一些重复的工作,一是前端或多或少会开发一些很小的响应式项目, 二是UI设计的出来的界面总是各种布局各种样式,这个时候如果前端去使用Bootstrap或者Foundat ...

  3. javaweb和数据库的简易商城系统

    这是一个基于Javaweb和数据库的简易商城系统.为大二夏季小学期完成. 目录结构 主要功能截图为: 一.购买用户 1.首页(除此界面其余界面访问需要登录才能进入) 查看商品 添加购物车 查看购物车 ...

  4. 商城常用css分类代码

    如图: 原代码如下: <div class="allMerchan bgnone"> <h2 class="ttlm_category"> ...

  5. [转帖]2019 简易Web开发指南

    2019 简易Web开发指南     2019年即将到来,各位同学2018年辛苦了. 不管大家2018年过的怎么样,2019年还是要继续加油的! 在此我整理了个人认为在2019仍是或者将成为主流的技术 ...

  6. day113:MoFang:种植园商城页面&充值集成Alipay完成支付的准备工作

    目录 1.种植园商城页面初始化 2.规划商品种类并且构建关于商品的模型类 3.解决APP打包编译之后的跨域限制 4.商品列表后端接口实现 5.前端获取商品列表并显示 6.种植园点击充值允许用户选择充值 ...

  7. ECMall模板开发文档

    ECMall 模板开发文档 前 言 欢迎阅读 ECMall 模板制作教程,通过阅读本教程可快速上手 ECMall 模板的使用和制作. ECMall 模板制 作要求用户具备 XML . XHTML 和 ...

  8. mysql数据库-初始化sql建库建表-关联查询投影问题

    下面是一个简易商城的几张表的创建方式 drop database if exists shop ; create database shop CHARACTER SET 'utf8' COLLATE ...

  9. Metronic4.7.5 下载 HTML5 UI后台管理框架

    Metronic 是一套精美的响应式后台管理模板,基于强大的 Twitter Bootstrap 3.3.4 框架实现.Metronic 拥有简洁优雅的 Metro UI 风格界面,6 种颜色可选,7 ...

随机推荐

  1. Welcome to GnuPG 2.2

    Welcome to GnuPG 2.2 Installation Instructions Double click the Install package to install GnuPG 2.2 ...

  2. scrapy框架爬取开源中国项目大厅所有的发布项目。

    本文爬取的字段,项目名称,发布时间,项目周期,应用领域,最低报价,最高报价,技术类型 1,items中定义爬取字段. import scrapy class KaiyuanzhongguoItem(s ...

  3. 珠峰 - 郭永峰react课程 node es6 babel学习笔记

    npm install babel-cli -g //安装babel babel index.js -o a.js //等同于 babel index.js --out-file a.js 复制ind ...

  4. c#的参数调用

    c#的参数传递有三种方式:值传递,和c一样,引用传递,类似与c++,但形式不一样输出参数,这种方式可以返回多个值,这种有点像c中的指针传递,但其实不太一样.值传递不细说,c中已经很详细了引用传递实例如 ...

  5. [Codeforces 1251F]Red-White Fence

    Description 题库链接 给你 \(n\) 块白木板,\(k\) 块红木板,分别有各自的长度 \(h_i\).让你用这些木板组成一段围栏,要满足: 只用一块红木板,且所有白木板的长度均严格小于 ...

  6. ACM-ICPC 2018 南京赛区现场赛 K. Kangaroo Puzzle (思维+构造)

    题目链接:https://codeforc.es/gym/101981/attachments 题意:在 n * m 的平面上有若干个袋鼠和墙(1为袋鼠,0为墙),每次可以把所有袋鼠整体往一个方向移动 ...

  7. 时间戳显示为多少分钟前,多少天前的JS处理,JS时间格式化,时间戳的转换

    var dateDiff = function (timestamp) { // 补全为13位 var arrTimestamp = (timestamp + '').split(''); for ( ...

  8. 数论--扩展欧几里得exgcd

    算法思想 我们想求得一组\(x,y\)使得 \(ax+by = \gcd(a,b)\) 根据 \(\gcd(a,b) = \gcd(b,a\bmod b)\) 如果我们现在有\(x',y'\) 使得 ...

  9. .net解决大文件断点续传

    以ASP.NET Core WebAPI 作后端 API ,用 Vue 构建前端页面,用 Axios 从前端访问后端 API ,包括文件的上传和下载. 准备文件上传的API #region 文件上传  ...

  10. c语言中一种典型的排列组合算法

    c语言中的全排列算法和组合数算法在实际问题中应用非常之广,但算法有许许多多,而我个人认为方法不必记太多,最好只记熟一种即可,一招鲜亦可吃遍天 全排列: #include<stdio.h> ...