1.边框的处理
 
要形成上图所示的布局效果,即,点选后,导航下面的边框不显示而其他的边框形成平滑的形状。相对于把导航的下面边框取消然后用空白覆盖掉下面搜索栏的边框比较而言,sougou有很好的方法来实现它。
我们设定这整个nav选择区域为#nav_container,然后给被选择了的nav加上一个class:current,我们下面的logo+输入框为:sog_div,整个部分的外部容器为:#search
我们看看sogou是怎么实现的:
css脚本:
#nav_container{
       text-align:center;
        line-height:24px;
        height:26px;
        padding-left:56px;
        overflow:hidden;
        z-index:110;
        position:absolute;    
    }
#nav_container li {
    color: #3f3f3f;
        font-size:14px;
        width:60px;
        height:25px;
        padding:1px;
        float:left;
        cursor:pointer;
}
.current {
          color:#3f3f3f;
        font-weight:bold;
        background:#f3f7fb;
        border:1px solid #9bbed9;
        padding:0 0 1px 0;
   }
#sog_div{
    
    width:958px;
        height:49px;
        border:1px solid #9bbed9;
        background:#f3f7fb;
        z-index:100;
        position:absolute;
        top:25px;
        left:0px;
 
}
#search {
         width:960px;
        height:76px;
        position:absolute;
        z-index:100;
        top:0px;
        left:0px;
}
我们看到,nav_container的高度为26px,然后sog_div相对布局,它离顶部有25px。nav的正常高度为25px(不带边框)。current四边都有边框,因此它的实际高度为25px+1*2=27px。但是呢,nav_container的属性overflow:hidden,使得下面的边框被隐藏掉了~所以,它实际的高度仍然是26px,只是没有下面的边框。那么我们sog_div距离顶部25px,会出现什么呢?sog_div是有边框的,边框宽度1px。它距离顶部25px,就是意味着,25px是被nav覆盖的部分,下面的1px是nav_container和nav_li剩下的1px透明的部分,显示为sog_div自己的边框,如果是current,current会覆盖这1px边框的部分,但是如果是其他的nav其他的nav只有25px的高度,而它们的容器又是没有背景的,因此还是照样会显示sog_div的边框出来。
 
2.图片和文字的组合
实现上面图片的效果。
首先把这个整体以<div class="today"></div>来表示
它由5部分组成,阴云的图片(<img />),表示今天的圆图(<span class="wicon"></span>),右边的温度(<p></p>,污染(<span></span>,程度(span->em)。
层叠样式表:
  body,a,ul,li,div,span,h1,h2,h3,p,img,form,input,select,option,i,dt,dd,em {
        margin:0;
        padding:0;
  }
    #weather .today, #weather .tomorrow {
    position: relative;
    width: 125px;
    z-index: 10;
    }
    #weather .today, #weather .today .weather_a {
    width: 139px;
    }
    .weather_a {
        color: #3F3F3F;
        cursor: pointer;
        display: block;
        height: 46px;
        width: 125px;
    }
a img {
    border:none;
}
#weather {
        font-size:13px;
        line-height:23px;
        padding-top:10px;
        position:relative;
        z-index:9;
    }
    #weather div {
        height:46px;
        float:left;
    }
    #weather div img {
    float: left;
    height: 33px;
    margin-top: 3px;
    position: relative;
    width: 40px;
    z-index: 10;
    }
    #weather div p {
    display: block;
    float: right;
    height: 23px;
    line-height: 23px;
    overflow: hidden;
    position: relative;
    text-align: left;
    width: 84px;
    z-index: 10;
    }
    #weather div.today p, #weather div.today p span {
    overflow: hidden;
    width: 99px;
    }
 
#weather div p span {
    display: block;
    height: 22px;
    line-height: 22px;
    margin-top: 1px;
    }
    .wicon {
        position: absolute;
        top: 23px;
        left: 20px;
        width: 20px;
        height: 20px;
        z-index: 20;
        display: block;
        clear: both;
    }
    .today .wicon {
        background-position: -1px -68px;
    }
HTML代码:
<div class="today">
            <a href="http://123.sogou.com/sub/tianqi.html?d=7" class="weather_a" target="_blank" title="阴有大雨">
              <img height="24" width="24" src="http://p0.123.sogou.com/imgn/wt2/cloudy.png">
              <p>
                <span id="t-t-t" style="margin-top: -23px;">阴有大雨</span>
                <span>
                  空气污染:
                  <em style="font-style:normal;padding:0px 1px 1px;padding:2px 1px 0 1px\9;;color:#fff;background:#FF7E00;">轻度</em>
                </span>
              </p>
              <p class="current">27℃~ 22℃</p>
              <span class="wicon">&nbsp;</span>
            </a>
          </div>
分解来看,<p></p>的宽度+<img></img>的宽度刚好是容器的宽度,img左边漂浮,<p>元素向右漂浮。<p>元素的高度为23px,两个<p>元素占满了容器的高度,wicon类的元素为相对布局,它的父容器为.today(相对布局的元素),因此它就浮在了.today左边23Px,上边20px的位置。当然,如果是浮动的话,margin最好不用。因为会造成边距加倍的问题。
注意:在超链接中img的属性webkit默认是none,而ie中是默认会加一个边界的,所以为了兼容性,为了废了九牛二虎之力计算出的布局不死给IE看,给超链接中的img加上border:none

