CSS
Cascading Style Sheets 层叠样式表
1.定义方法
选择器 { 属性:值;属性:值;属性:值;}
2.引入方法
- 外联式:通过link标签,链接到外部样式表到页面中
- 嵌入式:通过style标签,在网页上创建嵌入的样式表
- 内联式:通过标签的style属性,在标签上直接写样式
......
3.常用的应用文本的css样式:
color:red; 设置文字的颜色
font-size:12px; 设置文字的大小
font-family:'微软雅黑'; 设置文字的字体
font-style:'normal/italic'; 设置字体是否倾斜,其中italic表示为倾斜
font-weight:bold/normal; 设置文字是否加粗,其中bold表示为加粗
-
font-height:24px; 设置文字的行高,设置行高相当于在每行文字的上下同时加间距。
font同时设置文字的多个属性时,写的顺序有兼容问题,按照如下顺序写:font: 是否加粗 字号/行高 字体; 如:font:normal 12px/36px '微软雅黑';
text-decoration 设置文字的下划线,如 text-decoration:none; 文字的下划线去掉
text-indent 设置文字首行缩进,如:text-indent:24px; 设置文字首行缩进24px
text-align 设置文字水平对齐方式,如:text-align:center; 设置文字水平居中
list-style: none; 把列表前面的小点去掉,一般都是用在无序列表处
无序列表 type=“square/circle/disc” suqare:块状图形,circle:空心圆,disc:默认的实心圆
有序列表 type=“1”/a/A 1表示123数字化,a表示abc小写字母,A表示ABC大写字母;start=“2” 表示从2开始,234而不是123
返回顶部
1
......
返回顶部
4.颜色表示
- 颜色名表示,比如red 红,gold 金
- rgb表示,比如:rgb(255,0,0)表红色
- 16进制数职表示,比如:#ff0000表示红色,这种可以简写为#f00
5.css选择器 - 标签选择器
*{margin:0; padding:0;}
div{color:red;}
- id选择器
id名称不能重复,一般给程序使用,不建议作为选择器
#box{color:red;} - id选择器
...
- 类选择器
一个累可应用于多个元素,一个元素上也可以使用多个类,应用灵活,可复用,是在css中应用最多的一个选择器
.red{color:red;}
.big{font-size:20px;}
.mt10{margin-top:10px;}
...
...
...
- 层级选择器
主要应用于选择父元素下的子元素,或者子元素下面的子元素,可与标签元素结合使用,减少可以通过层级,防止命名冲突
.box span{color:red;}
.box .red{color:pink;}
.red{color:red}
...
...
...
- 组选择器
多个选择器,如果有同样的样式设置,可以使用组选择器
.box1, .box2, .box3 {width:100px; height:100px;}
.box1 {background:red}
.box2 {background:gold}
.box3 {background:pink}
...
...
...
- 伪类及伪类选择器
常用的伪类选择器有hover,表示鼠标悬浮在元素上时的状态,伪元素选择器有before和after,他们可以通过样式在元素中插入内容
.box1:hover{color:red;}
.box2:before{content:'行首文字';}
.box3:after{content:'行尾文字';}
6.盒子模型
元素在页面中显示成一个方块,类似一个盒子。
把元素叫做盒子:盒子的宽度width,盒子的高度height,盒子的边框border,盒子内的内容和边框之间的间距padding,盒子与盒子之间的间距margin
- 设置宽高
width:200px; - 设置盒子的宽度,此宽度是指盒子内容的宽度,而不是盒子整体的宽度
height:200px; - 同样的我们设置的是盒子里面的内容的高度,也就是上图里面的content
- 设置边框 border
设置一边的边框,可以按照如下设置:
border-top-color:red;
border-top-width:10px; - 边框的粗细
border-top-style:solid; - solid:实线,dashed:虚线,dotted:点线
以上的三句可以简写为一句话:
boder-top: 10px, solid, red;
同理我们可以设置border-left, border-right, border-bottom
最后我们可以border直接设置上下左右四处边框 border:10px solid red;
-设置内间距 padding
我们需要注意的是width,height设置的元素的内容宽高,即content的宽高,此处设定的padding设置的是content到border之间的距离,然后就是border,content-padding-border总体构成了标签元素的盒子模型,标签元素之间的距离就是margin。
padding-top: 20px;
padding-left: 30px;
padding-right: 40px;
padding-bottom: 50px;
同理我们可以直接通过padding直接设置上下左右
padding: 20px 40px 50px 30px; *** 但是我们需要注意的是该设定是按照顺时针开始设定的,我们从上部开始进行设置:上 -> 右 -> 下 -> 左 ***
padding还可以后面接3个值,2个值,1个值:
padding: 20px 40px 30px; - 我们设置顶部内边距为20px,左右边距为40px,底部边距为30px
padding: 20px 40px; - 我们设置顶部和底部内边距为20px,左右边距为40px
padding:20px; - 我们设置上右下左内边距为20px
- 设置外间距 margin
margin的设置方法和padding的方法是一样的
盒子模型的实际尺寸就是----宽度:width+padding左右+border左右----高度:height+padding上下+border上下
7.盒模型使用技巧及相关问题
-
margin技巧
1.设置元素水平居中 margin:x auto;
2.margin负值让元素位移及边框合并
-外边距合并
当两个垂直外边距相遇时,它们将形成一个外边距。合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者。解决方法如下:1.使用这个特性 2.设置一边的外边距,一般设置margin-top 3.将元素浮动或者定位
margin-top 塌陷
在两个盒子嵌套的时候,内部的盒子设置的margin-top会加到外边的盒子上,导致内部的盒子margin-top的设置失败,解决方法如下:
1.外部盒子设置一个边框
2.外部盒子设置overflow:hidden
3.使用伪元素类:
.clearfix: before{
content: ' ';
display: table;
}
8.css元素溢出
当子元素的尺寸超过父元素的尺寸时,需要设置父元素显示溢出的子元素的方式,设置的方法是通过overflow属性来设置。
overflow的设置项:
1.visible 默认值,内容不会被修剪,会呈现在元素框之外
2.hidden 内容会被修剪,并且其余内容是不可见的,此属性还有清除浮动,清除margin-top塌陷的功能
3.scroll 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容
4.auto 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容
5.inherit 规定应该从父元素继承overflow属性的值
9.块元素,内联元素,内联块元素
-
块元素
也可以成为行元素,布局中常用的块元素有:div,p,ul,li,h1~h6,dl,dt,dd等,它在布局中的行为:1.支持全部的样式 2.如果没有设置宽度,默认的宽度为父级宽度100% 3.盒子占据一行,即使设置了宽度
-
内联元素
也称为行内元素,比如有a,span,em,b,strong,i等。他们在布局中的行为:1.支持部分样式,不支持宽、高、margin上下、padding上下 2.宽高由内容决定 3.盒子并在一行 4.代码换行,盒子之间会产生间距 5.子元素是内联元素,父元素可以用text-align属性设置子元素水平对齐方式
-
解决内联元素间隙的方法
1.去掉内联元素之间的换行 2.将内联元素的父级设置font-size为0,内联元素自身再设置font-size
-
内联块元素
也称为行内块元素,是新增的元素类型,img和input类似,我们可以用display属性将块元素或者内联元素转化为这种元素。它们在布局中表现的行为:1.支持全部样式 2.如果没有设置宽高,宽高由内容决定 3.盒子并在一行 4.代码换行,盒子会产生间距 5.子元素是内联块元素,父元素可以用text-align属性设置子元素水平对齐方式
这三种元素,可以通过display属性来相互转化,实际开发中块元素用得比较多,所以我们经常把内联元素转化为块元素,少量转化为内联块,要使用内联元素时直接使用内联元素
-
display属性
用来设置元素的类型及隐藏的,常用的有:1.none 元素隐藏且不占位置 2.block 元素以块元素显示 3.inline 元素以内联元素显示 4.inline-block 元素以内联块元素显示
10.浮动
浮动特性:
1.浮动元素有左浮动(float:left;)和右浮动(float:right;)
2.浮动元素会向左或者向右浮动,碰到父级元素边界+其他元素才停下来
3.相邻浮动的块元素可以并在一行,超过父级宽度就换行
4.浮动让行内元素或者块元素自动转化为行内块元素,此时不会有行内块元素的间隙问题
5.浮动元素后面没有浮动的元素会占据浮动元素的位置,没有浮动的元素内的文字会避开浮动的元素,形成文字饶图的效果
6.父元素如果没有设置尺寸(一般是高度不设置),父元素内整体浮动的元素无法撑开父元素,父元素需要清除浮动
7.浮动元素之间没有垂直margin的合并
11.清除浮动
- 父级上增加属性overflow: hidden
- 在最后一个子元素的后面加一个空的div,给它样式属性clear:both 不推荐
- 使用成熟的清除浮动样式类,clearfix
.clearfix:after, .clearfix:before{ content=' '; display=table; }
.clearfix:after{ clear:both;}
.clearfix{zoom:1;}
清除浮动的使用方法
.con2{... overflow:hidden;}
OR
12.定位
文档流
是指盒子按照html标签编写的顺序以此从上到下,从左到右排列,块元素占一行,行内元素在一行之内从左到右排列,先写的先排列,后写的排在后面,每个盒子都占据自己的位置。
-
定位
可以用css的position属性来设置元素的定位类型。
1.relative生成相对定位元素,元素所占据的文档流的位置保留,元素本身相对自身原位置进行偏移.**一般我们将父级设置相对定位,子级设置绝对定位,子级就以父级作为参照来定位,否则子级相对于body来定位**
2.absolute生成绝对定位元素,元素脱离文档流,不占据文档流的位置,可以理解为漂浮在文档流的上方,相对于上一个设置了定位的父级元素来进行定位,如果找不到,则相对于body元素进行定位
3.fixed生成固定定位元素,元素脱离文档流,不占据文档流的位置,可以理解为漂浮在文档流的上方,相对于浏览器窗口进行定位
4.static默认值,没有定位,元素出现在正常的文档流中,相当于取消定位属性或者不设置定位属性
5.inherit 从父元素继承 position 属性的值
定位元素的偏移
定位的元素还需要用left、right、top或者bottom来设置相对于参照元素的偏移值。
定位元素的层级
定位元素是浮动的正常的文档流之上的,可以用z-index属性来设置元素的层级
.box01{
......
position:absolute; /* 设置了绝对定位 */
left:200px; /* 相对于参照元素左边向右偏移200px */
top:100px; /* 相对于参照元素顶部向下偏移100px */
z-index:10 /* 将元素层级设置为10 */
}
-
定位元素特性
绝对定位和固定定位的块元素和行内元素会自动转化为行内块元素
13.background属性
background属性是css中应用比较多且比较重要的一个属性,负责给盒子设置背景图片和背景颜色的,是一个符合属性。
1.background-color 设置背景颜色
2.background-image 设置背景图片地址
3.background-repeat 设置背景图片如何重复平铺
4.background-position 设置背景图片的位置
5.background-attachment 设置背景图片是固定还是随着页面滚动条滚动
1."backgroud: url(bp.jpg)" - 默认设置一个图片地址,图片会从盒子的左上角开始将盒子铺满
2.“background: cyan url(bg.jpg) repeat-x" - 横向平铺盒子,盒子其他部分显示背景颜色“cyan”
3.“background: cyan url(bg.jpg) repeat-y” - 纵向平铺盒子,盒子其他部分显示背景颜色“cyan”
4.“background: cyan url(bg.jpg) no-repeat” - 背景不重复,背景和盒子左上角对齐,盒子其他部分显示背景颜色“cyan”
5.“background: cyan url(bg.jpg) no-repeat left center” - 背景不重复,背景和盒子左中对齐,盒子其他部分显示背景颜色“cyan”
6.“background: cyan url(bg.jpg) no-repeat right center” - 背景不重复,背景和盒子右中对齐,也就是背景图片的右边对齐盒子的右边,盒子其他部分显示背景颜色“cyan”
在这个过程中我们移动的是图片,这个图片就是一个盒子模型,整个过程也是移动的图片盒子
实际应用中,我们可以用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,各个设置项用空格隔开,有的设置项不写也是可以的,它会使用默认值
—————————————————————————————————
在background-position中:我们可以设置具体的数值,其中第一个数值表示左右,左是负值,右是正值。第二个数值表示上下,上是负值,下是正值。
13.css权重
样式的优先级,权重高的样式在多样式中获得胜利。权重相同的,后写的样式会覆盖前面的样式。
-
权重的等级
1.!important,加在样式属性值后,权重值为10000
2.内联样式,style=“”,权重值为1000
3.ID选择器,#id,权重值为100
4.类,伪类和属性选择器,.class,:hover权重值为10
5.标签选择器和伪元素选择器,div, p, :before权重值为1
6.通用选择器 *,子选择器 >,相邻选择器 +,同胞选择器 ~ 权重值为0
14.常用css列表
1.color 设置文字的颜色,如color:red;
2.font-size 设置文字的大小,如font-size:12px;
3.font-family 设置文字的字体,如:font-family:'微软雅黑';
4.font-style 设置字体是否倾斜,如:font-style:'normal'; 设置不倾斜,font-style:'italic';设置文字倾斜
5.font-weight 设置文字是否加粗,如:font-weight:bold; 设置加粗 font-weight:normal 设置不加粗
6.line-height 设置文字的行高,设置行高相当于在每行文字的上下同时加间距, 如:line-height:24px;
7.font 同时设置文字的几个属性,写的顺序有兼容问题,建议按照如下顺序写: font:是否加粗 字号/行高 字体;如: font:normal 12px/36px '微软雅黑';
8.text-decoration 设置文字的下划线,如:text-decoration:none; 将文字下划线去掉
9.text-indent 设置文字首行缩进,如:text-indent:24px; 设置文字首行缩进24px
10.text-align 设置文字水平对齐方式,如text-align:center 设置文字水平居中
11.text-overflow 设置一行文字宽度超过容器宽度时的显示方式,如:text-overflow:clip 将多出的文字裁剪掉 text-overflow:ellipsis 将多出的文字显示成省略号
12.white-space 一般用来设置文本不换行,如:white-space:nowrap 设置文本不换行 一般与text-overflow和overflow属性配合使用来让一行文字超出宽度时显示省略号
13.list-style 一般用来设置去掉ul或者ol列表中的小圆点或数字 如:list-style:none
14.width 设置盒子内容的宽度,如: width:100px;
15.height 设置盒子内容的高度,如: height:100px;
16.border-top 设置盒子顶部边框的三个属性 如:border-top:5px solid red;
17.border-left 设置盒子左边边框的三个属性 如:border-left:3px dotted red;
18.border-right 设置盒子右边边框的三个属性 如:border-right:2px dashed red;
19.border-bottom 设置盒子底部边框的三个属性 如:border-bottom:1px solid red;
20.border 同时设置盒子的四个边框,如果四个边的样式统一就使用它 如:border:1px solid #000
21.padding 设置盒子四个边的内边距 如:padding:10px 20px 30px 40px 分别设置盒子上边(10px)、右边(20px)、下边(30px)、左边(40px)的内边距(顺时针)
22.margin 设置盒子四个边的外边距 如:margin:10px 20px 30px 40px 分别设置盒子上边(10px)、右边(20px)、下边(30px)、左边(40px)的外边距(顺时针)
23.overflow 设置当子元素的尺寸超过父元素的尺寸时,盒子及子元素的显示方式 如:overflow:hidden 超出的子元素被裁切等
24.display 设置盒子的显示类型及隐藏,如:display:block 将盒子设置为以块元素显示 display:none 将元素隐藏
25.float 设置元浮动 如:float:left 设置左浮动 float:right 设置右浮动
26.clear 在盒子两侧清除浮动 如:clear:both 在盒子两侧都不允许浮动
27.position 设置元素定位 如:position:relative 设置元素相对定位
28.background 设置元素的背景色和背景图片,如:background:url(bg.jpg) cyan;设置盒子的背景图片为bg.jpg,背景色为cyan
29.background-size 设置盒子背景图的尺寸,如:background-size:30px 40px;设置背景图的尺寸宽为30px,高为40px,这个属性不能合到background属性中
30.opacity 设置元素整体透明度,一般为了兼容需要加上filter属性设置 如:opacity:0.1;filter:alpha(opacity=10)
31.cursor 设置鼠标悬停在元素上时指针的形状 如:cursor:pointer 设置为手型
32.outline 设置文本输入框周围凸显的蓝色的线,一般是设为没有 如:outline:none
33.border-radius 设置盒子的圆角 如:border-radius:10px 设置盒子的四个角为10px半径的圆角
34.box-shadow 设置盒子的阴影,如:box-shadow:10px 10px 5px 2px pink;设置盒子有粉色的阴影
35.transition 设置盒子的过渡动画,如:transition:all 1s ease;设置元素过渡动画为1秒完成,所有变动的属性都做动画
36.animation 设置盒子的关键帧动画
37.transform 设置盒子的位移、旋转、缩放、斜切等变形,如:transform:rotate(45deg);设置盒子旋转45度
38.box-sizing 设置盒子的尺寸计算方式,如:box-sizing:border-box 将盒子的尺寸计算方法设置为按边框计算,此时width和height的值就是盒子的实际尺寸
39.border-collapse 设置表格边框是否合并,如:border-collapse:collapse,将表格边框合并,这样就可以制作1px边框的表格