使用flex进行网易云音乐界面构建和布局解析


1.为什么要用flex进行webapp布局

第一,float布局 需要清除浮动,很麻烦。

第二,绝对定位需要考虑位置和空间占位

第三,元素垂直水平居中问题。

2.网易云音乐首页分析

3.啥也别说,直接上代码

先来一个html,

<!DOCTYPE html>
<html lang="en">
<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">
    <title>001</title>
</head>
<body>
   <div id="app">
       <div id="header"></div>
       <div id="navbar"></div>
       <div class="routerview">
           <div id="banner"></div>
           <div id="recommend-items"></div>
           <div class="reco-list"></div>
       </div>
       <div id="footer"></div>
   </div>
</body>
</html>

别的不说咱们先用色块把各部分堆出来,这个跟flex没半毛钱关系,只是用了rem.

html{
    font-size: 100px;
}
#header{
    background-color: #d32f2f;
    min-height: 0.48rem;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;

}
#navbar {
    position: fixed;
    top: 0.48rem;
    left: 0;
    right: 0;
    z-index: 1000;
    background: #ccc;
    min-height: 0.3rem;

}

#footer {
    height: 0.49rem;
    background: #2f2d2e;
    width: 100%;
    position: fixed;
    bottom: 0;
    left: 0;
    color: rgba(255, 255, 255, .87);
    font-size: 0.12rem;
}

.routerview {
    padding-bottom: 0.49rem;
}
.routerview {
    position: absolute;
    left: 0;
    top: 0.81rem;
    width: 100%;
    height: 2000px;
    background: #eeeeee;
}

接着往下就是重点了,我们来看看头部细节细节,左右图标,

       <div id="header">
        <div class="logo"></div>
        <div class="logo"></div>
       </div>

css部分,

#header{
    align-items: center;
    justify-content: space-between;
}

那中间部分三个等距怎么办?

html,

<div id="header">
    <div class="logo"></div>
    <div class="title">
    <div class="logo"></div>
    <div class="logo"></div>
    <div class="logo"></div>
    </div>
    <div class="logo"></div>
</div>

上css,

.title {
    display: flex;
    justify-content: center;
}

结果如下:

最复杂的部分已经结束了,剩下的就很OK了。

最后给大家三个小尝试吧。

1.剩下的部分切出来。

2.解决动态的多屏幕适配问题(提示:js+rem动态计算)

//参考代码:
function getRem(pwidth,prem){
    var html = document.getElementsByTagName("html")[0];
    var oWidth = 2*document.body.clientWidth || document.documentElement.clientWidth;
    html.style.fontSize = oWidth/pwidth*prem + "px";
}

3.flex兼容性(提示:postcss)

                                                                                    ·ENG·

原文地址:http://blog.51cto.com/13592288/2154008

时间: 2024-08-27 19:30:57

使用flex进行网易云音乐界面构建和布局解析的相关文章

实现 像网易云音乐 播放列表那样的弹出型Dialog

