css的定义方法是:css
选择器 { 属性:值; 属性:值; 属性:值;}html
选择器是将样式和页面元素关联起来的名称,属性是但愿设置的样式属性每一个属性有一个或多个值。代码示例:前端
/* css注释 ctrl+shift+"/" */ div{ width:100px; height:100px; color:red }
<link rel="stylesheet" type="text/css" href="css/main.css">
<style type="text/css"> div{ width:100px; height:100px; color:red } ...... </style>
<div style="width:100px; height:100px; color:red ">......</div>
经常使用的应用文本的css样式:浏览器
经常使用的选择器有以下几种:编辑器
标签选择器,此种选择器影响范围大,建议尽可能应用在层级选择器中。
举例:布局
*{margin:0;padding:0} div{color:red} <div>....</div> <!-- 对应以上两条样式 --> <div class="box">....</div> <!-- 对应以上两条样式 -->
经过id名来选择元素,元素的id名称不能重复,因此一个样式设置项只能对应于页面上一个元素,不能复用,id名通常给程序使用,因此不推荐使用id做为选择器。
举例:post
#box{color:red} <div id="box">....</div> <!-- 对应以上一条样式,其它元素不容许应用此样式 -->
经过类名来选择元素,一个类可应用于多个元素,一个元素上也可使用多个类,应用灵活,可复用,是css中应用最多的一种选择器。
举例:性能
.red{color:red} .big{font-size:20px} .mt10{margin-top:10px} <div class="red">....</div> <h1 class="red big mt10">....</h1> <p class="red mt10">....</p>
主要应用在选择父元素下的子元素,或者子元素下面的子元素,可与标签元素结合使用,减小命名,同时也能够经过层级,防止命名冲突。
举例:字体
.box span{color:red} .box .red{color:pink} .red{color:red} <div class="box"> <span>....</span> <a href="#" class="red">....</a> </div> <h3 class="red">....</h3>
多个选择器,若是有一样的样式设置,可使用组选择器。
举例:动画
.box1,.box2,.box3{width:100px;height:100px} .box1{background:red} .box2{background:pink} .box2{background:gold} <div class="box1">....</div> <div class="box2">....</div> <div class="box3">....</div>
经常使用的伪类选择器有hover,表示鼠标悬浮在元素上时的状态,伪元素选择器有before和after,它们能够经过样式在元素中插入内容。
.box1:hover{color:red} .box2:before{content:'行首文字';} .box3:after{content:'行尾文字';} <div class="box1">....</div> <div class="box2">....</div> <div class="box3">....</div>
盒子模型解释
元素在页面中显示成一个方块,相似一个盒子,CSS盒子模型就是使用现实中盒子来作比喻,帮助咱们设置元素对应的样式。
把元素叫作盒子,设置对应的样式分别为:盒子的宽度(width)、盒子的高度(height)、盒子的边框(border)、盒子内的内容和边框之间的间距(padding)、盒子与盒子之间的间距(margin)。
设置宽高
width:200px; /* 设置盒子的宽度,此宽度是指盒子内容的宽度,不是盒子总体宽度(难点) */ height:200px; /* 设置盒子的高度,此高度是指盒子内容的高度,不是盒子总体高度(难点) */
设置边框
设置一边的边框,好比顶部边框,能够按以下设置:
border-top-color:red; /* 设置顶部边框颜色为红色 */ border-top-width:10px; /* 设置顶部边框粗细为10px */ border-top-style:solid; /* 设置顶部边框的线性为实线,经常使用的有:solid(实线) dashed(虚线) dotted(点线); */
上面三句能够简写成一句:
border-top:10px solid red;
设置其它三个边的方法和上面同样,把上面的'top'换成'left'就是设置左边,换成'right'就是设置右边,换成'bottom'就是设置底边。
四个边若是设置同样,能够将四个边的设置合并成一句:
border:10px solid red;
设置内间距padding
设置盒子四边的内间距,可设置以下:
padding-top:20px; /* 设置顶部内间距20px */ padding-left:30px; /* 设置左边内间距30px */ padding-right:40px; /* 设置右边内间距40px */ padding-bottom:50px; /* 设置底部内间距50px */
上面的设置能够简写以下:
padding:20px 40px 50px 30px; /* 四个值按照顺时针方向,分别设置的是 上 右 下 左 四个方向的内边距值。 */
padding后面还能够跟3个值,2个值和1个值,它们分别设置的项目以下:
padding:20px 40px 50px; /* 设置顶部内边距为20px,左右内边距为40px,底部内边距为50px */ padding:20px 40px; /* 设置上下内边距为20px,左右内边距为40px*/ padding:20px; /* 设置四边内边距为20px */
设置外间距margin
外边距的设置方法和padding的设置方法相同,将上面设置项中的'padding'换成'margin'就是外边距设置方法。
按照下面代码制做页面:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>盒子的真实尺寸</title> <style type="text/css"> .box01{width:50px;height:50px;background-color:gold;} .box02{width:50px;height:50px;background-color:gold;border:50px solid #000} .box03{width:50px;height:50px;background-color:gold;border:50px solid #000;padding: 50px;} </style> </head> <body> <div class="box01">1</div> <br /> <div class="box02">2</div> <br /> <div class="box03">3</div> </body> </html>
经过上面的页面得出结论:盒子的width和height设置的是盒子内容的宽和高,不是盒子自己的宽和高,盒子的真实尺寸计算公式以下:
margin相关技巧
一、设置元素水平居中: margin:x auto;
二、margin负值让元素位移及边框合并
外边距合并
外边距合并指的是,当两个垂直外边距相遇时,它们将造成一个外边距。合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者。解决方法以下:
一、使用这种特性
二、设置一边的外边距,通常设置margin-top
三、将元素浮动或者定位
margin-top 塌陷
在两个盒子嵌套时候,内部的盒子设置的margin-top会加到外边的盒子上,致使内部的盒子margin-top设置失败,解决方法以下:
一、外部盒子设置一个边框
二、外部盒子设置 overflow:hidden
三、使用伪元素类:
.clearfix:before{ content: ''; display:table; }
当子元素的尺寸超过父元素的尺寸时,须要设置父元素显示溢出的子元素的方式,设置的方法是经过overflow属性来设置。
overflow的设置项:
一、visible 默认值。内容不会被修剪,会呈如今元素框以外。
二、hidden 内容会被修剪,而且其他内容是不可见的,此属性还有清除浮动、清除margin-top塌陷的功能。
三、scroll 内容会被修剪,可是浏览器会显示滚动条以便查看其他的内容。
四、auto 若是内容被修剪,则浏览器会显示滚动条以便查看其他的内容。
五、inherit 规定应该从父元素继承 overflow 属性的值。
元素就是标签,布局中经常使用的有三种标签,块元素、内联元素、内联块元素,了解这三种元素的特性,才能熟练的进行页面布局。
块元素
块元素,也能够称为行元素,布局中经常使用的标签如:div、p、ul、li、h1~h六、dl、dt、dd等等都是块元素,它在布局中的行为:
内联元素
内联元素,也能够称为行内元素,布局中经常使用的标签如:a、span、em、b、strong、i等等都是内联元素,它们在布局中的行为:
解决内联元素间隙的方法
一、去掉内联元素之间的换行
二、将内联元素的父级设置font-size为0,内联元素自身再设置font-size
内联块元素
内联块元素,也叫行内块元素,是新增的元素类型,现有元素没有归于此类别的,img和input元素的行为相似这种元素,可是也归类于内联元素,咱们能够用display属性将块元素或者内联元素转化成这种元素。它们在布局中表现的行为:
这三种元素,能够经过display属性来相互转化,不过实际开发中,块元素用得比较多,因此咱们常常把内联元素转化为块元素,少许转化为内联块,而要使用内联元素时,直接使用内联元素,而不用块元素转化了。
display属性
display属性是用来设置元素的类型及隐藏的,经常使用的属性有:
一、none 元素隐藏且不占位置
二、block 元素以块元素显示
三、inline 元素之内联元素显示
四、inline-block 元素之内联块元素显示
浮动特性
一、浮动元素有左浮动(float:left)和右浮动(float:right)两种
二、浮动的元素会向左或向右浮动,碰到父元素边界、其余元素才停下来
三、相邻浮动的块元素能够并在一行,超出父级宽度就换行
四、浮动让行内元素或块元素自动转化为行内块元素(此时不会有行内块元素间隙问题)
五、浮动元素后面没有浮动的元素会占据浮动元素的位置,没有浮动的元素内的文字会避开浮动的元素,造成文字饶图的效果
六、父元素若是没有设置尺寸(通常是高度不设置),父元素内总体浮动的元素没法撑开父元素,父元素须要清除浮动
七、浮动元素之间没有垂直margin的合并
清除浮动
父级上增长属性overflow:hidden
在最后一个子元素的后面加一个空的div,给它样式属性 clear:both(不推荐)
使用成熟的清浮动样式类,clearfix
.clearfix:after,.clearfix:before{ content: "";display: table;} .clearfix:after{ clear:both;} .clearfix{zoom:1;}
清除浮动的使用方法:
.con2{... overflow:hidden} 或者 <div class="con2 clearfix">
文档流
文档流,是指盒子按照html标签编写的顺序依次从上到下,从左到右排列,块元素占一行,行内元素在一行以内从左到右排列,先写的先排列,后写的排在后面,每一个盒子都占据本身的位置。
关于定位
咱们可使用css的position属性来设置元素的定位类型,postion的设置项以下:
定位元素的偏移
定位的元素还须要用left、right、top或者bottom来设置相对于参照元素的偏移值。
定位元素层级
定位元素是浮动的正常的文档流之上的,能够用z-index属性来设置元素的层级
伪代码以下:
.box01{ ...... position:absolute; /* 设置了绝对定位 */ left:200px; /* 相对于参照元素左边向右偏移200px */ top:100px; /* 相对于参照元素顶部向下偏移100px */ z-index:10 /* 将元素层级设置为10 */ }
定位元素特性
绝对定位和固定定位的块元素和行内元素会自动转化为行内块元素
属性解释
background属性是css中应用比较多,且比较重要的一个属性,它是负责给盒子设置背景图片和背景颜色的,background是一个复合属性,它能够分解成以下几个设置项:
实际应用中,咱们能够用background属性将上面全部的设置项放在一块儿,并且也建议这么作,这样作性能更高,并且兼容性更好,好比:“background: #00FF00 url(bgimage.gif) no-repeat left center fixed”,这里面的“#00ff00”是设置background-color;“url(bgimage.gif)”是设置background-image;“no-repeat”是设置background-repeat;“left center”是设置background-position;“fixed”是设置background-attachment,各个设置项用空格隔开,有的设置项不写也是能够的,它会使用默认值。
相关代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>test background</title> <style type="text/css"> .backshow{ width:320px; height:160px; border:3px solid #333; float:left; margin:10px; } .bg1{background:cyan url(bg.jpg);} .bg2{background:cyan url(bg.jpg) repeat-x;} .bg3{background:cyan url(bg.jpg) repeat-y;} .bg4{background:cyan url(bg.jpg) no-repeat;} .bg5{background:cyan url(bg.jpg) no-repeat left center;} .bg6{background:cyan url(bg.jpg) no-repeat right center;} </style> </head> <body> <div class="backshow bg1"></div> <div class="backshow bg2"></div> <div class="backshow bg3"></div> <div class="backshow bg4"></div> <div class="backshow bg5"></div> <div class="backshow bg6"></div> </body> </html>
background-position的设置,能够在水平方向设置“left”、“center”、“right”,在垂直方向设置“top”、“center”、“bottom”,除了设置这些方位词以外,还能够设置具体的数值。
对应代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>test background</title> <style type="text/css"> .backshow{ width:320px; height:160px; border:3px solid #333; float:left; margin:10px; } .bg{width:94px; height:94px; border:3px solid #666; background:url(location_bg.jpg) -110px -150px; } </style> </head> <body> <div class="bg"></div> </body> </html>
一、建立页面项目目录
二、使用Photoshop对效果图切图,切出网页制做中须要的小图片
三、将装饰类图像合并,制做成雪碧图
四、结合Photoshop和代码编辑器,参照效果图,进行html和css代码书写,制做页面
color 设置文字的颜色,如: color:red;
font-size 设置文字的大小,如:font-size:12px;
font-family 设置文字的字体,如:font-family:'微软雅黑';
font-style 设置字体是否倾斜,如:font-style:'normal'; 设置不倾斜,font-style:'italic';设置文字倾斜
font-weight 设置文字是否加粗,如:font-weight:bold; 设置加粗 font-weight:normal 设置不加粗
line-height 设置文字的行高,设置行高至关于在每行文字的上下同时加间距, 如:line-height:24px;
font 同时设置文字的几个属性,写的顺序有兼容问题,建议按照以下顺序写: font:是否加粗 字号/行高 字体;如: font:normal 12px/36px '微软雅黑';
text-decoration 设置文字的下划线,如:text-decoration:none; 将文字下划线去掉
text-indent 设置文字首行缩进,如:text-indent:24px; 设置文字首行缩进24px
text-align 设置文字水平对齐方式,如text-align:center 设置文字水平居中
text-overflow 设置一行文字宽度超过容器宽度时的显示方式,如:text-overflow:clip 将多出的文字裁剪掉 text-overflow:ellipsis 将多出的文字显示成省略号
white-space 通常用来设置文本不换行,如:white-space:nowrap 设置文本不换行 通常与text-overflow和overflow属性配合使用来让一行文字超出宽度时显示省略号
list-style 通常用来设置去掉ul或者ol列表中的小圆点或数字 如:list-style:none
width 设置盒子内容的宽度,如: width:100px;
height 设置盒子内容的高度,如: height:100px;
border-top 设置盒子顶部边框的三个属性 如:border-top:5px solid red;设置盒子顶部边框为3像素宽的红色的实线
border-left 设置盒子左边边框的三个属性 如:border-left:3px dotted red;设置盒子左边边框为3像素宽的红色的点线
border-right 设置盒子右边边框的三个属性 如:border-right:2px dashed red;设置盒子右边框为2像素宽的红色的虚线
border-bottom 设置盒子底部边框的三个属性 如:border-bottom:1px solid red;设置盒子底部边框为1像素宽的红色的实线
border 同时设置盒子的四个边框,若是四个边的样式统一就使用它 如:border:1px solid #000 设置盒子四个边都是1像素宽的黑色实线
padding 设置盒子四个边的内边距 如:padding:10px 20px 30px 40px 分别设置盒子上边(10px)、右边(20px)、下边(30px)、左边(40px)的内边距(顺时针)
margin 设置盒子四个边的外边距 如:margin:10px 20px 30px 40px 分别设置盒子上边(10px)、右边(20px)、下边(30px)、左边(40px)的外边距(顺时针)
overflow 设置当子元素的尺寸超过父元素的尺寸时,盒子及子元素的显示方式 如:overflow:hidden 超出的子元素被裁切
display 设置盒子的显示类型及隐藏,如:display:block 将盒子设置为以块元素显示 display:none 将元素隐藏,
float 设置元浮动 如:float:left 设置左浮动 float:right 设置右浮动
clear 在盒子两侧清除浮动 如:clear:both 在盒子两侧都不容许浮动
position 设置元素定位 如:position:relative 设置元素相对定位
background 设置元素的背景色和背景图片,如:background:url(bg.jpg) cyan;设置盒子的背景图片为bg.jpg,背景色为cyan
background-size 设置盒子背景图的尺寸,如:background-size:30px 40px;设置背景图的尺寸宽为30px,高为40px,这个属性不能合到background属性中
opacity 设置元素总体透明度,通常为了兼容须要加上filter属性设置 如:opacity:0.1;filter:alpha(opacity=10)
cursor 设置鼠标悬停在元素上时指针的形状 如:cursor:pointer 设置为手型
outline 设置文本输入框周围凸显的蓝色的线,通常是设为没有 如:outline:none
border-radius 设置盒子的圆角 如:border-radius:10px 设置盒子的四个角为10px半径的圆角
box-shadow 设置盒子的阴影,如:box-shadow:10px 10px 5px 2px pink;设置盒子有粉色的阴影
transition 设置盒子的过渡动画,如:transition:all 1s ease;设置元素过渡动画为1秒完成,全部变更的属性都作动画
animation 设置盒子的关键帧动画
transform 设置盒子的位移、旋转、缩放、斜切等变形,如:transform:rotate(45deg);设置盒子旋转45度
box-sizing 设置盒子的尺寸计算方式,如:box-sizing:border-box 将盒子的尺寸计算方法设置为按边框计算,此时width和height的值就是盒子的实际尺寸
border-collapse 设置表格边框是否合并,如:border-collapse:collapse,将表格边框合并,这样就能够制做1px边框的表格。