本文是针对刚学编程的小白,都是一些基础知识,如果想了解更多深层一点的东西,欢迎移步本人博客!!
博客地址 点击跳转
文章中我所提到的快捷键是用的webstrom编辑器,如果你用的不是webstrom的话,那你也改成webstorm吧,初学者还是用这款编辑器比较好
背景相关的所有属性
背景颜色
- 示例代码 :
<div class="box1"></div>
<div class="box2"></div>
<div class="box3"></div>
<div class="box4"></div>
<style>
div{
width: 200px;
height: 200px;
}
.box1{
background-color: red;
}
.box2{
background-color: rgb(0,255,0);
}
.box3{
background-color: rgba(0,0,255,1);
}
.box4{
background-color: #0ff;
opacity: 0.5;
}
</style>
背景图片
- 如何设置背景图片
- background-image:url();的属性专门设置背景图片
- 注意点:
1.图片地址必须放在url中 图片的地址可以是本地的 也可以是外部链接的
2.如果网页上出现了图片 浏览器会再次发送请求获取图片
3.如果图片没有指定的宽高那么大的话 那么他会自动拉伸平铺
- 示例代码 :
<div class="box1"></div>
<style>
div{
width: 400px;
height: 400px;
}
.box1{
background-image: url(images/girl.jpg);
/*background-image: url(https://www.baidu.com/img/bd_logo1.png);*/
}
</style>
背景平铺
- 在CSS中 有一个background-repeat属性
- 取值:
**1.repeat:默认 在水平和垂直都需要平铺
2.no-repeat:在水平和垂直都不需要平铺
3.repeat-x:水平平铺
4.repeat-y:垂直平铺**
- 示例代码 :
<div class="box1"></div>
<style>
div{
width: 500px;
height: 500px;
}
.box1{
background-image: url(images/girl.jpg);
background-repeat: repeat-x;
}
body{
background-image: url(images/bg2.jpg);
}
</style>
背景定位属性
- CSS中有个
background-position: 0 0;
属性 专门控制背景图片位置 - 格式:
background-position: 水平方向 垂直方向;
- 取值
具体的方位名称
1.水平方向:left center right
2.垂直方向:top bottom center
具体的像素
1.background-position: 100px 200px;
2.一定要记住写单位(px) 可以写负值
-
注意点:
同一个标签可以同时设置背景颜色和背景图片 如果同时存在 那么图片会覆盖颜色 - 示例代码 :
<div class="box1"></div>
<style>
div{
width: 500px;
height: 500px;
}
.box1{
background-color: green;
background-image: url(images/girl.jpg);
background-repeat: no-repeat;
background-position: center top;
background-position: 100px 200px;
background-position: -20px -50px;
}
body{
background-repeat: no-repeat;
background-image: url(images/yxlm.jpg);
background-position: center 0;
}
</style>
背景的缩写
-
格式
background:背景颜色 背景图片 平铺方式 关联方式 定位方式;
background: green url(images/girl.jpg) no-repeat left bottom;
-
注意点:
background
属性中 任何一个属性都可以被省略 - 什么是背景的关联方式
- 默认情况下 背景图片会随着滚动条的滚动而滚动 那么我们就可以修改背景图片和滚动条的关联方式
- 如何修改背景的关联方式
CSS中有个background-attachment
属性来修改关联方式 - 格式:
background-attachment:fixed;
- 取值:
fixed:
不会随着滚动而滚动
scroll:
会随着滚动条而滚动 - 示例代码 :
<style>
div{
width: 500px;
height: 500px;
background-color: green;
background-image: url(images/girl.jpg);
background-repeat: no-repeat;
background-position: left bottom;
background: green url(images/girl.jpg) no-repeat left bottom;
}
body{
background-image: url(images/girl.jpg);
background-repeat: no-repeat;
background-attachment:fixed;
}
</style>
背景图片和插入图片区别
-
区别:
1.背景图片仅仅是一个装饰 不会占用位置 插入图片会占用一个位置
2.背景图片有定位属性 很方便的控制图片的位置
3.插入图片没有定位属性 控制不了图片的位置
4.插入图片的语义比背景图片的语义要强 所以在企业开发中如果你的图片想被搜索引擎收录 - 示例代码 :
<div class="box1">我是文字</div>
<div class="box2">
![](images/girl.jpg)
我是文字
</div>
<style>
div{
/*width: 150px;*/
/*height: 170px;*/
width: 300px;
height: 300px;
background-color: red;
}
.box1{
background-image: url(images/girl.jpg);
background-repeat:no-repeat;
background-position: right bottom;
}
</style>
CSS精灵图
CSS的精灵图是一种合成技术
CSS精灵图的作用
- 可以减少请求的次数 可以降低服务器处理的压力
如果使用CSS精灵图
- CSS的精灵图需要配合背景图片和背景定位来使用
- 示例代码 :
div class="box1"></div>
<style>
div{
width: 86px;
height: 28px;
background-image: url(images/weibo.png);
background-position: -425px -200px;
}
</style>
边框属性1
边框就是环绕在标签宽度和高度周围的线条
格式
-
连写(同时设置四条边的边框)
border:边框的宽度 边框的样式 边框的颜色; -
快捷键:
bd+ border: 1px solid #000; - 注意点:
1.连写格式中颜色可以省略 默认是黑色
2.连写格式中样式不可以省略 省略之后就看不到边框了
3.连写格式中宽度可以省略 省略之后还是可以看到
4.连写(分别设置四条边的边框)
**border-top:边框的宽度 边框的样式 边框的颜色;
border-bottom:边框的宽度 边框的样式 边框的颜色;
border-left:边框的宽度 边框的样式 边框的颜色;
border-right:边框的宽度 边框的样式 边框的颜色;
快捷键:
bt+
br+
bb+
bl+
**
- 示例代码 :
<div class="box1"></div>
<style>
.box1{
width: 200px;
height: 200px;
background-color:red;
/*border: 5px solid blue;*/
border-top: 5px solid yellow;
border-right: 10px dashed green;
border-bottom: 15px dotted purple;
border-left: 20px double pink;
}
</style>
边框属性2
连写(分别设置四条边的边框)
border-width: 上 右 下 左
border-style: 上 右 下 左
border-color: 上 右 下 左
- 注意点:
**1.这三个属性的取值 是按照顺时针赋值的 也就是按照上右下左
2.这三个属性的取值 省略时的规律
2.1 上 右 下 左 > 上 右 下 > 左边的取值和右边的一样
2.2 上 右 下 左 > 上 右 > 左边的取值和右边的一样 下边的和上边的一样
2.3 上 右 下 左 > 上 > 右下左和上边的一样
**
非连写(方向+样式)
border-top-width:;
border-top-style:;
border-top-color: #000;
以此类推 ..
- 示例代码 :
<div class="box"></div>
<style>
.box{
width: 300px;
height: 300px;
background-color: red;
/*border-width: 5px 10px 15px 20px;*/
/*border-style:solid dashed dotted double;*/
/*border-color: blue green purple pink;*/
border-top-width:;
border-top-style:;
border-top-color: #000;
}
</style>
内边距属性
边框和内容之间的距离就是内边距
- 格式
-
非连写
padding-top
padding-bottom
padding-right
padding-left
- 连写
- padding:上 右 下 左
- 这三个属性的取值 省略时的规律
2.1 上 右 下 左 > 上 右 下 > 左边的取值和右边的一样
2.2 上 右 下 左 > 上 右 > 左边的取值和右边的一样 下边的和上边的一样
2.3 上 右 下 左 > 上 > 右下左和上边的一样 - 注意点:
1.给标签设置内边之后 标签占有的原有宽度和高度会发生变化
2.给标签设置背景颜色 内边距也会有背景颜色
外边距属性
标签和标签之间的距离就是外边距
- 格式
-
非连写
margin-top:;
margin-right:;
margin-bottom:;
margin-left:;
-
连写
margin:上 右 下 左; -
这三个属性的取值 省略时的规律
2.1 上 右 下 左 > 上 右 下 > 左边的取值和右边的一样
2.2 上 右 下 左 > 上 右 > 左边的取值和右边的一样 下边的和上边的一样
2.3 上 右 下 左 > 上 > 右下左和上边的一样 -
注意点:
外边距的那一部分是没有背景颜色的
外边距的合并现象
- 在默认布局的垂直方向 默认情况下外边距是不会叠加的 会出现合并现象 谁的外边距比较大就显示谁的注意点:在盒子浮动的时候 脱离标准流的时候 他们的外边距在垂直方向是叠加的
- 示例代码 :
<span class="hezi1">我是span</span><span class="hezi2">我是span</span>
<div class="box1"></div>
<div class="box2"></div>
<style>
span{
display: inline-block;
width: 100px;
height: 100px;
border: 1px solid black;
}
div{
height: 100px;
border: 1px solid #000;
}
.hezi1{
margin-right: 50px;
}
.hezi2{
margin-left: 100px;
}
.box1{
margin-bottom:50px;
}
.box2{
margin-top: 100px;
}
</style>
盒子模型
盒子只是一个形象的比喻 在HTML中所有的标签都是盒子
- 结论:
在HTML中所有的标签都可以设置
宽度/高度 == 指定可以存放内容区域
内边距 == 填充物
边框 == 手机盒子自己
外边距 == 盒子与盒子之间的间隙
- 示例代码 :
<span>我是Span</span>
<a href="#">我是超链接</a>
<b>我是加粗</b>
<strong>我是强调</strong>
<style>
span,a,b,strong{
display: inline-block;
width: 100px;
height: 100px;
border: 5px solid #000;
margin: 20px;
padding: 20px;
}
</style>
盒子模型宽度和高度
内容的宽度和高度
通过标签的width和height属性设置的宽度和高度
元素的宽度和高度
宽度 = 左边的边框+内边距+内容的宽度+右边内边距+右边边框
高度 同理可证
元素空间的宽度和高度
宽度 = 左边的外边距+左边框+左内边距+内容的宽度
盒子的box-sizing属性
- 示例代码 :
<div class="content">
<div class="aside"></div>
<div class="article"></div>
</div>
<style>
.content{
width: 300px;
height: 300px;
background-color: red;
}
.aside{
width: 100px;
height: 200px;
background-color: green;
float: left;
}
.article{
/*
1.CSS3中新增了一个box-sizing属性 这个属性可以保证我们给盒子新增padding和border之后 盒子元素的自身宽度和高度不会发生改变
2.box-sizing属性是如何保证盒子的padding和border之后.盒子元素的宽度和高度不变
原理还是减去内容的宽度和高度
3.box-sizing
3.1 content-box
元素的宽高 = 边框 + 内边距 + 内容宽高
3.2 border-box
元素的宽高 = width属性
*/
box-sizing: border-box;
width: 200px;
height: 200px;
background-color: blue;
float: right;
border: 20px solid #000;
padding: 20px;
}
</style>
盒子居中和内容居中
- 1.text-align:center;和margin:0 auto;之间的区别
- 1.1 text-align: center;
- 作用:设置盒子中存储的文字和图片水平居中
- 2.margin: 0 auto;
作用:让盒子自己居中 - 注意点:
2.1 使用margin:0 auto;的盒子 必须要width 有明确的width 如果没有的话 就通栏了
2.2 只有标准流的盒子 才能使用 margin:0 auto; 浮动流和定位流都不能使用
<div class="father">
我是文字<br>
![](images/girl.jpg)
<div class="son"></div>
<style>
.father{
width: 800px;
height: 500px;
background-color: green;
text-align: center;
}
.son{
width: 100px;
height: 100px;
background-color: blue;
margin: 0 auto;
}
</style>
- #### 清空默认边距
- 1.为什么清空默认边距(外边距和内边距)
在企业开发中为了更好的控制盒子的宽高和计算盒子的宽高 所以在开发中 编写代码之前第一件事就是清空系统默认的边距 - 2.格式:
*{
margin: 0;
padding: 0;
}
- 3.注意点:
3.1 通配符的选择器会遍历当前界面中所有的标签 所以性能不好
3.2 企业开发中可以直接在这个网站中拷贝
http://yui.yahooapis.com/3.18.1/build/cssreset/cssreset-min.css
<style>
/*
*{
margin: 0;
padding: 0;
}
*/
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{
margin: 0;
padding: 0;
}
p{
width: 610px;
height: 110px;
background-color: #cdcdcd;
border: 1px solid #020202;
}
</style>
- #### 行高和字号
- 1.什么是行高
- 在CSS中所有的行 都有它自己的行高
- 注意点:
行高和盒子的高 不是同一个概念 - 规律:
- 文字在行高中是默认垂直居中的
- 在企业开发中 我们经常把盒子的高度和文字的行高设置成一样 这样可以保证一行文字在盒子的高度中垂直居中 简言而之就是 要想一行文字在盒子中垂直居中 那么只需要设置这行文字的行高即可
- 在企业开发中 如果一个盒子中有多行文字 那么我们就不能通过设置盒子高等于行高来实现文字垂直居中 只能通过padding来实现居中
<style>
/*
*{
margin: 0;
padding: 0;
}
*/
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{
margin: 0;
padding: 0;
}
p{
width: 610px;
height: 110px;
background-color: #cdcdcd;
border: 1px solid #020202;
}
div{
box-sizing: border-box;
width: 100px;
height: 80px;
border: 1px solid #000;
/*line-height: 80px;*/
line-height: 20px;
padding-top: 20px;
padding-bottom: 20px;
}
</style>
- #### 还原字体和字号
- 注意点:
1.在企业开发中 如果一个盒子中存储的是文字 那么一般情况下我们会以盒子左边的内边距为准 因为右边的内边距有误差
2.误差就是当右边的文字和边框之间的距离不够存放一个文字的时候 就会自动换行 所以导致的误差
3.顶部的内边距并不是从边框到文字顶部的距离 而是从边框到行高顶部的距离
<style>
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{
margin: 0;
padding: 0;
}
p{
box-sizing: border-box;
width: 610px;
height: 110px;
background-color: #cdcdcd;
border: 1px solid #020202;
font-family:"黑体";
font-size: 20px;
line-height: 40px;
color: #67676d;
padding: 10px;
}
</style>
- #### 文章界面
<div>
<h1>我是标题/<span>New Articles</span>></h1>
<ul>
<li>我是第一行,我是第一行</li>
<li>我是第二行,我是第一行</li>
<li>我是第三行,我是第一行</li>
<li>我是第四行,我是第一行</li>
<li>我是第五行,我是第一行</li>
</ul>
</div>
<style>
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{
margin: 0;
padding: 0;
}
body{
background-color: #efefef;
}
div{
box-sizing: border-box;
width: 372px;
height: 232px;
border: 1px solid #666;
margin: 0 auto;
padding: 15px;
}
h1{
font-family:"微软雅黑";
font-size: 18px;
border-bottom: 1px solid #666;
padding-bottom:10px;
}
span{
font-size: 14px;
}
ul{
list-style:none;
margin-top: 10px;
}
ul li{
line-height:30px;
border-bottom: 1px dashed #666;
font-family:"微软雅黑";
font-size:12px;
color: #242424;
padding-left:20px;
}
</style>
- #### 网页布局方式
- 1.什么是网页布局方式
就是指浏览器是如何对网页中的元素进行排版的 -
1.标准流(文档流/普通流)的排版方式
1.1 浏览器默认的排版方式就是标准流
1.2 在CSS中元素分为三类 块级/行内/行内块级
1.3 标准流中有两种排版方式 垂直(块级标签都是垂直排版)和水平(行内和行内块级都是水平)排版 -
2.浮动流的排版方式
2.1 浮动流是一种半脱离标准流的排版方式
2.2 浮动流只有一种排版方式 就是水平排版 只能设置某个元素的左对齐和右对齐 注意点:
1.没有居中对齐 没有center取值
2.在浮动流中不可以使用margin:0 auto;的 是无效的
特点:
1.在浮动流中是不区分 块级标签/行内标签/行内块级标签 都可以水平排版
2.在浮动流中无论是块级标签/行内标签/行内块级标签都可以设置宽高
3.综上所述 浮动流中的元素和标准流中的行内块级元素很像\
- 3.定位流的排版方式
<div class="box1"></div>
<div class="box2"></div>
<style>
.box1{
width: 200px;
height: 200px;
background-color: red;
display: inline-block;
float: left;
}
.box2{
width: 200px;
height: 200px;
background-color: blue;
display: inline-block;
float: right;
}
</style>
- #### 浮动元素的脱标
- 1.什么是浮动元素脱标
脱标:脱离标准流
当某个元素浮动之后 那这个元素看上去就像被从标准流删除一样 这就是浮动元素脱标 - 2.浮动元素脱标之后会有什么影响
如果前面一个元素浮动了 而后面一个元素没有浮动 那么这时候前面的一个元素就会盖住后面的一个
<div class="box1"></div>
<div class="box2"></div>
<style>
.box1{
float: left;
width: 100px;
height: 100px;
background-color: red;
}
.box2{
width: 150px;
height: 150px;
background-color: blue;
}
</style>
- #### 浮动元素的排序规则
- 1.浮动元素的排序规则
- 1.1 相同方向上的浮动元素 先浮动的元素会显示在前面 后浮动的元素会显示在后面
- 1.2 不同方向上的浮动 左浮动会找左浮动 右浮动会找右浮动
- 1.3 浮动元素浮动之后的位置 由浮动元素浮动之前的标准流的位置来确定
<div class="box1">1</div>
<div class="box2">2</div>
<div class="box3">3</div>
<div class="box4">4</div>
<style>
.box1{
width: 50px;
height: 50px;
background-color: red;
float: left;
}
.box2{
/*float: left;*/
width: 100px;
height: 100px;
background-color: pink;
}
.box3{
float: left;
width: 150px;
height: 150px;
background-color: yellow;
}
.box4{
float: left;
width: 200px;
height: 200px;
background-color: blue;
}
</style>
- #### 浮动元素的贴靠现象
<div class="father">
<div class="box1">1</div>
<div class="box2">2</div>
<div class="box3">3</div>
</div>
<style>
.father{
width: 400px;
height: 400px;
border: 1px solid #000;
}
.box1{
float: left;
width: 50px;
height: 300px;
background-color: red;
}
.box2{
float: left;
width: 50px;
height: 100px;
background-color: green;
}
.box3{
float: left;
width: 250px;
height: 100px;
background-color: blue;
}
</style>
- #### 浮动元素字围现象
![](images/picture.jpg)<p>养老金个账空账率超九成 将来兑现或入不敷出养老金个账空账率超九成 将来兑现或入不敷出养老金个账空账率超九成 将来兑现或入不敷出养老金个账空账率超九成 将来兑现或入不敷出养老金个账空账率超九成 将来兑现或入不敷出养老金个账空账率超九成 将来兑现或入不敷出养老金个账空账率超九成 将来兑现或入不敷出养老金个账空账率超九成 将来兑现或入不敷出养老金个账空账率超九成 将来兑现或入不敷出养老金个账空账率超九成 将来兑现或入不敷出养老金个账空账率超九成 将来兑现或入不敷出养老金个账空账率超九成 将来兑现或入不敷出养老金个账空账率超九成 将来兑现或入不敷出养老金个账空账率超九成 将来兑现或入不敷出养老金个账空账率超九成 将来兑现或入不敷出养老金个账空账率超九成 将来兑现或入不敷出养老金个账空账率超九成 将来兑现或入不敷出养老金个</p>
<style>
div{
float: left;
width: 100px;
height: 100px;
border: 1px solid #000;
background-color: red;
}
p{
width: 500px;
height: 500px;
background-color: pink;
}
img{
float: left;
}
</style>
- #### 浮动练习
<div class="header">
<div class="logo"></div>
<div class="language"></div>
<div class="nav"></div>
</div>
<div class="content">
<div class="aside"></div>
<div class="article">
<div class="articleTop">
<div class="articleTopLeft">
<div class="xinwen1"></div>
<div class="xinwen2"></div>
</div>
<div class="articleTopRight"></div>
</div>
<div class="articleBottom"></div>
</div>
</div>
<div class="footer"></div>
<style>
body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, dialog, figure, footer, header, hgroup, nav, section{
margin: 0;
padding: 0;
}
.header{
width: 980px;
height: 100px;
margin: 0 auto;
}
.header .logo{
float: left;
width: 250px;
height: 100px;
background-color: pink;
}
.header .language{
float: right;
width: 150px;
height: 50px;
background-color: skyblue;
}
.header .nav{
float: right;
width: 650px;
height: 50px;
background-color: purple;
}
.content{
width: 980px;
height: 400px;
margin: 0 auto;
margin-top: 10px;
}
.content .aside{
float: left;
width: 320px;
height: 400px;
background-color: yellow;
}
.content .article{
float: right;
width: 650px;
height: 400px;
}
.content .article .articleTop{
width: 650px;
height: 350px;
}
.content .article .articleTop .articleTopLeft{
width: 400px;
height: 350px;
float: left;
}
.content .article .articleTop .articleTopLeft .xinwen1{
width: 400px;
height: 200px;
background-color: deepskyblue;
}
.content .article .articleTop .articleTopLeft .xinwen2{
width: 400px;
height: 140px;
background-color: deeppink;
margin-top: 10px;
}
.content .article .articleTop .articleTopRight{
width: 240px;
height: 350px;
background-color: blueviolet;
float: right;
}
.content .article .articleBottom{
width: 650px;
height: 40px;
background-color: brown;
margin-top: 10px;
}
.footer{
width: 980px;
height: 40px;
background-color: tomato;
margin: 0 auto;
margin-top: 10px;
}
</style>