2.1设计
设计原型工具:axure
前端框架:Semantic UI
2.2页面开发-首页
2.2.1代码
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<!--移动端预览设置-->
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>首页</title>
<!--引入semantic框架 CDN方式-->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/semantic-ui@2.4.2/dist/semantic.min.css">
<!--引入自定义的CSS-->
<link rel="stylesheet" href="./static/css/me.css">
</head>
<body>
<!--导航-->
<nav class="ui inverted attached segment m-padded-tb-mini">
<!--整个容器用了inverted,内部的ui组件也要用-->
<div class="ui container">
<div class="ui inverted secondary stackable menu">
<h2 class="ui teal header item">Blog</h2>
<a href="#" class="m-item item m-mobile-hide"><i class="home icon"></i>首页</a>
<a href="#" class="m-item item m-mobile-hide"><i class="idea icon"></i>分类</a>
<a href="#" class="m-item item m-mobile-hide"><i class="tags icon"></i>标签</a>
<a href="#" class="m-item item m-mobile-hide"><i class="info icon"></i>关于我</a>
<div class="right m-item item m-mobile-hide">
<div class="ui icon inverted transparent input">
<input type="text" placeholder="Search...">
<i class="search link icon"></i>
</div>
</div>
</div>
</div>
<a href="#" class="ui menu toggle black icon button m-right-top m-mobile-show">
<i class="sidebar icon"></i>
</a>
</nav>
<!--中间内容-->
<div class="m-padded-tb-large">
<div class="ui container">
<div class="ui stackable grid">
<!--左边博客列表-->
<div class="eleven wide column">
<!--header-->
<div class="ui top attached m-padded-lr-large segment">
<div class="ui middle aligned two column grid">
<div class="column">
<h3 class="ui teal header">博客</h3>
</div>
<div class="right aligned column">
共<h2 class="ui orange header m-inline-block m-text-thin"> 14 </h2>篇
</div>
</div>
</div>
<!--content-->
<div class="ui attached m-padded-lr-large segment">
<div class="ui padded vertical segment m-padded-tb-large">
<div class="ui mobile reversed stackable grid">
<div class="eleven wide column">
<h3 class="ui header">疫情下的魔幻现实主义</h3>
<p class="m-text">所谓“魔幻现实主义”,就是看起来很魔幻,但实际上很现实。之所以认为这个世界太魔幻,是因为之前的认识不够现实。</p>
<div class="ui grid">
<div class="eleven wide column">
<div class="ui mini horizontal link list">
<div class="middle aligned item">
<img src="https://i.picsum.photos/id/1014/6016/4000.jpg" alt="" class="ui avatar image">
<div class="content"><a href="#" class="header">方一帆</a></div>
</div>
<div class="middle aligned item">
<i class="calendar icon"></i>2020-02-04
</div>
<div class="middle aligned item">
<i class="eye icon"></i>3412
</div>
</div>
</div>
<div class="middle aligned right aligned five wide column">
<a href="#" target="_blank" class="ui teal basic label m-padded-tb-tiny m-text-thin">认知升级</a>
</div>
</div>
</div>
<div class="five wide column">
<a href="#" target="_blank">
<img src="https://i.picsum.photos/id/1014/6016/4000.jpg" alt="" class="ui rounded image">
</a>
</div>
</div>
</div>
</div>
<!--footer-->
<div class="ui attached m-padded-lr-large segment">
<div class="ui middle aligned two column grid">
<div class="column">
<a href="#" class="ui mini teal basic button">上一页</a>
</div>
<div class="right aligned column">
<a href="#" class="ui mini teal basic button">下一页</a>
</div>
</div>
</div>
</div>
<!--右边的top-->
<div class="five wide column">
<!--分类-->
<div class="ui segments">
<div class="ui secondary segment">
<div class="ui two column grid">
<div class="column">
<i class="idea icon"></i>分类
</div>
<div class="right aligned column">
<a href="#" target="_blank">more<i class="angle double right icon"></i></a>
</div>
</div>
</div>
<div class="ui teal segment">
<div class="ui fluid vertical menu">
<a href="#" class="item">
学习日志
<div class="ui teal basic left pointing label">13</div>
</a>
<a href="#" class="item">
学习日志
<div class="ui teal basic left pointing label">13</div>
</a>
<a href="#" class="item">
学习日志
<div class="ui teal basic left pointing label">13</div>
</a>
<a href="#" class="item">
学习日志
<div class="ui teal basic left pointing label">13</div>
</a>
<a href="#" class="item">
学习日志
<div class="ui teal basic left pointing label">13</div>
</a>
<a href="#" class="item">
学习日志
<div class="ui teal basic left pointing label">13</div>
</a>
</div>
</div>
</div>
<!--标签-->
<div class="ui segments m-margin-top-large">
<div class="ui secondary segment">
<div class="ui two column grid">
<div class="column">
<i class="tags icon"></i>标签
</div>
<div class="right aligned column">
<a href="#" target="_blank">more<i class="angle double right icon"></i></a>
</div>
</div>
</div>
<div class="ui teal segment">
<a href="#" target="_blank" class="ui teal basic left pointing label m-margin-tb-tiny">
方法论<div class="detail">23</div>
</a>
<a href="#" target="_blank" class="ui teal basic left pointing label m-margin-tb-tiny">
方法论<div class="detail">23</div>
</a>
<a href="#" target="_blank" class="ui teal basic left pointing label m-margin-tb-tiny">
方法论<div class="detail">23</div>
</a>
<a href="#" target="_blank" class="ui teal basic left pointing label m-margin-tb-tiny">
方法论<div class="detail">23</div>
</a>
</div>
</div>
<!--最新推荐-->
<div class="ui segments m-margin-top-large">
<div class="ui secondary segment">
<i class="bookmark icon"></i>最新推荐
</div>
<div class="ui segment">
<a href="#" target="_blank" class="m-black m-text-thin">用户故事(user story)</a>
</div>
<div class="ui segment">
<a href="#" target="_blank" class="m-black m-text-thin">用户故事(user story)</a>
</div>
<div class="ui segment">
<a href="#" target="_blank" class="m-black m-text-thin">用户故事(user story)</a>
</div>
<div class="ui segment">
<a href="#" target="_blank" class="m-black m-text-thin">用户故事(user story)</a>
</div>
</div>
<!--二维码-->
<h4 class="ui horizontal divider header m-margin-top-large">扫码关注我</h4>
<div class="ui centered card" style="width:11em">
<img src="./static/images/WeChat.jpg" alt="" class="ui rounded image">
</div>
</div>
</div>
</div>
</div>
<!--底部-->
<footer class="ui inverted vertical segment m-padded-tb-massive">
<div class="ui center aligned container">
<div class="ui inverted divided stackable grid">
<div class="three wide column">
<div class="ui inverted link list">
<div class="item">
<img src="./static/images/WeChat.jpg" class="ui rounded image" alt="" style="width:110px">
</div>
</div>
</div>
<div class="three wide column">
<h4 class="ui inverted header" m-text-thin m-text-spaced m-opacity-mini>最新博客</h4>
<div class="ui inverted link list">
<a href="#" class="item">用户故事</a>
<a href="#" class="item">练习清单</a>
<a href="#" class="item">失败要趁早</a>
</div>
</div>
<div class="three wide column">
<h4 class="ui inverted header" m-text-thin m-text-spaced m-opacity-mini>联系我</h4>
<div class="ui inverted link list">
<a href="#" class="item">Email</a>
<a href="#" class="item">QQ</a>
</div>
</div>
<div class="seven wide column">
<h4 class="ui inverted header" m-text-thin m-text-spaced m-opacity-mini>最新博客</h4>
<p class="m-text-thin m-text-spaced m-opacity-mini">这是我的个人博客</p>
</div>
</div>
<div class="ui inverted section divider"></div>
<p class="m-text-thin m-text-spaced m-opacity-mini">Copyright 2020</p>
</div>
</footer>
<!--引入jQuery CDN方式-->
<script src="https://cdn.jsdelivr.net/npm/jquery@3.2/dist/jquery.min.js"></script>
<!--引入semantic框架 CDN方式-->
<script src="https://cdn.jsdelivr.net/npm/semantic-ui@2.4.2/dist/semantic.min.js"></script>
<script>
$('.menu.toggle').click(function () {
$('.m-item').toggleClass('m-mobile-hide')
})
</script>
</body>
</html>
me.css
/*调整内边距(上下)*/
.m-padded-tb-mini{
/* important提高它的优先级,来覆盖semantic中的设定 */
padding-top: 0.2em !important;
padding-bottom: 0.2em !important;
}
.m-padded-tb-tiny{
padding-top: 0.3em !important;
padding-bottom: 0.3em !important;
}
.m-padded-tb-small{
padding-top: 0.5em !important;
padding-bottom: 0.5em !important;
}
.m-padded-tb{
padding-top: 1em !important;
padding-bottom: 1em !important;
}
.m-padded-tb-large{
padding-top: 2em !important;
padding-bottom: 2em !important;
}
.m-padded-tb-big{
padding-top: 3em !important;
padding-bottom: 3em !important;
}
.m-padded-tb-huge{
padding-top: 4em !important;
padding-bottom: 4em !important;
}
.m-padded-tb-massive{
padding-top: 5em !important;
padding-bottom: 5em !important;
}
/*调整内边距(左右)*/
.m-padded-lr-large{
padding-left: 2em !important;
padding-right: 2em !important;
}
/*调整外边距*/
.m-margin-tb-tiny{
margin-top: 0.3em !important;
margin-bottom: 0.3em !important;
}
.m-margin-top-small{
margin-top: 0.5em !important;
}
.m-margin-top{
margin-top: 1em !important;
}
.m-margin-top-large{
margin-top: 2em !important;
}
.m-right-top{
position: absolute;
top:0;
right: 0;
}
/*字体变瘦*/
.m-text-thin{
font-weight: 300 !important;
}
/*增大字间距*/
.m-text-spaced{
letter-spacing: 1px !important;
}
/*增大行距*/
.m-text-lined{
line-height: 1.8;
}
/*降低字体透明度*/
.m-opacity-mini{
opacity: 0.8 !important;
}
/*字体设置整合*/
.m-text{
font-weight: 300 !important;
letter-spacing: 1px !important;
line-height: 1.8;
opacity: 0.8 !important;
}
/*使blok(原本是竖向)横向展示*/
.m-inline-block{
display: inline-block !important;
}
/*自定义的container*/
.m-container{
max-width:72em !important;
margin:auto !important;
}
/*自定义颜色*/
.m-black{
color: #333 !important;
}
.m-mobile-show{
display: none !important;
}
/*在手机端的显示(当宽度小于768像素时)*/
@media screen and (max-width: 768px) {
.m-mobile-hide{
display: none !important;
}
.m-mobile-show{
display: block !important;
}
}
2.2.2笔记:
<!--移动端预览设置-->
<meta name="viewport" content="width=device-width,initial-scale=1.0">
meta标签:
- 描述 HTML 文档的元数据,通常用于指定网页的描述,关键词,文件的最后修改时间,作者及其他元数据
- 元数据不会显示在客户端,但是会被浏览器解析
- meta标签通常位于head区域内
- 实例 1 - 定义文档关键词,用于搜索引擎:
<meta name="keywords" content="HTML, CSS, XML, XHTML, JavaScript">
实例 2 - 定义web页面描述:
<meta name="description" content="Free Web to learn HTML and CSS">
实例 3 - 定义页面作者:
<meta name="author" content="Hege">
实例 4 - 每30秒刷新页面:
<meta http-equiv="refresh" content="30">
- 每个移动设备浏览器中都有一个理想的宽度,这个理想的宽度是指css中的宽度,跟设备的物理宽度没有关系,在css中,这个宽度就相当于100%的所代表的那个宽度。可以用meta标签把viewport的宽度设为那个理想的宽度,如果不知道这个设备的理想宽度是多少,那么用device-width这个特殊值就行了,同时initial-scale=1也有把viewport的宽度设为理想宽度的作用。
<!--导航-->
<nav class="ui inverted attached segment">
- semantic常用组件segment,ui表示ui组件
- inverted表示颜色反转
- attached表示导航栏四个角没有圆角,依附在顶部
<a href="#" class="it【em"><i class="home icon"></i>首页</a>
- a标签的href属性用于指定超链接目标的URL
- a标签中必须提供 href 属性或 name 属性
<div class="ui container">
- semantic自带的容器,有响应式效果,能根据屏幕尺寸展示最适应的效果
<img src="https://i.picsum.photos/id/1014/6016/4000.jpg" alt="" class="ui avatar image">
- 设置一个图片作为圆形的头像
<h4 class="ui horizontal divider header m-margin-top-large">扫码关注我</h4>
- 实现一条横线,并在横线中间显示文字
<div class="ui inverted secondary stackable menu">
- stackable使菜单、grid可以自适应,随着屏幕大小调整
<div class="ui mobile reversed stackable grid">
<div class="eleven wide column">
</div>
<div class="five wide column">
</div>
- mobile reversed在手机端会把11这列和下面5这列调换顺序显示
<!--导航-->
<a href="#" class="ui menu toggle black icon button m-right-top m-mobile-show">
<i class="sidebar icon"></i>
</a>
<script>
$('.menu.toggle').click(function () {
$('.m-item').toggleClass('m-mobile-hide')
})
</script>
- 当点击sidebar图标按钮时,显示手机端隐藏的内容,即有m-mobile-hide属性的内容