CSS学习小记的更多相关文章

  1. 搜狗主页页面CSS学习小记

    1.边框的处理   要形成上图所示的布局效果,即,点选后,导航下面的边框不显示而其他的边框形成平滑的形状.相对于把导航的下面边框取消然后用空白覆盖掉下面搜索栏的边框比较而言,sougou有很好的方法来 ...

  2. 6号css学习小记

    一.overfloat属性:(四个值) visible :默认值.内容不会被修剪,会呈现在元素匡之外. hidden:内容会被修剪,并且其余内容是不可见的. scroll :内容会被修剪,但是浏览器会 ...

  3. CSS学习笔记

    CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...

  4. mongodb入门学习小记

    Mongodb 简单入门(个人学习小记) 1.安装并注册成服务:(示例) E:\DevTools\mongodb3.2.6\bin>mongod.exe --bind_ip 127.0.0.1 ...

  5. css学习归纳总结(三) 转

    原文地址:css学习归纳总结(三) 为文档添加样式的三种方法 行内样式 行内样式是写在HTML标签的style属性里的,比如: <p style="font-size: 12px;fo ...

  6. css学习归纳总结(二) 转

    原文地址:css学习归纳总结(二) 标签与元素 <p>标签和p元素有什么区别呢?大多数时候他们表示的是同一样东西,但仍有细微的区别.<p>.<div>等指的是HTM ...

  7. css学习归纳总结(一) 转

    原文地址:CSS学习归纳总结(一) 选择器的分组 CSS选择器分为 1.群组选择器 如:p, body, img, div{} 2.兄弟选择器 如:p + p { color:#f00; } 3.属性 ...

  8. 【2016年特别福利】史上最全CSS学习资料大全

    css学习篇 [2016年特别福利]史上最全CSS学习资料大全

  9. 【转】css学习专题-BFC

    css学习专题-BFC 转自:原文链接:css学习专题-BFC文章目录 BFC:Block Formatting Context. BFC就是一种布局方式,在这种布局方式下,盒子们自所在的 conta ...

随机推荐

  1. Web API 2:Action的返回类型

    Web API 2:Action的返回类型 Web API控制器中的Action方法有如下几种返回类型: void HttpResponseMessage IHttpActionResult 其它类型 ...

  2. Swift 简简单单实现手机九宫格手势密码解锁

    原文:Swift 简简单单实现手机九宫格手势密码解锁 大家可以看到我之前的文章[HTML5 Canvas简简单单实现手机九宫格手势密码解锁] 本文是使用苹果语言对其进行了移植 颜色配色是拾取的支付宝的 ...

  3. android学习8(ListView高级使用)

    ListView在android更开放的,于是继续ListView说明使用. 首先创建一个android项目,项目名为ListViewTest. ListView的简单使用 改动布局文件,改动后代码例 ...

  4. 阐述 QUEST CENTRAL FOR DB2 八罪

    作为一个从事oracle plsql发展2猿 - 年计划,现在,在退出DB2数据仓库项目. 同PL/SQL Developer参考,下文PLSQL,阐述QUEST CENTRAL FOR DB2 5. ...

  5. Gimp教程:制作彩色的网站横幅

    效果图: Step1.新建900x200的透明图层 Step2.点选画笔工具,在左下方的设置界面进行如下: 设置画笔,动态,颜色,勾选应用抖动,然后试着在图层上画一画,调节一下画笔大小,相信你能作出如 ...

  6. 学习使用简单的php

    配置文件在:/etc/php5/$中,不同的模式含有自己的php.ini配置文件.php可以运行于多种模式:cgi.fastcgi.cli.web模块模式等4种: 我现在使用的模式是cli模式,这里进 ...

  7. 在项目管理工具Redmine中使用SubVersion进行版本管理

    原文:在项目管理工具Redmine中使用SubVersion进行版本管理 在项目管理工具Redmine中使用SubVersion进行版本管理 分类: Redmine2009-06-01 10:11 5 ...

  8. 免费的编程中文书籍索引 from github

    免费的编程中文书籍索引 免费的编程中文书籍索引,欢迎投稿. 国外程序员在 stackoverflow 推荐的程序员必读书籍,中文版. stackoverflow 上的程序员应该阅读的非编程类书籍有哪些 ...

  9. SQL数据库面试题

    SQL数据库面试题 1.SQL SREVER中,向一个表中插入了新数据,如何快捷的得到自增量字段的当前值 这种情况其实我们经常用到,比如我们新建了一个用户,建立完用户后我们希望马上得到这个新用户的ID ...

  10. javascript转换.net DateTime方法 (比如转换\/Date(1426056463000)\/)

    function getDate(str_time) { var re = new RegExp('\\/Date\\(([-+])?(\\d+)(?:[+-]\\d{4})?\\)\\/'); va ...