移动 WEB 开发之 阿里百秀移动端页面制作
一、技术选型

二、需求分析
1.页面布局分析

2. 屏幕划分

三、页面制作
1. 项目前期准备
- 搭建项目结构

- 创建 html 骨架结构以及引入相关样式
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
<!-- 引入bootstrap 样式文件 -->
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
<!-- 引入我们自己的首页样式文件 -->
<link rel="stylesheet" href="css/index.css">
<title>Document</title>
</head>
2. container 宽度修改
index.css
/* 修改container最大宽度为 1280 */
@media screen and (min-width:1280px){
.container {
width: 1280px;
}
}
3. 首页布局
index.html
<div class="container">
<div class="row">
<header class="col-md-3">左侧</header>
<article class="col-md-7">中间</article>
<aside class="col-md-2">右侧</aside>
</div>
</div>

4. logo制作
index.html
<header class="col-md-3">
<div class="logo">
<a>
<img src="data:images/logo.png"/>
</a>
</div>
</header>
index.css
/* header 左侧部分 */
.logo{
background-color: #429ad9;
}

我们发现左侧是有padding值的


如果我们不想要padding-left,可以给header设置或者再添加一个类,记住不能给col-md-3设置,不然后面也会相应的被设置
header{
padding-left: 0!important;
}

存在的问题,当屏幕缩放时,图片就会显示不全了

解决方法:让图片的宽度与父级一样宽,实现自适应的缩放效果
.logo img {
width: 100%;
}

5. nav 内容制作
index.html
<div class="nav">
<ul>
<li><a href="#" >生活馆</a></li>
<li><a href="#" >自然汇</a></li>
<li><a href="#" >科技湖</a></li>
<li><a href="#" >奇趣事</a></li>
<li><a href="#" >美食节</a></li>
</ul>
</div>
index.html
index.css
ul {
list-style-type: none;
margin: 0;
padding: 0;
}
a {
color: #666;
text-decoration: none;
}
a:hover {
text-decoration: none;
}
/* nav部分 */
.nav {
background-color: #eee;
border-bottom: 1px solid #ccc;
}
.nav a {
display: block;
height: 50px;
line-height: 50px;
padding-left: 30px;
font-size: 16px;
}
.nav a:hover {
background-color: #fff;
color: #333;
}

6. nav 中引入字体图标
<li><a href="#" class="glyphicon glyphicon-camera" >生活馆</a></li>

字体图标位置不对,需要调整一下字体图标位置
.nav a::before {
vertical-align: middle;
padding-right: 5px;
}

index.html
<div class="nav">
<ul>
<li><a href="#" class="glyphicon glyphicon-camera" >生活馆</a></li>
<li><a href="#" class="glyphicon glyphicon-picture">自然汇</a></li>
<li><a href="#" class="glyphicon glyphicon-phone">科技湖</a></li>
<li><a href="#" class="glyphicon glyphicon-th" >奇趣事</a></li>
<li><a href="#" class="glyphicon glyphicon-glass" >美食节</a></li>
</ul>
</div>

7. 新闻模块布局
index.html
<article class="col-md-7">
<!-- 新闻模块 -->
<div class="news">
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
</div>
</article>
index.css
/* 中间的新闻模块 */
.news li{
float:left;
width: 25%;
height: 128px;
}
.news li:nth-child(1){
width: 50%;
background-color: pink;
height: 266px;
}

8. news 中的 第1 模块
想要第一个与后面的盒子有个 padding-right值,可以给 li 设置padding-right值,然后给里面的 a 设置宽高为 100%
.news li{
float:left;
width: 25%;
height: 128px;
padding-right: 10px;
}
.news li a {
width: 100%;
height: 100%;
background-color: purple;
display: block;
}

index.html
<li>
<a href="#">
<img src="upload/lg.png" alt="">
<p>阿里百秀</p>
</a>
</li>
index.css
.news li a img {
width: 100%;
height: 100%;
}
.news li a p {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 41px;
padding: 5px 10px;
/* bootstrap默认的p标签有下 外边距,所以需要把P的外边距去掉 */
margin-bottom: 0;
background: rgba(0, 0, 0, .5);
font-size: 12px;
color: #fff;
}
.news li:nth-child(1){
width: 50%;
/* background-color: pink; */
height: 266px;
}
.news li:nth-child(1) p {
line-height: 41px;
font-size: 20px;
padding: 0 10px;
}

