目标 :
将百度首界面静态实现,实现以下效果.
效果:
代码:
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,以及各种元素状态设置.
-
行间距
① 在CSS中并没有为我们提供一个直接设置行间距的方式,我们只能通过设置高来简介的设置行间距,行高越大行间距越大
② 行间距 = 行高 - 字体大小
③ line - height 行高.可接收的值:
ⅰ 直接接收一个大小
ⅱ 指定一个百分数,相对于字体计算行高
ⅲ 传一个数值,行高会设置字体大小相应的倍数
对于单行文本来说,可以将行高设置为和父元素的高度一致,这样可以让单行文本在父元素中垂直居中. -
文档流
概念:文档流处在网页的最底层,它表示的是一个页面中的位置,我们所创建的元素默认都会处在文档流中
元素在文档流中的特点:
① 块元素- 块元素在文档流中会独占一行,块元素自上向下排列
- 块元素在文档流中默认宽度是父元素的100%
- 块元素在文档流中高度默认被内容撑开
② 内联元素
- 内联元素在文档流中只占自身大小,会默认从左向右排列,如果一行中不足以容纳所有的内联元素,则会换到下一行,继续自左向右
- 在文档流中,内联元素的宽度和高度默认都会被内容撑开
-
浮动
使用float来设置元素浮动.可选值:
① none 默认值,不浮动,元素在文档流中
② left 元素向左浮动
③ right 元素向右浮动
特点:- 元素浮动以后会完全脱离文档流
- 浮动以后元素会一直向父元素的最上方浮动,直到遇到父元素的边框或者其他浮动元素,会停止移动
- 如果浮动元素上边是一个块元素,则浮动元素不会覆盖块元素
- 浮动元素不会超过它上边的浮动的兄弟元素,最多一边齐
- 浮动元素不会覆盖文字,文字会自动环绕在浮动元素的周围,可以通过浮动来实现文字环绕的效果
浮动以后元素的特点:
①元素浮动以后,会使其完全脱离文档流
②块元素 块元素脱离文档流以后,不再独占一行,宽度和高度都会被内容撑开
③内联元素 内联元素脱离文档流后会变成块元素(行内-块级标签) -
标签剧中
- 水平居中
行内 & 行内-块级标签 设置父标签 text-align : center
块级标签 设置自身 margin : 0 auto - 垂直居中
行内 & 行内-块级标签 设置父标签 line-height == height
定位
- 水平居中