div
div 可定义文档中的分区(division)。
div 标签可以把网页分割为独立的、不同的部分。
image.png
可以看成以下结构:
image.png
<div> 不像 h1,p标签,没有任何默认样式,其主要作用是标识网页上的某块区域。常见做法是通过给div元素加上id或class
,然后通过css选中某个div,对其进行样式美化。
<div class="demo">我是一个div</div>
<style> .demo{ color:red; font-size: 20px; } </style>
image.png
每个div可以看成一个盒子
一个盒子中主要的属性有5个:width、height、padding、border、margin。如下:
width:内容的宽度。CSS中 width 指的是内容的宽度,而不是盒子的宽度。盒子的宽度=内容宽度+padding+border
height:内容的高度。CSS中 height 指的是内容的高度,而不是盒子的高度。盒子的高度=内容高度+padding+border
padding:内边距。
border:边框。
margin:外边距。
image.png
元素宽高
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> div { width: 200px; height: 200px; background-color: gray; } </style> </head> <body> <div>我是一只小小鸟</div> </body> </html>
image.png
边框
属性 说明 示例
border-top-color 上边框颜色 border-top-color:#369;
border-right-color 右边框颜色 border-right-color:#369;
border-bottom-color 下边框颜色 border-bottom-color:#fae45b;
border-left-color 左边框颜色 border-left-color:#efcd56;
border-color 四个边框为同一颜色 border-color:#eeff34;
上、下边框颜色:#369
左、右边框颜色:#000
border-color:#369 #000;
上边框颜色:#369
左、右边框颜色:#000
下边框颜色:#f00
border-color:#369 #000 #f00;
上、右、下、左边框颜色:
#369、#000、#f00、#00f
border-color:#369 #000 #f00 #00f;
边框粗细
border-width:像素值
order-top-width:5px; border-right-width:10px; border-bottom-width:8px; border-left-width:22px; border-width:5px ; border-width:20px 2px; border-width:5px 1px 6px; border-width:1px 3px 5px 2px;
边框样式
none
hidden
dotted
dashed
solid
double
border-top-style:solid; border-right-style:solid; border-bottom-style:solid; border-left-style:solid; border-style:solid ; border-style:solid dotted; border-style:solid dotted dashed; border-style:solid dotted dashed double;
border简写
同时设置边框的颜色、粗细和样式
border-bottom: 9px #F00 dashed ; border: 9px #F00 dashed ;
外边距
margin-top margin-right margin-bottom margin-left margin
margin-top: 1px margin-right : 2 px margin-bottom : 2 px margin-left : 1 px margin : 3 px 5 px 7 px 4 px; margin: 3px 5px; margin: 3px 5px 7px; margin: 8px;
外边距的妙用
网页居中对齐
前提,居中对齐的网页元素必须设定宽度。
margin:0px auto;
内边距
padding
padding-left
padding-right
padding-top
padding-bottom
padding
padding-left:10px; padding-right: 5px; padding-top: 20px; padding-bottom:8px; padding:20px 5px 8px 10px ; padding:10px 5px; padding:30px 8px 10px ; padding:10px;
盒子型模的尺寸
image.png
盒子模型总尺寸=border-width+padding+margin+内容宽度
元素默认样式
很多标签都有自己的默认样式
我们在chrome浏览器中运行时,可以通过开发者工具(快捷键Ctrl+Shift+I)来一个个审查元素,来看看它们的默认样式
body标签的margin为8px
image.png
p标签的上下外边距为16px
image.png
h1标签的上下外边距为21.440px
image.png
ul标签的上下外边距也为16px,左内边距也为40px
image.png
重置默认样式
为了兼容性,凡是浏览默认的样式,都不要使用。
重置默认样式 (css reset)
/*默认样式重置(css reset)*/ body, p, h1, h2, h3, h4, h5, h6, dl, dd { margin: 0; font-size: 12px; /* 中文字体大小的最小值 */ } ol, ul { list-style: none; /* 去除列表样式 */ padding: 0; margin: 0; } a { text-decoration: none; }
练习 有路网右侧黑板报
image.png
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="reset.css"> <style> .black-board{ width: 220px; } .black-board h2{ font-size: 18px; padding-top: 6px; /*border: 1px solid red;*/ padding-bottom: 6px; } .black-board a{ color: black; line-height: 22px; } .black-board a:hover{ color: orange; text-decoration: underline; } .black-board ul{ padding-left: 22px; padding-bottom: 6px; } .black-board .report { border-bottom: 1px solid gray; border-right: 1px solid gray; padding-left: 10px; } .black-board .shopping{ border-bottom: 1px solid gray; border-right: 1px solid gray; padding-left: 10px; margin-bottom: 10px; } </style> </head> <body> <div class="black-board"> <div class="report"> <h2>黑板报</h2> <ul> <li><a href="#">双十一积分兑好礼</a></li> <li><a href="#">双十一积分兑好礼</a></li> <li><a href="#">双十一积分兑好礼</a></li> <li><a href="#">双十一积分兑好礼</a></li> </ul> </div> <div class="shopping"> <h2>购物指南</h2> <ul> <li><a href="#">支付宝担保交易,安全快捷</a></li> <li><a href="#">支付宝担保交易,安全快捷</a></li> <li><a href="#">支付宝担保交易,安全快捷</a></li> <li><a href="#">支付宝担保交易,安全快捷</a></li> <li><a href="#">支付宝担保交易,安全快捷</a></li> <li><a href="#">支付宝担保交易,安全快捷</a></li> <li><a href="#">支付宝担保交易,安全快捷</a></li> </ul> </div> <div class="ads"> <img src="zhinan.jpg"> </div> </div> </body> </html>
练习 有路网左侧图书分类
image.png
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link href="reset.css" rel="stylesheet"> <style> .book-info { width: 210px; } .book-info li { border-bottom: 1px solid gray; border-right: 1px solid gray; padding-left: 30px; padding-right: 18px; padding-bottom: 10px; } .book-info h2 { font-size: 14px; padding-left: 4px; padding-top: 6px; margin-bottom: 4px; } .book-info a{ line-height: 24px; color: #666666; } .book-info a:hover{ text-decoration: underline; } .book-browse h3 { border-right: 1px solid gray; font-size: 14px; font-weight: bold; padding-top: 10px; padding-bottom: 10px; padding-left: 8px; } .book-info h3 a:hover{ color: orange; } </style> </head> <body> <div class="book-info"> <div class="book-category"> <ul> <li> <h2>经济管理</h2> <a href="#">市场营销</a> <a href="#">市场营销</a> <a href="#">市场营销</a> <a href="#">市场营销</a> <a href="#">市场营销</a> <a href="#">市场营销</a> </li> <li> <h2>经济管理</h2> <a href="#">市场营销</a> <a href="#">市场营销</a> <a href="#">市场营销</a> <a href="#">市场营销</a> <a href="#">市场营销</a> <a href="#">市场营销</a> </li> <li> <h2>经济管理</h2> <a href="#">市场营销</a> <a href="#">市场营销</a> <a href="#">市场营销</a> <a href="#">市场营销</a> <a href="#">市场营销</a> <a href="#">市场营销</a> </li> <li> <h2>经济管理</h2> <a href="#">市场营销</a> <a href="#">市场营销</a> <a href="#">市场营销</a> <a href="#">市场营销</a> <a href="#">市场营销</a> <a href="#">市场营销</a> </li> <li> <h2>经济管理</h2> <a href="#">市场营销</a> <a href="#">市场营销</a> <a href="#">市场营销</a> <a href="#">市场营销</a> <a href="#">市场营销</a> <a href="#">市场营销</a> </li> <li> <h2>经济管理</h2> <a href="#">市场营销</a> <a href="#">市场营销</a> <a href="#">市场营销</a> <a href="#">市场营销</a> <a href="#">市场营销</a> <a href="#">市场营销</a> </li> </ul> </div> <div class="book-browse"> <h3><a href="#">浏览所有图书分类</a></h3> </div> <div class="book-ads"> <a href="#"><img src="haoshu.jpg"></a> </div> </div> </body> </html>
元素分类
行级(内联)元素
块级元素
内联块元素
行级元素
a
strong
em
内嵌元素的特性:
1.默认同行可以继续跟同类型标签
2.内容撑开宽度
3.不支持宽高
4.不支持上下的margin
span
span是一个特殊的行级标签,和div(块级标签)一样,没有任何语义(样式)。
通常用来着重显示某行文字中的某个单词
image.png
练习 制作参考文献页面
image.png
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>制作参考文献</title> <style type="text/css"> span{ color: red; } </style> </head> <body> <h3>参考文献</h3> <p> [1]<span>顾天晓.</span> Java程序动态更新技术研究[D].南京大学,2017. </p> <p> [2]<span>陆鹿,严立龙,李秋环,曾璐,金鑫,张玉修,侯泉林,张开均.</span>洋底高原及其对地球系统意义研究综述[J].岩 石学报,2016,32(06):1851-1876. </p> <p> [3]<span>黄玉坤,陈榕,裴喜龙,曹璟.</span>基于跨语言对象迁移策略的复合本地对象模型[J].计算机研究与发 展,2015,52(01):141-155. </p> <p> [4]<span>李数函.</span> 基于GP规范的JAVA智能卡操作系统研究[D].电子科技大学,2014. </p> <p> [5]<span>胡光.</span> 硬Java实时嵌入式平台及其关键技术研究[D].复旦大学,2012. </p> <p> [6]<span>邱江.</span> 十七世纪至十九世纪初爪哇农业地理初探(1602-1816)[D].暨南大学,2011. </p> <p> [7]<span>杨克峤.</span> Java程序优化与数据竞争检测的研究[D].复旦大学,2010. </p> <p> [8]<span>邓洋春.</span> Java虚拟机关键机制研究与实践[D].中南大学,2009. </p> <p> [9]<span>董威.</span> 多应用智能卡新技术研究[D].北京邮电大学,2008. </p> <p> [10]<span>王会进,龙舜.</span>Java性能优化技术综述[J].小型微型计算机系统,2008(04):720-725. </p> </body> </html>
块级元素
p
div
h1~h6
ol-li
ul-li
dl-dt-dd
块元素的特性
1.默认独占一行显示
2.没有宽度时,默认撑满一排
3.支持所有css命令
内联块元素—代表元素img
inline-block的特点:
元素在一行显示
支持宽高
没有宽度的时候内容撑开宽度
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> img { width: 300px; height: 200px; } </style> </head> <body> <img src="img/1.jpg"> <img src="img/2.jpg"> </body> </html>
image.png
display属性
控制元素的显示和隐藏
块级元素与行级元素的转变
值 说明
block 块级元素的默认值,元素会被显示为块级元素,该元素前后会带有换行符
inline 内联元素的默认值。元素会被显示为内联元素,该元素前后没有换行符
inline-block 内联块元素
none 设置元素不会被显示
练习 有路网顶部导航
image.png
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="reset.css"> <style> .nav{ height: 30px; line-height: 30px; background-color: #F4F4F4; } .nav .welcome{ padding-left: 120px; margin-right:416px; } .nav li{ display: inline-block; /*border: 1px solid blue;*/ } .nav li a{ /*border: 1px solid red;*/ color: black; padding: 0px 12px; border-right: 1px solid gray; } .nav li a:hover{ color: orange; text-decoration: underline; } .nav .red { color: red; } .nav .last { border-right: 0px solid gray; } </style> </head> <body> <div class="nav"> <ul> <li class="welcome"> <img src="welcome.jpg"> 您好,欢迎光临有路网! </li> <li><a href="#" class="red">我的有路</a></li> <li><a href="#">我的有路</a></li> <li><a href="#">我的有路</a></li> <li><a href="#">我的有路</a></li> <li><a href="#">我的有路</a></li> <li><a href="#">我的有路</a></li> <li> <a href="#"> <img src="ico_phone.gif"> 我的有路 </a> </li> <li><a href="#" class="last">我的有路</a></li> </ul> </div> </body> </html>
背景图像
背景图像
background-image属性
background-image:url(图片路径);
背景重复方式
background-repeat属性
repeat:沿水平和垂直两个方向平铺
no-repeat:不平铺,即只显示一次
repeat-x:只沿水平方向平铺
repeat-y:只沿垂直方向平铺
背景定位
background-position属性
Xpos Ypos
单位:px
Xpos表示水平位置,Ypos表示垂直位置
X% Y%
使用百分比表示背景的位置
X、Y方向关键词
水平方向的关键词:left、center、right
垂直方向的关键词:top、center、bottom
项目实战 制作分页
image.png
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link href="reset.css" rel="stylesheet"> <style> .page{ width: 600px; height: 60px; background-color: #E8E8E8; margin: 0 auto; margin-top: 90px; line-height: 60px; text-align: center; } .page li{ display: inline-block; } .page li a{ border: 1px solid gray; color: black; padding: 6px 8px; background-color: white; } .page li a:hover{ border: 1px solid red; color: red; } .page .active{ background-color: #FCF9EA; cursor: text; font-weight: bold; } .page .active:hover { border: 1px solid gray; color: black; } </style> </head> <body> <div class="page"> <ul> <li><a href="#">上一页</a></li> <li><a href="#" class="active">1</a></li> <li><a href="#">1</a></li> <li><a href="#">1</a></li> <li><a href="#">1</a></li> <li><a href="#">1</a></li> <li><a href="#">1</a></li> <li><a href="#">1</a></li> <li><a href="#">1</a></li> <li><a href="#">1</a></li> <li><a href="#">1</a></li> <li><a href="#">...87</a></li> <li><a href="#">下一页</a></li> </ul> </div> </body> </html>
课后作业
必做任务
1.制作图片商品列表(div标签,边距,填充)
2.注册窗口( div标签,边距,填充)
扩展任务
1.制作家用电器分类(div的嵌套)
2.制作音乐列表(背景图像)
3.制作抽屉样式(div的隐藏)