电脑端,web网页,导航练习(1)

我在做导航练习时,是查看那些已经成功的网站的源代码进行练习,希望通过这些成功的代码可以学习到代码背后前端工程师们的编程思路。
在查看源代码中我也学习了很多以前忽视的细节,觉得受益匪浅啊。

当我打开拉勾网的css文件时,第一部分是用注释的方式标记了文档的时间,作者以及样式表内部方便查看的某些元素的颜色及宽高。
第二部分是一些初始化的元素样式,及初始化的公共类。
第三部分是网页各个部分的样式。

  • 我做的第一个导航练习是拉勾网的导航。

    lagou_nav.jpg

    观察与思考
    1、这个导航需要写几层嵌套呢?
    2、要不要设置宽度,还是使用100%?
    3、如何居中啊?
    4、登录与注册中间的那个细线怎么实现。
    这些是我发现的问题,肯定随着做的过程中还会有问题。

  • 第一步:设计出html结构,并为元素设置相应的id与类
    <div id='body'>
    <div id="header">
    <div class="wrapper">
    <a class="logo" href=""></a>
    <ul class="navheader reset">
    <li><a href="">首页</a></li>
    <li><a href="">论坛</a></li>
    <li><a href="">我的简历</a></li>
    <li><a href="">发布职位</a></li>
    </ul>
    <ul class="loginTop reset">
    <li><a href="">登录</a></li>
    <li>|</li>
    <li><a href="">注册</a></li>
    </ul>
    </div>
    </div>
    </div>
    <div id="footer">

         </div>
    
    • 首先分出body与footer两个部分。这里面还涉及相应的height与min-height设置,但是这些又涉及一些兼容的问题,所以我就先不写了,回头再另写一篇。
    • 最外层嵌套使用id='header'标记,方便寻找里面子元素,里面就可以用class啦,.wrapper可以用作包围元素做公共类使用。class="navheader"class="loginTop"可以作为查找元素使用。
    • ul>li>a,一般的导航基本上都是这样的结构。
    • ul前的a可以以背景为图片,做链接。
  • 对网页进行全局的css设置。
    我先写下做导航时我用到的

    • *{outline:none;}设置所有元素的轮廓默认为无。
    • body,p,a,span,ul,li{margin: 0;padding: 0;}设置所有元素的内外边距为0。
    • ul.reset{list-style:none;}去除掉列表的默认样式
  • 对导航进行css设置

    • 设置包围元素样式
      #header{
      background: #fafafa;
      height: 60px;
      min-width: 1024px;
      border-top: 3px solid #00B38A;
      }
      #header .wrapper{
      width: 1024px;
      margin: 0 auto;
      }
      1、最外围#header设置了导航的高度,以及导航的背景色,增添了border-top的样式。
      2、内部.wrapper设置了宽度,外部#header设置了最小宽度,二者属性值一样。当然显示屏的宽度肯定大于1024px,这样在加上在.wrapper里进行margin: 0 auto;可以实现宽度为1024的内容居中。
    • 对导航元素进行基本布局


      step1.jpg

      .wrapper .logo{
      float: left;
      margin-top: 7px;
      width: 229px;
      height: 43px;
      background: url(image/logo.png) no-repeat;
      }
      .wrapper .navheader{
      float: left;
      margin-left: 30px;
      }
      .navheader li{
      float: left;
      }
      .wrapper .loginTop{
      float: right;
      }
      .loginTop li{
      float: left;
      }
      1、设置logo时,图片原来的尺寸就是229×43,所以这样设置并不会拉伸图片。
      2、logo与导航菜单均左浮动,登录注册按钮向右浮动。

    • 对导航菜单进行基本样式修饰
      注意:当鼠标经过a时,需要有一个3px的border-bottom,但是这个3px不能超过#header,需要做的就是让li的高度为60px,让a的高度为57px,这样当鼠标经过时,显示底边,不会突出。
      2015-01-18_200656.jpg

      .navheader li{
      height: 60px;
      padding: 0px 20px;
      }
      .navheader li a{
      display: block;
      line-height: 57px;
      text-decoration: none;
      color: #999;
      font-size: 20px;
      }
      .navheader li a:hover{
      color: #333;
      border-bottom: 3px solid #00B38A;
      }
      .loginTop li{
      height: 30px;
      line-height: 30px;
      color: #FFF;
      background: #00B38A;
      }
      .loginTop li a{
      display: block;
      line-height: 30px;
      padding: 0px 10px;
      color: #fff;
      text-decoration:none ;
      }
      .loginTop li a:hover{
      color: #CCEAE3;
      }
      1、a为行内元素需要将他转化为块级元素,这样才能够设置高度。行内元素如果不设置为块级,直接设置行高,虽然也可以改变高度,并且占据文档流,但是行高所占据的空白并不会是属于a的。
      2、细心的可以发现,我为每一个a只设置了行高,并没有设置高度,因为在IE6、7版本的浏览器,我发现未设置高度时,我发现a并没有具备真正的块级元素具备的那样,宽度充斥父元素。但是设置了高度后,发现他们一下子具备了块级元素的特点。但是我们不想让他那样,所以我就不写高度了。这样效果均兼容。如果写了呢,也很简单只要为a补上一个float:left
      3、ie6,并不支持png格式的图片。。。。。
    • 其实乍一看,貌似具备了长相,但是我发现,我鼠标经过菜单,菜单的变化是一个渐变的,而不是突然,。
      .navheader a,.loginTop a{
      transition: all .2s ease-in-out ;
      -webkit-transition: all .2s ease-in-out ;
      -moz-transition: all .2s ease-in-out ;
      -o-transition: all .2s ease-in-out ;
      }
      transition这个属性可以设置,当某个元素的某个样式改变时,可以进行渐变的变化。他可以实现更精彩的画面,需要学习html5的相关知识。会继续学习的。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,602评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,442评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,878评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,306评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,330评论 5 373
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,071评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,382评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,006评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,512评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,965评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,094评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,732评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,283评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,286评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,512评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,536评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,828评论 2 345

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,728评论 1 92
  • 一:在制作一个Web应用或Web站点的过程中,你是如何考虑他的UI、安全性、高性能、SEO、可维护性以及技术因素的...
    Arno_z阅读 1,138评论 0 1
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,303评论 0 11
  • 我另一个的导航练习是参考果壳网的导航进行的,查看源代码时,发现这家网站的css代码写的真清晰,类的组织也很棒,虽然...
    Miss____Du阅读 1,428评论 2 18
  • 昨天孕妇和阿姨陪我去取新车,吃过中饭就出发到下午接孩子4点半钟,我几次提醒他们先回家,孕妇中午需要休息,我也习惯一...
    清文雅书阅读 175评论 0 0