最近忙着俱乐部招新的事情,每一次培训都会给学员布置作业,但是作业积累在手上并没有长久的保存价值,于是萌生了一个创建俱乐部网站平台的想法。为了充当好PM这个角色,学习了Axure软件的用法,并且首次制作页面的交互原型。也算是体验了一回ID角色。

我们的平台应该是一个展示型的网站,将来功能可以类似花瓣网,蘑菇街的首页瀑布流展示学员的作品。

前不久刚刚温习了web语义化的知识,今天看到了花瓣网的顶部header条,根据最近所学提出一点改进:

1.根据web语义化知识,行内元素是不建议嵌套块级元素的:

我们来看一下花瓣网的源代码(关于header里面的menu布局):

我的建议是:一般针对小三角,小图标签,常常用<i></i> ;<b></b>;<s></s>这3个标签:

HTML结构如下:

 <div class="header">
<div class="wrapper">
<div class="btn-menu header-icon"> //***************************1.左边的菜单
<i></i> //定义菜单符号
<b></b> //定义下拉三角符号
<div class="main-menu"></div>
</div>
<div class="btn-add header-icon">//*****************************2.右边的添加(加号):add
<i></i>
<div class="add-menu"></div>
</div>
<div class="btn-message header-icon">//*************************3.右边的消息(信封符号):message
<i></i>
<div class="message-menu"></div>
</div>
<div class="btn-notice header-icon">//*************************4.右边的通知(铃铛符号):notice
<i></i>
<div class="notice-menu"></div>
</div>
</div>
</div>

2.针对header左右元素分布,采用绝对定位布局;

由于各个元素高度和宽度相等,唯一的差别是里面的图标不同:比如有的是menu,有的是message,有的是“+”,有的是“铃铛”;

如果能够抓住这些共同特点,全部进行绝对定位:唯一不同的是postion下面的right值,或者left值不同而已。

下面是用less 所写:支持嵌套

   .header-icon {
position: absolute;
width: 42px;
height: 42px;
border-left: 1px solid #F5F5F5;
top:;
&:hover { //**********************1.共性一:左右4个子元素btn(除去个人头像),鼠标划过时候背景变色相同
background: #F7F7F7;
i {
color: #212121;
}
} i { //***********************2.共性二:左右4个元素btn(这里使用了阿里巴巴icon font库自定义字体),字体,字号,以及相 对父级元素的绝对定位:left和top值是相同的
font-size: 21px;
color: #999999;
position: absolute;
left: 10px;
top: 9px;
} b { //**************************3.共性三:第一个元素和最后一个元素的右下角,都有下拉三角符号
color: #CCCCCC;
position: absolute;
font-size: 6px;
right: 3px;
bottom: 3px;
} &.btn-menu { //************************不同点:1.需要格外定义btn-menu的position left值
border-right: 1px solid #F5F5F5;
width: 55px;
left:;
i {
left: 17px;
}
} &.btn-add { //*****************2.每一个子元素btn的宽度是42px,在前面写好的共性基础上,轻松找到btn-add的position right值
right: 130px;
&:hover {
i {
color: #C80D00;
}
} i {
color: #000000;
}
} &.btn-message { //******************************轻松另外定义找到btn-message的position right值
right: 87px;
} &.btn-notice { //*********************************轻松另外定义btn-notice的position right值
right: 44px;
}

其实除了绝对定位外,还有一种方法是:ul >li 搭配浮动

例如京东商城的header条,顶部有“我的收藏”,“我的购物车”,,,,布局思想是:左右浮动,在每一边内部布局使用ul>li

3.header中间的logo图标居中方法:

方法一):也就是花瓣网的方法:使用负margin值,结合positon下的left:50%和top:50%

其实这个方法,我在前面介绍《前端知识入门体系》一文也提到:

这样我们的元素就通过绝对定位的方法居中了。

方法二):可以把logo图片作为背景,background-positon居中

 background: url("../img/logo.jpg") scroll center center no-repeat;

4.第一次尝试下载使用icon font字体库

