目标 :
将百度首界面静态实现,实现以下效果.
效果:
实战CSS:静态百度首页实现_ico
代码:
html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>百度一下, 你就知道</title>
    <link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
    <link rel="stylesheet" href="css/index.css">
</head>
<body>
<!--头部-->
<header id="header">
    <!--左边-->
    <div class="header-left">
            <span>
                <img src="images/weather.png" alt="" align="center">
            </span>
        <span class="msg-span">
                <span>|</span>
                <a href="#">换肤</a>
                <a href="#">消息</a>
            </span>
    </div>
    <!--右边-->
    <div class="header-right">
        <a href="#">新闻</a>
        <a href="#">hao123</a>
        <a href="#">地图</a>
        <a href="#">学术</a>
        <a href="">KaiSarH</a>
        <a href="#" class="more-product">更多产品</a>
    </div>
</header>
<!--搜索-->
<section id="content">
    <!--logo-->
    <div class="logo">
        <img src="images/bd_logo.png" alt="百度logo">
    </div>
    <div class="search">
        <form action="">
            <input name="content" type="text" class="search-input">
            <input name="btn" type="submit" class="search-submit" value="百度一下">
        </form>
    </div>
    <!--搜索-->
</section>
<!--列表-->
<section id="list">
    <!--头部-->
    <div class="list-head">
        <!--左边-->
        <div class="list-head-left">
            <a href="">
                <img src="images/person_icon.png" alt=我的关注"">
                <span>我的关注</span>
            </a>
            <a href="">
                <span>推荐</span>
            </a>
            <a href="">
                <span>导航</span>
            </a>
        </div>
        <!--右边-->
        <div class="list-head-right">
            <a href="#">
                <img src="images/setting_icon.png" alt=设置"">
            </a>
        </div>
    </div>
    <!--内容-->
    <div class="list-content">
        <!--内容的左边-->
        <div class="list-content-left">
            <!--也可以使用ul li制作-->
            <!--1-->
            <div class="list-content-cell1">
                <h3>大满贯14冠!德约3-0完胜波特罗 美网三度封王</h3>
                <img src="images/cell_img1.png" alt="图片">
                <img src="images/cell_img2.png" alt="图片">
                <img src="images/cell_img3.png" alt="" 图片>
                <p>网易新闻 09-20 13:19</p>
            </div>
            <!--2-->
            <div class="list-content-cell2">
                <div class="cell-img">
                    <img src="images/cell_img1.png" alt=图片"">
                </div>
                <div class="cell-title">
                    <h3>大满贯14冠!德约3-0完胜波特罗 美网三度封王</h3>
                    <p>网易新闻 09-10 13:19</p>
                </div>
            </div>
            <!--3-->
            <div class="list-content-cell2">
                <div class="cell-img">
                    <img src="images/cell_img2.png" alt="图片">
                </div>
                <div class="cell-title">
                    <h3>大满贯14冠!德约3-0完胜波特罗 美网三度封王</h3>
                    <p>网易新闻 09-10 13:19</p>
                </div>
            </div>
        </div>
        <!--内容的右边-->
        <div class="list-content-right">
            <div class="right-top">
                <h4>实时热点</h4>
                <div>
                    <img src="images/circle_icon.png" alt="图片">
                    <span>换一换</span>
                </div>
            </div>
            <div class="right-body">
                <ul>
                    <li>高晓松 丁香医生</li>
                    <li>中国参加俄军演</li>
                    <li>高晓松 丁香医生</li>
                    <li>中国参加俄军演</li>
                    <li>高晓松 丁香医生</li>
                    <li>中国参加俄军演</li>
                    <li>高晓松 丁香医生</li>
                    <li>中国参加俄军演</li>
                    <li>高晓松 丁香医生</li>
                    <li>中国参加俄军演</li>
                    <li>高晓松 丁香医生</li>
                    <li>中国参加俄军演</li>
                </ul>
            </div>
        </div>
    </div>
</section>
</body>
</html>

css:

* {
    margin: 0;
    padding: 0;
    /*设置所有内容往里收缩*/
    box-sizing: border-box;
}

body {
    /*margin-bottom: 200px;*/
}

/************************头部-start**********************/
#header {
    height: 33px;
    border-bottom: 1px solid #ebebeb;
}

#header a {
    color: #555555;
    font-size: 13px;
}

#header .header-left {
    width: 270px;
    height: 33px;
    float: left;
    line-height: 33px;
}

#header .header-left a {
    margin-left: 8px;
}

#header .header-right {
    width: 600px;
    height: 33px;
    float: right;
    text-align: right;
    line-height: 33px;
}

#header .header-right a {
    font-weight: bolder;
    margin-left: 15px;
}

#header .header-right a.more-product {
    background-color: #398bfb;
    /*行内 --> 行内-块级*/
    display: inline-block;
    width: 86px;
    height: 33px;
    line-height: 33px;
    text-align: center;
    color: #fff;
    text-decoration: none;
    vertical-align: top;
}

/************************头部-end**********************/

/************************搜索-start**********************/
#content {
    width: 641px;
    height: 189px;
    margin: 20px auto;
}

#content .logo {
    text-align: center;
    width: 641px;
    height: 112px;
}

#content .logo img {
    width: 270px;
    height: 112px;
}

#content .search {
    width: 100%;
    height: 77px;
    padding-top: 10px;
}

#content .search form {
    width: 100%;
    height: 44px;
}

#content .search form .search-input {
    width: 536px;
    height: 44px;
    padding-left: 8px;
    /*去除外边框*/
    outline: none;
    border: 1px solid #e0e0e0;
    float: left;
}

#content .search form .search-input:focus {
    border-color: #398bfb;
}

