/* 总结CSS学习 */
/* 1.字体样式 */
a{
font-size: 20px; /* 字体大小 单位px em */
font-family: "宋体";/* 微软雅黑 宋体 黑体 */
font-family: Arial,"微软雅黑","宋体","黑体";/* 同时指定多个字体.中间以逗号隔开,浏览器如果不支持。会一直往后面找。 */
font-family: "\5b8b\4153";/* \5b8b\4153:Unicode字体 */
font-weight: bold;/* 默认值(不加粗)bold: 定义粗体(加粗的)100-900 400等同于normal.而700等同于bold */
font-style: normal; /* normal:正常的字体 italic:整体倾斜(一般用于斜体标签(em,i)改为普通模式) */
color: red;/* 自定义文字颜色 red:单词:#000000十六进制 rgb(255,103,0); */
text-align: center;/* 文本水平对齐方式left:左对齐right:右对齐center:居中对齐 */
line-height: 24px;/* 行间距 行距比字号大7-8个像素左右就可以了 */
text-indent: 2em;/* 首行缩进 1em 就是一个字的宽度.如果是汉字的段落.1em就是一个汉字的宽度 */
text-decoration: none;/* 文本装饰-文本线条 none:默认:定义标准的文本。取消下划线underline 定义文本下的一条线。下划线也是我们链接自带的(常用)overline:定义文本上的一条线。 line-through:定义穿过文本下的一条线 */
text-decoration: none;/* 取消a标签的下划线 */
text-decoration: underline;/* 文字底部加一条下划线 */
text-decoration: line-through;/* 原价 文字中间加一条线 */
font:normal 700 20px "微软雅黑" /* 综合写法 font:font-style font-weight font-size/line-height font-family */
}
/* 2.选择器 */
/* 后代选择器选择后面的全部 */
div strong {
color: #FF0000;
}
/* 子元素选择器。只显示直属的 */
div>strong {
color: #FF0000;
}
/* 交集选择器。即是**关系,又是**关系; */
p.red{
color: red;
}
/*并集选择器 逗号是和的意思*/
p,div,.red{
color: #FF0000;
}
/*******伪类选择器**********/
/* 未访问过的状态 */
a:link{
color: #FF0000;
text-decoration: none;
}
/* 已经访问过的状态 */
a:visited{
color: #FF0000;
text-decoration: none;
}
/* 鼠标经过连接时候的状态 */
a:hover{
color: aqua;
text-decoration: none;
}
/* 当我们点击的时候(按下鼠标。 点击的时候) */
a:active{
color: gold;
}
/* 3.背景相关 */
.bg{
background-color: #FF0000;/* 背景颜色 */
background-image: url(image/redbgc.png);/* 背景图片地址不要加引号 */
background-repeat:no-repeat;/*背景样式: repeat:平铺 no-repeat:背景图片不平铺repeat-x;横向平铺repeat-y;竖向平铺 */
/* 背景位置:position 重点
center:水平垂直居中
right:垂直靠右
right top:右上角
left top:左上角
left 垂直靠左
top 水平靠上
bottom:水平靠下
bottom left:左下角
bottom right:右下角
background-position: x y; */
background-position: 50px 50px;
background-position: bottom left; /* 左下角 */
background-position: left; /* 左边 */
/*两种定位方式是可以混用的*/
background-position: 10px center;
/* 背景简写 */
/* background: 背景颜色 背景图片地址 背景平铺 背景滚动 背景位置; */
}
/* 4.盒子模型 */
div{
/* 上边框是点状
右边框是实线
下边框是双线
左边框是虚线 */
border-style:dotted solid double dashed; /* 边框样式 */
/*上边框是点状
右边框和左边框是实线
下边框是双线 */
border-style:dotted solid double;
/*上边框和下边框是点状
右边框和左边框是实线 */
border-style:dotted solid;
/*所有 4 个边框都是点状 */
border-style:dotted;
/*
边框线条类型
none 定义无边框。
hidden 与 "none" 相同。不过应用于表时除外,对于表,hidden 用于解决边框冲突。
dotted 定义点状边框。在大多数浏览器中呈现为实线。
dashed 定义虚线。在大多数浏览器中呈现为实线。
solid 定义实线。
double 定义双线。双线的宽度等于 border-width 的值。
groove 定义 3D 凹槽边框。其效果取决于 border-color 的值。
ridge 定义 3D 垄状边框。其效果取决于 border-color 的值。
inset 定义 3D inset 边框。其效果取决于 border-color 的值。
outset 定义 3D outset 边框。其效果取决于 border-color 的值。
inherit 规定应该从父元素继承边框样式。 */
/* 边框综合性写法
粗细 边框样式 边框颜色 */
border: 5px dotted #FF0000;
/* 只定义上边框 */
border-top: 2px solid red;
/* 只定义左边框 */
border-left: 2px solid red;
/* 只定义右边框 */
border-right: 2px solid red;
/* 只定义下边框 */
border-bottom: 2px solid red;
/* 内边距 */
padding-left: 10px;
padding-top: 30px;
/* 简写 */
padding: 20px;/* 上下左右内边距 */
padding: 10px 20px;/* 两个值:上下10px 左右20px */
padding: 10px 20px 30px;/* 三个值:上10px 左右20px 下是30px */
padding: 10px 20px 30px 40px;/* 上 右 下 左 */
padding: 1px;
/*注: 盒子的实际大小=内容的宽度和高度+内边距+边框 */
/* 注意:边框和内边距需要考虑两边的大小。例:一个盒子高度是10px.
上边框2px 和下边框1px.那么高度就是:13px.如果还加上padting:3px.要考虑
上下内边距=6.所以整体的高度就是:13+6=19px */
/* padding不会撑开盒子大小的情况 */
/* 特殊情况。如果这个盒子啊。没有宽度。则padint不会撑开盒子。
例:div 里面包一个p.p盒子的宽度会跟父级元素一样宽。定义p里面的paddting
不会影响p盒子的宽度 */
/* 外边距 */
margin-left: 100px;
margin-right: 100px;
margin-top: 100px;
margin-bottom: 100px;
/* 简写的方法跟padding完全一样 */
/* 让盒子对齐方式 */
/* 水平居中对齐的方式必须要两个条件:
1.必须要有宽度
2.左边外边距设置为:auto; */
margin:0 auto;
/* text-align: center;除了可以让文字居中对齐。还能让行内元素和行内块元素
居中对齐 */
text-align: center;
line-height: 190px;
/* 背景图片和插入图片的区别 */
/* 插入图片移动位置只能靠盒模型:padding 和 margin 两种方式
背景图片移动位置只能通过:background-position: 10px center; */
/* 注:行内元素为了照顾兼容性.尽量只设置左右内外边距。不要设置上下内外边距 */
/* 如果两个相邻的块元素垂直外边距的合并。
一个设置了margin-top: 100. 一个设置margin-bottom:50.两者的间距不会
变成150.而是取两个值中较大值。这种情况称为相邻快元素垂直外边距的合并; */
/* 【外边距塌陷】子元素设置了上外边距。会把自己和父级元素都拉下来。
嵌套关系。垂直外边边距合并解决方案 */
/* 1.可以把父级元素定义上边框。 */
border-top:1px solid transparent
/* 2.可以为父级元素定义一个上padding值 */
padding-top:1px
/* 可以为父级元素添加: (推荐)*/
overflow:hidden
/* 浮动 float*/
/* 1.普通流
块级元素 会独占一行。从上向下顺序排列
常用元素:div hr p h1-h6 ul ol dl form table
行内元素: 会按照顺序。从左到右顺序排列。碰到父级元素边缘则自动换行;
常用元素:span a i em等
2.浮动
让盒子从普通流中浮起来。主要作用让多个块级盒子一行显示;
1.脱离普通标准流的控制、漂浮起来了。浮在标准流的上面
2.其他的盒子会顶替之前浮上去的盒子。
3.加了浮动这后。 仍然是块级元素.但是属性类似:行内块元素。会自动把元素的inline-block
3.定位
将盒子在浏览器的某一个位置--CSS离不开定位。特别是后面的js特效
4.浮动元素之前是没有间隙的。
5.属性值
none:元素不符动
left:元素向左浮动
right:元素右浮动
6.如果父级元素的宽度装不下这些浮动的盒子。多出的盒子会另起一行对齐。
7.如果兄弟盒子。第一个盒子没有浮动。第二个盒子设置了浮动。不会浮到第一个的上面或者右边
浮动只会影响当前的或者是后面的标准流盒子。
如果一个盒子里面有多个盒子。如果有一个盒子设置了浮动。其它都要浮动。
为什么要清除浮动
因为父级盒子很多情况下。不方便给高度。但是盒子的浮动就不占有
位置。最后父级盒子的高度为-0的标准流盒子
根据子盒的内容自动显示高度
清除浮动的方法1
cloear:清除
left:清楚左侧浮动
right:清除右侧浮
both:同时清楚左右两侧浮动的影响
在子盒子浮动最后样增加
<div style="clear: both;"></div>
清除浮动的方法2
在父级盒子里面增加:
overflow: hidden;
如果用这个。文字过高会出现上下滚动条
清除浮动方法3【推荐使用】
.clearfix:after{
content:"";
display:block;
height:0;
visibility:hidden;
clear:both;
}
/* IE 6 7 专用 */
/* .clear{*zoom:1} */
/* 清除浮动方法4:双伪元素清除 */
/* .clearfix:before,
.clearfix:after{
content: "";
display: table;
}
.clearfix:after{
clear: both;
} */
/* 总结:在什么情况下需要清除浮动
1.父级元素没有高度
2.子盒子浮动了
3.影响下面布局了。就应该要清除浮动了 */
/* ****************定位**************** */
/* 定位模式
static:静态定位(在定位时基本不用)
relative:相对定位(原来在标准流的区域继续占有。)
absolute:绝对定位(完全不占位置。父级元素没有定位。则以
浏览器为准定位。如果跟着父级或者爷爷级定位。父级元素位置不变:把父
级元素的定位设置为:relative)
fixed:固定定位(完成不占位置。例头部的搜索或者中间的客服。
屏幕怎么动。他都不会动。跟父级定位没有任何关系)
子级是绝对定位。父级要用相对定位。只认浏览器的可视区域*/
/* 边偏移 */
/*
top:
left:
right:
bottom:
*/
/* 定位=定位模式+边偏移 */
/* 定位的扩展 */
/* 绝对定位的盒子居中对齐 */
/* 正常普通流的盒子利用:margin:auto就可以水平居中定位 */
/* 水平居中的left=父级盒的一半+自己的一半宽度 */
/* left:50%
让盒子往左走自己的一半
margin-left:-100px */
/* 堆叠顺序(权重) */
/* 只存在定位里面 */
/* z-index:100000 */
/* 定位改变display属性 */
/* 1.利用display inline-block
行内块不给width 默认的宽度就是内容的宽度
2.浮动也能转换
float:left
3.绝对定位(固定定位)也能转换
position:absolute */
}
/* 5.高级技巧 */
.gaoji{
display: none; /* 隐藏元素,并不占位置 */
display: block; /* 显示元素.将转换为行内块 */
visibility: visible; /* 对象 可视 */
visibility: hidden; /* 隐藏元素,并保留位置 */
/* 溢出隐藏:
visible:默认值。不管是否溢出。还是都显示出来
hidden:当内容溢出当前元素的高度后.会自动隐藏后面的部分。
scroll:不管超出内容否。总是显示滚动条
auto:超出后。自动显示滚动条。不退出不显示滚动条
还能清除浮动
*/
overflow: hidden;
/* 当文字溢出.以...代替 */
/* 1.先强制一行内显示文本 */
white-space: nowrap;
/* 2.超出部分隐藏 */
overflow: hidden;
/* 3.文字用省略号代替超出的部分 */
text-overflow:ellipsis;
/* 鼠标样式 */
cursor: default;/* 默认的:小白箭头样式 */
cursor: pointer;/* 小手样式 */
cursor: move;/* 移动样式 */
cursor: text;/* 文本输入光标效果 */
cursor: not-allowed;/* 禁止点击输入 */
/* 轮廓线--当光标移到输入框周围的线 */
/* 注:修改输入框的边框线是通过边框进行修改.不是通过轮廓线 */
outline: none; /* 去掉轮廓线 */
/* 文本域之 禁止拖拽文本域大小 */
resize: none;
/* 垂直居中对齐 */
/* 只针对行内元素和行内块元素 */
vertical-align: baseline; /* 默认是按基线对齐 */
vertical-align: middle; /* 默认是按垂直对齐 */
vertical-align: top; /* 默认是按顶部对齐 */
}
.img{
/* 去除图片底部有空白缝隙的问题 */
/* 原因:图片默认跟文字是以基线对齐.所以底部会有空白间隙 */
vertical-align: top;/* 只要不和基线对齐就行[推荐] */
/* 或者跟把元素改成块元素 */
/* 块元素对vertical-align: baseline是无效的 */
display:block;
}
/*css精灵技术*/
.icon{
width: 20px; 图标集里面小图标的宽度
width: 20px; 图标集里面小图标的高度
/* 图标集图片路径 不平铺 当前小图标在整个图片里面的坐标位置 */
/* background: url(image/icon_list.png) no-repeat x y; */
background: url(image/icon_list.png) no-repeat 10 100;
}