CSS学习总结
/* 总结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; }