#content .search-submit {
    width: 105px;
    height: 44px;
    background-color: #398bfb;
    border: none;
    float: left;
    color: #fff;
    font-size: 16px;
    /*去除外边框*/
    outline: none;
}

/************************搜索-end**********************/

/************************列表-start**********************/
#list {
    width: 893px;
    height: 600px;
    border: 1px solid #ebebeb;
    margin: 0 auto;
}

#list .list-head {
    height: 40px;
    line-height: 40px;
    border-bottom: 1px solid #ebebeb;
}

#list .list-head .list-head-left {
    float: left;
    /*
    解决空格留白的问题
    <a>标签如果换行会有空白
    */
    font-size: 0;
}

#list .list-head .list-head-left a {
    display: inline-block;
    height: 40px;
    line-height: 40px;
    font-size: 14px;
    text-decoration: none;
    padding: 0 10px;
    color: #555555;
    vertical-align: top;
}

#list .list-head .list-head-left a img,
#list .list-head .list-head-left a span {
    vertical-align: middle;
}

#list .list-head .list-head-left a:hover {
    background-color: #cccccc;
}

#list .list-head .list-head-right {
    float: right;
    margin-right: 10px;
}

#list .list-head .list-head-right img {
    vertical-align: middle;
}

/*列表内容*/
#list .list-content {

}

#list .list-content .list-content-left {
    width: 575px;
    height: 600px;
    float: left;
    padding: 10px 5px 5px 10px;
}

#list .list-content .list-content-left .list-content-cell1 {
    border-bottom: 1px solid #e0e0e0;
    padding-bottom: 5px;
}

#list .list-content .list-content-left .list-content-cell1 h3 {
    margin-bottom: 10px;
}

#list .list-content .list-content-left .list-content-cell1 p {
    margin: 3px 0;
    color: #555555;
    font-size: 12px;
}

#list .list-content .list-content-left .list-content-cell2 {
    padding: 20px 0;
    height: 160px;
    border-bottom: 1px solid #e0e0e0;
}

#list .list-content .list-content-left .list-content-cell2 .cell-img {
    float: left;
}

#list .list-content .list-content-left .list-content-cell2 .cell-title{
    float: left;
    width: 360px;
    padding: 20px;
}

#list .list-content .list-content-left .list-content-cell2 h3 {
    margin-bottom: 10px;
}

#list .list-content .list-content-left .list-content-cell2 p {
    margin: 3px 0;
    color: #555555;
    font-size: 12px;
}

#list .list-content .list-content-right{
    width: 315px;
    height: 600px;
    float: left;
}

#list .list-content .list-content-right .right-top{
    height: 60px;
    width: 315px;
    padding: 20px;
}

#list .list-content .list-content-right .right-top h4{
    float: left;
}

#list .list-content .list-content-right .right-top div{
    float: right;
}

#list .list-content .list-content-right .right-top div img,
#list .list-content .list-content-right .right-top div span{
    vertical-align: middle;
}

#list .list-content .list-content-right .right-body{
    padding: 0 20px;
}

#list .list-content .list-content-right .right-body ul li{
    list-style: none;
    width: 130px;
    height: 40px;
    line-height: 40px;
    float: left;
    color: #666666;
    font-size: 14px;
}

/************************列表-end**********************/

总结:
这个界面总体来说不难,主要联系了前面学习的盒子,CSS,以及各种元素状态设置.

  1. 行间距
    ① 在CSS中并没有为我们提供一个直接设置行间距的方式,我们只能通过设置高来简介的设置行间距,行高越大行间距越大
    ② 行间距 = 行高 - 字体大小
    ③ line - height 行高.可接收的值:
    ⅰ 直接接收一个大小
    ⅱ 指定一个百分数,相对于字体计算行高
    ⅲ 传一个数值,行高会设置字体大小相应的倍数
    对于单行文本来说,可以将行高设置为和父元素的高度一致,这样可以让单行文本在父元素中垂直居中.

  2. 文档流
    概念:文档流处在网页的最底层,它表示的是一个页面中的位置,我们所创建的元素默认都会处在文档流中
    元素在文档流中的特点:
    ① 块元素

    1. 块元素在文档流中会独占一行,块元素自上向下排列
    2. 块元素在文档流中默认宽度是父元素的100%
    3. 块元素在文档流中高度默认被内容撑开

    ② 内联元素

    1. 内联元素在文档流中只占自身大小,会默认从左向右排列,如果一行中不足以容纳所有的内联元素,则会换到下一行,继续自左向右
    2. 在文档流中,内联元素的宽度和高度默认都会被内容撑开
  3. 浮动
    使用float来设置元素浮动.可选值:
    ① none 默认值,不浮动,元素在文档流中
    ② left 元素向左浮动
    ③ right 元素向右浮动
    特点:

    1. 元素浮动以后会完全脱离文档流
    2. 浮动以后元素会一直向父元素的最上方浮动,直到遇到父元素的边框或者其他浮动元素,会停止移动
    3. 如果浮动元素上边是一个块元素,则浮动元素不会覆盖块元素
    4. 浮动元素不会超过它上边的浮动的兄弟元素,最多一边齐
    5. 浮动元素不会覆盖文字,文字会自动环绕在浮动元素的周围,可以通过浮动来实现文字环绕的效果

    浮动以后元素的特点:
    ①元素浮动以后,会使其完全脱离文档流
    ②块元素 块元素脱离文档流以后,不再独占一行,宽度和高度都会被内容撑开
    ③内联元素 内联元素脱离文档流后会变成块元素(行内-块级标签)

  4. 标签剧中

    1. 水平居中
      行内 & 行内-块级标签 设置父标签 text-align : center
      块级标签 设置自身 margin : 0 auto
    2. 垂直居中
      行内 & 行内-块级标签 设置父标签 line-height == height
      定位