8. news 第2345模块
<div class="news">
<ul>
<li>
<a href="#">
<img src="upload/1.jpg" alt="">
<p>奇了 成都一小区护卫长得像马云 市民纷纷求合影</p>
</a>
</li>
<li>
<a href="#">
<img src="upload/2.jpg" alt="">
<p>奇了 成都一小区护卫长得像马云 市民纷纷求合影</p>
</a>
</li>
<li>
<a href="#">
<img src="upload/3.jpg" alt="">
<p>奇了 成都一小区护卫长得像马云 市民纷纷求合影</p>
</a>
</li>
<li>
<a href="#">
<img src="upload/4.jpg" alt="">
<p>奇了 成都一小区护卫长得像马云 市民纷纷求合影</p>
</a>
</li>
</ul>
</div>

如图,需要给 每个 li 添加一个 margin-botttom
index.css
.news li{
float:left;
width: 25%;
height: 128px;
padding-right: 10px;
margin-bottom: 10px;
}

9.发表模块布局
index.html
<!-- 发表模块 -->
<div class="publish">
<div class="row">
<div class="col-sm-9">abc</div>
<div class="col-sm-3">123</div>
</div>
</div>

给 publish 添加 border-top
/* 发表模块 */
.publish{
border-top: 1px solid red;
}
当给 publish添加 border-top的时候,发现并没有显示出来,其实线时跑到最上面去了,上面的盒子,里面的孩子时浮动的,而且上面盒子没有给定高度,所以说是有问题的,那么我们就要给上面的news盒子清除浮动,在 bootstrap中已经为我们写好了清除浮动的类 就叫
clearfix
<div class="news clearfix">

10.发表publish 左侧内容制作
bootstrap中设置了一些字体大小样式
排版

<div class="col-sm-9">
<h3>生活馆 关于指甲的10个健康知识 你知道几个?</h3>
</div>

辅助类修改文本颜色

<div class="col-sm-9">
<h3>生活馆 关于指甲的10个健康知识 你知道几个?</h3>
<p class="text-muted hidden-xs">alibaixiu 发布于 2015-11-23</p>
<p class="hidden-xs">指甲是经常容易被人们忽略的身体部位, 事实上从指甲的健康状况可以看出一个人的身体健康状况, 快来看看10个暗藏在指甲里知识吧!</p>
<p class="text-muted">阅读(2417)评论(1)赞 (18) <span class="hidden-xs">标签:健康 / 感染 / 指甲 / 疾病 / 皮肤 / 营养 / 趣味生活</span>
</p>
</div>

10.发表publish 右侧内容制作
index.html
<div class="col-sm-3 pic">
<img src="upload/2.jpg"/>
</div>
index.css
.publish .row {
border-bottom: 1px solid #ccc;
padding: 10px 0;
}
.pic {
margin-top: 10px;
}
.pic img {
width: 100%;
}

11. asider 内容制作
index.html
<!-- aside部分 -->
<aside class="col-md-3">
<a href="#" class="banner">
<img src="upload/zgboke.jpg" alt="">
</a>
<a href="#" class="hot">
<span class="btn btn-primary">热搜</span>
<h4 class="text-primary">欢迎加入中国博客联盟</h4>
<p>这里收录国内各个领域的优秀博客,是一个全人工编辑的开放式博客联盟交流和展示平台......</p>
</a>
</aside>
index.css
/* aside部分 */
.banner img {
width: 100%;
}
.hot {
display: block;
margin-top: 20px;
padding: 0 20px 20px;
border: 1px solid #ccc;
}
/* 在bootstrap中有圆角边框,我们可以设置成自己想要的样式 */
/* 将span 的border-radius去掉 */
.hot span {
border-radius: 0;
margin-bottom: 20px;
}
.hot p {
font-size: 12px;
}
bootstrap中,可以给任意元素添加按钮的样式,并且我们可以在它的基础上去修改成我们想要的样式


四、页面进行响应式
1. logo响应式制作

当我们对页面进行缩放时,发现logo的图片也跟着缩放,但是我们不需要图片缩放,图片就保持原来的大小,让图片水平居中就行
.logo img {
/* width: 100%; */
max-width: 100%;
}