Icon font 就是将一套图标集以字体文件的形式封装,并通过 CSS 3 的 @font-face 作为 Web Font 调用。通常一套 icon font 的数目不多,所以字体文件的体积亦会较小。同时因 icon font 中的图标为矢量,所以应对缩放也更为便利。并且 @font-face 属性甚至被 IE 6 支持,所以在尚需要考虑 IE 6 兼容性的时候,用于显示透明背景的单色图标,便不需要采取针对 .png 的 hack.

载成功后,在demo文件里会有提示:

在css文件中使用,需要先声明:

@font-face {
font-family: 'iconfont';
src: url('../font/iconfont.eot'), /* IE9*/
url('../font/iconfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ url('../font/iconfont.woff') format('woff'), /* chrome、firefox */ url('../font/iconfont.ttf') format('truetype'), /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/ url('../font/iconfont.svg#uxiconfont') format('svg'); /* iOS 4.1- */
} .iconfont {
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
font-weight: normal;
-webkit-font-smoothing: antialiased;
-webkit-text-stroke-width: 0.2px;
-moz-osx-font-smoothing: grayscale;
}

那么这样我们最后的实际HTML结构是这样的:

 <div class="header">
<div class="wrapper">
<div class="btn-menu header-icon">
<i class="iconfont"></i> //***********************和前面的差别是使用icon font编号代替图片
<b class="iconfont"></b>
<div class="main-menu"></div>
</div>
<div class="btn-add header-icon">
<i class="iconfont"></i>
<div class="add-menu"></div>
</div>
<div class="btn-message header-icon">
<i class="iconfont"></i>
</div>
<div class="btn-notice header-icon">
<i class="iconfont"></i>
<div class="notice-menu"></div>
</div>
<div class="btn-user header-icon">
<img src="/src/kingsoft/img/user.jpg" width="23" height="23" />
<b class="iconfont"></b>
<div class="user-menu"></div>
</div>
</div>
</div>

总结:通过这次的首页面,虽然忙活了几天,但是还是很快乐的。

从知识积累方面来讲:

1.告诫自己要多多思考,理解web语义化,树立良好的代码规范意识。

2.对使用绝对定位方法进行行内元素布局有了深刻的理解;

3..熟悉了less css的嵌套,混合等语法结构

4.第一次尝试使用ICON font,使用特殊的 "字体图标" 替代了常用的PNG图片,O(∩_∩)O

因为这是希望金山俱乐部走向规范的一次有意义的尝试,也希望通过建立这个平台,鼓励俱乐部同学多多创造自己的作品,学会分享,学会展示。第一次充当PM,ID的角色还是很有挑战性的;当然更重要的角色还是FE啦,前端路漫漫,要学的真的还有很多。希望:每天都要保持100%的热情和1.01的状态,加油,加油,go go go!!!

关于花瓣网header条的思考的更多相关文章

  1. Python 爬虫: 抓取花瓣网图片

    接触Python也好长时间了,一直没什么机会使用,没有机会那就自己创造机会!呐,就先从爬虫开始吧,抓点美女图片下来. 废话不多说了,讲讲我是怎么做的. 1. 分析网站 想要下载图片,只要知道图片的地址 ...

  2. Js批量下载花瓣网及堆糖网专辑图片

    插件作者:SaintIC 文章地址:https://blog.saintic.com/blog/256.html 一.安装 1. 安装Tampermonkey扩展,不同浏览器的支持,参见官网:http ...

  3. Python3+selenium+BaiduAI识别并下载花瓣网高颜值妹子图片

    一.说明 1.1 背景说明 上周在“Python3使用百度人脸识别接口识别高颜值妹子图片”中自己说到在成功判断颜值后,下截图片并不是什么难点. 直观感觉上确实如此,你判断的这个url适不适合下载,适合 ...

  4. Python3 urllib 爬取 花瓣网图片

    点我去我的github上看源码 **花瓣网是动态的,所以要抓包分析,,但我真的累的不行,不想写教程了,我源码里有注释

  5. GoLang爬取花瓣网美女图片

    由于之前一直想爬取花瓣网(http://huaban.com/partner/uc/aimeinv/pins/) 的图片,又迫于没时间,所以拖了很久. 鉴于最近在学go语言,就刚好用这个练手了. 预览 ...

  6. async 异步抓取 花瓣网高清大图 30s爬取500张

    废话 不多说,直接上代码,不懂得看注释 先安装  pip install aiohttp "异步抓取花瓣网图片" # pip install aiohttp import requ ...

  7. Python抓取花瓣网高清美图

    一:前言 嘀嘀嘀,上车请刷卡.昨天看到了不错的图片分享网——花瓣,里面的图片质量还不错,所以利用selenium+xpath我把它的妹子的栏目下爬取了下来,以图片栏目名称给文件夹命名分类保存到电脑中. ...

  8. 类Pinterest Web原型制作分享——花瓣网

    这是一家基于兴趣的社交分享网站,网站为用户提供了一个简单地采集工具,帮助用户将自己喜欢图片重新组织和收藏.网站布局美观合理,内容丰富.此原型模板所用到的组件有按钮栏.菜单栏.搜索框.水平分割线.交互动 ...

  9. 笔记整理--HTTP Header 详解

    HTTP Header 详解 2013/09/21 | 分类: IT技术 | 0 条评论 | 标签: HTTP 分享到:36 原文出处: zcmhi HTTP(HyperTextTransferPro ...

随机推荐

  1. Web性能权威指南 PDF扫描版​

    Web性能权威指南是谷歌公司高性能团队核心成员的权威之作,堪称实战经验与规范解读完美结合的产物.<Web性能权威指南>目标是涵盖Web开发者技术体系中应该掌握的所有网络及性能优化知识.全书 ...

  2. PHP 中for循环的一个小小改进

    注意 : 1, $size这个值可以放在for循环中的第一个 ';' 前声明, 因为这个声明只会执行一次; 2, 第二个 ';' 中的内容, 会重复运行, 所以$i < $size 这个判断会每 ...

  3. 「美团 CodeM 初赛 Round A」最长树链

    题目描述 Mr. Walker 最近在研究树,尤其是最长树链问题.现在树中的每个点都有一个值,他想在树中找出最长的链,使得这条链上对应点的值的最大公约数不等于1.请求出这条最长的树链的长度. 输入格式 ...

  4. PL/0语言词法分析器

    前言:关于词法分析的基础知识的介绍可以看一下这篇博客,我再累述估计也不会有这篇讲的清楚QAQ. https://www.cnblogs.com/yanlingyin/archive/2012/04/1 ...

  5. History命令用法15例

    以下内容为转载: 如果你经常使用 Linux 命令行,那么使用 history(历史)命令可以有效地提升你的效率.本文将通过实例的方式向你介绍 history 命令的 15 个用法. 使用 HISTT ...

  6. 【bzoj3172】: [Tjoi2013]单词 字符串-AC自动机

    [bzoj3172]: [Tjoi2013]单词 先用所有单词构造一个AC自动机 题目要求的是每个单词在这个AC自动机里匹配到的次数 每次insert一个单词的时候把路径上的cnt++ 那么点p-&g ...

  7. oracle select非group by的字段

    可以把group by的结果集当作一个表,然后从这里表里取数就可以了. e.g. SELECT A.PROJECT_CODE,A.DIE_NO,E.ONE_CONSUMING FROM (SELECT ...

  8. Atcoder CF 2017 TR I

    Atcoder CF 2017 TR I 给定一个有n个点,m条边的图,求为每条边定向,使得从1出发和2出发的两个人可以见面的方案数. 先把问题转换成求all-不能见面的方案数.那么可以把图划分成这样 ...

  9. [CQOI2012][bzoj2668] 交换棋子 [费用流]

    题面 传送门 思路 抖机灵 一开始看到这题我以为是棋盘模型-_-|| 然而现实是骨感的 后来我尝试使用插头dp来交换,然后又惨死 最后我不得不把目光转向那个总能化腐朽为神奇的算法:网络流 思维 我们要 ...

  10. CF1076C Meme Problem 数学

    Try guessing the statement from this picture: You are given a non-negative integer d . You have to f ...