关于花瓣网header条的思考

最近忙着俱乐部招新的事情,每一次培训都会给学员布置作业,但是作业积累在手上并没有长久的保存价值,于是萌生了一个创建俱乐部网站平台的想法。为了充当好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: 0;
            &: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: 0;
                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!!!

时间: 2024-11-09 21:04:47

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

java的简单网络爬虫(爬取花瓣网的图片)

因为本人对爬虫比较感兴趣,加上之前也写过一些简单的python爬虫,所以在学完java基础后写了一个简单的网络图片爬虫.废话不多说直接上过程代码.(爬取的图源来自花瓣网:https://huaban.com/boards/favorite/beauty/) 源url页面分析 拿到爬取的源url,首先是分析页面哪些东西是要爬取的,这个页面是美女分类的画板页面,这里我们要爬的就是要爬取某个画板下面的所有图片.这里为了简单爬取我就选取了该页面推荐的几个画板.查看本页面源码可以很快找到推荐画板的url资

花瓣网轮播图效果

没有加上定时器效果,仅仅能手动进行图片的切换 效果图: index.html <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN""> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>index</title> &

MD版的花瓣网应用源码

介绍:MD版的花瓣网App运行效果: <ignore_js_op> 源码下载:http://code.662p.com/view/13784.html 使用说明:架构 这个项目在写在很久之前,当时MVP架构网络上各种分析描述,但是感觉都是各说各的.不确定项目是否采用MVP架构就先动手写代码,随时准备重构项目.就在不久前Google发布Android Architecture Blueprints [beta] ,终于感觉这事有点靠谱了,我现在已经在动手重构项目了. 分析博文在这里:MVP架构-

抓取花瓣网图片

接触Python也好长时间了,一直没什么机会使用,没有机会那就自己创造机会!呐,就先从爬虫开始吧,抓点美女图片下来. 废话不多说了,讲讲我是怎么做的. 1. 分析网站 想要下载图片,只要知道图片的地址就可以了,So,现在的问题是如何找到这些图片的地址. 首先,直接访问http://huaban.com/favorite/beauty/会看到页面有20张所要抓取的图片还有一些其他干扰的图片信息(用户的头像.页面的一些图标之类的).当点击一张美女图片时,页面会跳转到一个新的页面,在这个页面里,是之前

iOS开发之抓取花瓣网json数据

最近在研究iPhone流水布局的实现,首先得有数据,所以我就随便在网上抓一些数据来实现.网上有很多网站是用瀑布流,比如蘑菇街,花瓣网,美丽说等等,今天就以花瓣网为例子,尝试去抓取里面我们想要的数据. 本来是我是想用objective-c的一个HTML开源框架hpple去解析花瓣网返回的html数据,提取里面我们想要的节点,但是我尝试了一下,实现不了,也听网上说这个框架不是很完善.所以我干脆用工具来实现了,网上有很多这样的工具,现在我先一个叫charles的http代理监听工具,它能够监听我们ht

吴忠军花瓣网主页

首页发现最新活动美思美素图库花瓣live 注册登录 国内最优质图片灵感库 已有数百万出众网友,用花瓣保存喜欢的图片. 用以上社交帐号直接登录 吴忠军花瓣网个人主页 1 粉丝 73 关注 吴忠军 男 来自山东省临沂市 水瓶座 在校学生 吴忠军 新浪微博 临沂吴忠军 或者 临沭吴忠军 关注 11画板419采集5喜欢13标签 吴忠军 吴忠军,临沭吴忠军,临沂吴忠军 142 关注 临沭吴忠军 吴忠军,临沂大学学生 115 关注 临沂吴忠军 新浪微博 吴忠军 临沭吴忠军 临沂吴忠军 山东吴忠军 中国吴忠军

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

一.说明 1.1 背景说明 上周在"Python3使用百度人脸识别接口识别高颜值妹子图片"中自己说到在成功判断颜值后,下截图片并不是什么难点. 直观感觉上确实如此,你判断的这个url适不适合下载,适合我就去下不适合就不去下,这算什么难点呢. 但事实经常没有想象的那么简单,所以决定去验证一下.结果再次证实自己想简单了,程序的编写和调试花了一周的业余时间,好在总算完成了. 1.2 程序编写过程说明 我以花瓣网http://huaban.com/favorite/beauty/入手,首先确定

官网header文件

当前页面: (在页面中指定class值为header的页面元素,导入header.js对文档进行操作) <body> <section class="header"> </section> <script src="../js/xxx/header.js"></script> </body> header.js /** * 官网--公共头部 */ $(document).ready(functi

计网 | 网络体系结构的思考

自美国国防部1969年创建ARPANET以来,网络的科学与技术不断发展,网络的体系结构也经历了ISO的OSI标准和TCP/IP标准.有趣的是,国际标准化组织确定的标准却并未成为事实上的标准,在这一"事实标准"的背后,市场的影子若隐若现.然而在学习中,一般将TCP/IP的网络接口层拆分为数据链路层和物理层,因此学习中以五层网络结构为研究对象.(原因不详,期待讨论) 五层网络结构自上而下分别为:应用层.运输层.网络层.数据链路层和物理层. 应用层(application layer) 应用