让图片居中对齐
.logo img {
/* width: 100%; */
max-width: 100%;
display: block;
margin: 0 auto;
}

在超小屏幕下,logo图片里的文字就显得有点大
当我们进入超小屏幕下, logo里面的图片就会隐藏起来,取而代之的是我们准备好的一个文本
1.让logo图片在超小屏幕下隐藏
<div class="logo">
<a>
<img src="data:images/logo.png" class="hidden-xs"/>
</a>
</div>

2.我们事先准备一个盒子装文本,它平时是隐藏的,只有在超小屏幕下才显示
<div class="logo">
<a>
<img src="data:images/logo.png" class="hidden-xs"/>
<span class="visible-xs">阿里百秀</span>
</a>
</div>
.logo span {
display: block;
height: 50px;
line-height: 50px;
color: #fff;
font-size: 18px;
text-align: center;
}

2.nav 响应式制作
/* 当我们进入小屏幕的时候,然nav里面的 li 都浮动起来,并且每个li 的宽度为20%; */
/* 并且让article有一个marin-top */
@media screen and (max-width:991px){
.nav li{
float: left;
width: 20%;
}
article {
margin-top: 10px;
}
}
/* 当我们进入超小屏幕的时候,让 li的文字变得小一些 */
@media screen and (max-width:767px){
.nav li a{
font-size: 12px;
}
}

3. news 响应式布局
/* 当我们进入超小屏幕的时候,让 li的文字变得小一些 */
@media screen and (max-width:767px){
.nav li a{
font-size: 12px;
/* 在超小屏幕下nav 中的 a 就看不到了,所以需要设置一下 padding-left */
padding-left: 0;
}
/* 当我们进入超小屏幕下 让 news 第一个li 宽度为100% 剩下的小 li 各50% */
.news li:nth-child(1){
width: 100%!important;
}
.news li{
width: 50%!important;
}
}

4. publish 响应式布局
在超小屏幕下 publish中的右侧图片不需要显示以及一些文字隐藏
<div class="row">
<div class="col-sm-9">
<h3>生活馆 关于指甲的10个健康知识 你知道几个?</h3>
<p class="text-muted hidden-xs">alibaixiu 发布于 2015-11-23</p>
<p class="hidden-xs">指甲是经常容易被人们忽略的身体部位, 事实上从指甲的健康状况可以看出一个人的身体健康状况, 快来看看10个暗藏在指甲里知识吧!</p>
<p class="text-muted">阅读(2417)评论(1)赞 (18) <span class="hidden-xs">标签:健康 / 感染 / 指甲 / 疾病 / 皮肤 / 营养 / 趣味生活</span></p>
</div>
<div class="col-sm-3 pic hidden-xs">
<img src="upload/2.jpg"/>
</div>
</div>
超小屏幕下 让 publish中的 h3 文字小一些
.news li{
width: 50%!important;
}
.publish h3 {
font-size: 14px;
}