如图 所示是点击Test之后的 弹出的Dialog (请无视我工程的命名) public class MyDialog extends Dialog { Context mContext; public MyDialog(Context context){ super(context,R.style.MyDialog); mContext = context; } @Override protected void onCreate(Bundle savedInstanceState) { sup

Android 开发之网易云音乐(或QQ音乐)的播放界面转盘和自定义SeekBar的实现

这个东西我在eoeAndroid上首发的,但没有详细的实现说明:http://www.eoeandroid.com/thread-317901-1-1.html 在csdn上进行详细的说明吧.(同时上两个社区,这真是个坏毛病,以后专注csdn好了). 1.用过网易云音乐客户端应该都懂得它那个播放界面,是蛮炫的.先看我实现的效果图吧: 自定义SeekBar这里少了点东西,进度条应该有两种颜色表示进度,一种是当前播放进度,一种是下载进度.我只实现了第一个,第二个要实现的话还需要重载SeekBar.

网易云音乐锁屏界面效果实现

最终效果: 完整的实现思路: App如果需要在锁屏界面上显示相关的信息和按钮, 必须先开启远程控制事件(Remote Control Event), 否则锁屏界面只显示滑动解锁. 实现锁屏界面信息, 将歌曲的相关信息更新到锁屏界面上 实现锁屏界面的事件处理, 在锁屏界面和上拉的快速功能菜单中实现播放控制 远程控制事件的实现 在iOS7.1之前, 远程控制事件主要涉及以下三个方法: 开始接收远程控制事件 结束接收远程控制事件 触发远程控制事件后的捕获处理 官方文档对这三个方法的描述如下, 这里做了

Vue 实现网易云音乐 WebApp

?? 基于 Vue(2.5) + vuex + vue-router + vue-axios +better-scroll + Scss + ES6 等开发一款移动端音乐 WebApp,UI 界面参考了安卓版的网易云音乐.flex 布局适配常见移动端. ?? 项目演示地址:移动端音乐 WebApp,或者可以扫描二维码访问: 电脑在 Chrome 调试模式下食用效果更佳,开启调试模式的手机模式后,如果不能滚动,刷新一下页面即可 ?? 源码地址:vue-music-webapp,欢迎 star 和

Android实战之酷云--&gt;仿网易云音乐开发

我的个人网站 Xuejianxin's Blog Google Blog Xuejianxin's Blog Android自定义View学习 Android自定义View之常用工具源码分析 Android自定义View之onMeasure()源码分析 Android自定义View之onLayout()源码分析 Android自定义View之对TouchEvent的处理 Android自定义View之draw原理分析 如果觉得我的文章还行的话,也可以关注我的公众号,里面也会第一时间更新,并且会有

网易云音乐的歌单推荐算法

[转载]原文地址:https://www.zhihu.com/question/26743347 原文: 不是广告党,但我却成为网易云音乐的的重度患者,不管是黑红的用户界面,还是高质量音乐质量都用起来很舒服.我喜欢听歌,几乎每周不低于15小时,但其实听得不是特别多,并没有经常刻意地去搜歌名,所以曲目数量我并不是很在乎.但是比起其它,网音给我推荐的歌单几乎次次惊艳,而且大多都没听过,或者好久以前听过早就忘记了名字,或者之前不知道在哪听过 只是知道其中一部分旋律,根本不知道名字,等等,听起来整个人大

网易云音乐下载|网易云音乐电脑版下载

据记忆开始接触音乐软件的时候就是酷狗音乐,后来慢慢发现周围的人都是用网易云音乐.之前没有很在意,随着朋友圈分享歌曲越来越多的来自网易云音乐,自己忍不住也下载了看看.网易云音乐,感觉比较好的是界面相对比较整齐,不是很凌乱.另外就是私人FM,推荐的一些歌曲,大部分都是比较合胃口的.网易云音乐下载链接软件介绍网易云音乐是网易推出的一款音乐产品,依托专业音乐人.DJ.好友推荐及社交功能,在线音乐服务主打歌单.社交.大牌推荐和音乐指纹,以歌单.DJ节目.社交.地理位置为核心要素,主打发现和分享.网易云音乐

编写一个网易云音乐爬虫程序

本次借助wxPython编写一个网易云音乐的爬虫程序,能够根据一个歌单链接下载其下的所有音乐 前置说明 网易云音乐提供了一个下载接口:http://music.163.com/song/media/outer/url?id=xxx 所以只需要拿到歌单中每首歌曲对应的 id 即可 1.分析歌单网页元素 打开网易云音乐,复制一个歌单链接 打开chrome,查看网页元素 这里有个细节,我们拿到的歌单url中有一个符号“/#”,因为之前爬虫其他网站时,也是直接请求初始url,一般Elements标签中的

实现 60fps 的网易云音乐首页

网易云音乐是一款很优秀的音乐软件,我也是它的忠实用户.最近在研究如何更好的开发TableView,接着我写了一个Model驱动的小框架 - MDTable.为了去验证框架的可用性,我选择了网易云音乐的首页来作为Demo,语言是Swift 3. 本文的内容包括: 实现网易云音乐首页的思路如何建立一个轻量级的UITableViewController(不到100行)性能瓶颈原因以分析及如何优化到接近60fps Note:本文并没有用Reveal去分析网易云音乐iOS客户端的原始UI布局,所以实现方式