移动 WEB 开发之 阿里百秀移动端页面制作的更多相关文章
- 阿里百秀后台管理项目笔记 ---- Day01
摘要 在此记录一下阿里百秀项目的教学视频的学习笔记,部分页面被我修改了,某些页面效果会不一样,基本操作是一致的,好记性不如烂笔头,加油叭!!! step 1 : 整合全部静态页面 将静态页面全部拷贝到 ...
- TERSUS无代码开发(笔记05)-简单实例电脑端页面设计
案例笔记电脑端页面设计 1.新建项目(请假管理qjgl) 2.开发软件界面介绍(常用的功能按键) 3.目录中显示元件对象 4.对元件对象的操作主要方式是双击(双击哪个元件, ...
- python web开发c6——阿里云上ubuntu+flask+gunicorn+nginx服务器部署(一)简单测试
简述 Nginx在服务器部署中的作用 请求通过Nginx实现反向代理,将请求提交给代理服务器.本文中只用了一台服务器,所以是代理到本机. gunicorn的作用 作为服务器代码的容器.接收Nginx的 ...
- 移动Web开发-WebApp(flex布局+移动端导航案例)
实际开发中的像素:css像素设备像素比dpr=设备像素/css像素标清屏dpr=1 高清屏dpr=2缩放改变的是css像素大小PPI(每英寸的物理像素点)=根号(屏幕横向分辨率²+屏幕纵向分辨率²)/ ...
- 移动web开发之布局
移动web开发流式布局 1.0 移动端基础 1.1浏览器现状 PC端常见浏览器:360浏览器.谷歌浏览器.火狐浏览器.QQ浏览器.百度浏览器.搜狗浏览器.IE浏览器. 移动端常见浏览器:UC浏览器,Q ...
- Web开发技术的演变
原文出处: WildFly 欢迎分享原创到伯乐头条 受到好文<Web开发的发展史>(英文)激发的灵感,写下我对web开发技术的认识. 1. 静态页面时代 大学时候,上机还得换卡穿拖鞋, ...
- Web开发——HTML基础
文档资料参考: 参考:MDN官网 参考:http://www.runoob.com,W3School 参考:https://developer.mozilla.org/zh-CN/docs/Learn ...
- 转Web开发的发展史---Web开发技术的演变
转自:http://blog.csdn.net/zzzkk2009/article/details/9849431 在接下来的几个月时间里,我打算写一系列关于完整web开发的文章.这第一篇文章虽然有所 ...
- PHP 系列:PHP Web 开发基础
PHP是动态类型的Web开发的脚本语言,PHP以页面文件作为加载和运行的单元,PHP现在有了Composer作为开发包管理. 1.使用Composer管理依赖 自从.NET开发用了Nuget管理程序集 ...
- PHP. 01. C/S架构、B/S架构、服务器类型、服务器软件、HTTP协议/服务器、数据库、服务器web开发、PHP简介/常见语法、PHPheader()、 PHP_POST/GET数据获取和错误处理
C/S架构 Client/Server 指客户端,服务器 架构的意思 优点:性能性高:可将一部分的计算工作放在客户端上,服务器只需处理出局即可 洁面炫酷,可使用更多系统提供的效果 缺点:更新软件需 ...
随机推荐
- 基于案例分析 MySQL Group Replication 的故障检测流程
故障检测(Failure Detection)是 Group Replication 的一个核心功能模块,通过它可以及时识别集群中的故障节点,并将故障节点从集群中剔除掉.如果不将故障节点及时剔除的话, ...
- webpack中 hash chunkhash
hash一般是结合CDN缓存来使用,通过webpack构建之后,生成对应文件名自动带上对应的MD5值.如果文件内容发生改变的话,那么对应文件hash值也会改变,对应的HTML引用的URL地址也会改变, ...
- RAID5的配置流程及模拟硬盘损坏
个人名片: 对人间的热爱与歌颂,可抵岁月冗长 Github:念舒_C.ying CSDN主页️:念舒_C.ying 个人博客 :念舒_C.ying RAID5的配置流程及模拟硬盘损坏 1.在虚拟机中 ...
- 基于python的数学建模---分支定界算法
zip函数 a = [1,2,3,4]b = [5,6,7,8]i = sum(x * y for x, y in zip(a, b))print(i)70 floor and ceil 函数 imp ...
- [排序算法] 归并排序 (C++)
归并排序解释 归并排序 Merge Sort 是典型的分治法的应用,其算法步骤完全遵循分治模式. 分治法思想 分治法 思想: 将原问题分解为几个规模较小但又保持原问题性质的子问题,递归求解这些子问题, ...
- 微信公众号调试经常报access_token is invalid or not latest rid
是因为我没有使用中控服务器,所以服务器上使用同一个appid和secret获取了access_token 调试的时候再重新获取了一个新的access_token,所以导致微信服务器发放了新的acces ...
- ubuntu 22.04安装多个gcc
sudo apt install gcc-9 g++-9 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90 - ...
- 7. PyQt5 中的多线程的使用(下)
专栏地址 ʅ(‾◡◝)ʃ 紧接着上一节, 这一节具体介绍 图形化界面 如何给 任务线程传递数据 7.1 from form import Ui_Form from PyQt5.QtWidgets im ...
- day02 数据类型 & 运算符
day02 数据类型 基本数据类型 共有四类八种 1)整数类型 byte short int long byte: 字节 bit比特,1bit = 1二进制位 ,byte占8位 [-128,128 ...
- Python3.9.5安装
参考教程1:https://www.cnblogs.com/xiaoyanhuo/p/16362875.html 参考教程2:https://www.cnblogs.com/feng18/p/5854 ...