前端知识回顾系列(二)----CSS

1.      基本结构

写在<head>里面,或引用

<style type=”text/css”>

          选择器{

Key:value;

Key:value;

}

</style>

2.      选择器

(1)     基本选择器

 标签选择器:p{ Key:value;}所有标签都给选上

                     类选择器:.head{key:value;}可以重用,也可以一个标签放多个类,用空格

                     Id选择器:#name{key:value;}一般用于JS,不能同名

(2)    高级选择器

后代选择器:.div p{}选择的是后代,不一定是儿子,某一部分的所有。共性

交集选择器:li.special{}没有空格,一般以标签开头。表示标签里面的特殊

并集选择器:h3,li{}用逗号隔开,表示样式两个或多个选择器相同。

儿子选择器:div>p{}就是div的下一层就是p,与后带选择器不同。IE7

序选择器:ul li:first-child{} 表示特殊,可以用交集选择器代替,IE8

兄弟选择器:h3+p{} h3紧跟着的第一个兄弟。

3.      继承性和层叠性

(1)     继承性:一些关于文字的属性都能继承,如font开头、text开头、line开头、color当给自己设计的时候自己的后代都会继承,作用:可以省写代码。

(2)     层叠性:(多个选择器描述了同一个属性、多个选择器作用于一个标签)

是用来解决冲突。

权重问题:

1)先看选择器有没有选中,如果选中了,那么以(id数,类数,标签数)来计算权重,谁大听谁的,如果都一样,以写在后面的为准。

2)如果都没有选中,那么权重是0,按就近原则。看看谁的选择器描述更靠近目标。

3)如果就近原则也描述的一样近,那在回到权重计算,看看谁的权重高。如此循环。

4)同一个标签携带多个类,与写的顺序无关,只和CSS的先后有关

5)important(尽量少用)只提升一个属性,不是一个选择器、无法提升权重、无法影响就近原则,也就是说他要影响的就是权重一样或者一样近,但是写的先后顺序不同。

4.      盒模型

(1)        盒模型区域

width:宽度(内容宽)

height:高度(内容高)

padding:内边距

border:边框

margin:外边距

(2)       widthheight

都是表示盒子内容的宽高

真实宽度=width+左右padding

真实高度=height+上下padding

要想保持宽高不变,加widthheight就要减padding(a/2);padding就要减widthheight(a*2)

(3)       认识padding

Padding区域有背景颜色,跟内容颜色一致

描述方法:

Padding:10px 20px 10px 20px;(上右下左)

Padding:10px 20px 10px;(上右下,左跟右一样)

Padding:10px 20px;(第一个上下,第二个左右)

Padding:10px;(全部方向一样)

用小属性层叠大属性padding:20px; padding-left:30px;

有些标签自带padding,需要清除

(4)       认识border

三要素:粗细、线型、颜色

Border:1px solid red;必须三个都写,不然显示不了。

线型记忆:solid(实线)、dotted(圆点)、dashed虚线、double双线

写法:

1)综合法: border:1px solid red;

2)要素法:border-width:1px; border-style:solid; border-color:red;(多个隔开表示上右下左)

3)方向法:border-top:1px solid red;…..

方向还能拆一层,少用,注意尽量简便写法

4)没有边框border:none;

5)圆角边框:border-radius:4px;

(5)       认识margin

1)标准文档流中,垂直方向的margin不叠加,以较大的为准。(margin的塌陷现象),脱标之后,比如浮动后没有塌陷现象

2)盒子标准文档流中居中方法(margin:0 auto,必须有明确width,必须标准流、居中盒子不是文本)

3)善于使用父亲的padding,而不是儿子的margin,兄弟间可margin

4)IE6中连续浮动并且margin方向相同时,队首元素会有双倍margin(推荐通过设置margin方向相反来解决)

5)IE63px bug (儿子在父亲中右浮动并设置了margin-right会多出3px,不用管不推荐儿子用margin踹父亲)

6)IE6不支持高度12px的盒子,height:10px;_font-size:0px;

7)IE6不支持overflow:hidden;来清除浮动,hasLayout机制,zoom:1;来触发。Zoom放大缩小的意思。

5.      标准文档流

1)空白折叠、高矮不齐,底边对齐、自动换行。

2)元素和级块元素:(标准文档流等级森严,分为两个等级)

级块元素:占整行,不能与任何元素并列、能设宽高、不设默认为父的100%div   h   ul   li   ol  dl  dt   dd  p

行内元素:能与其他行内元素并排、不能设置宽高,默认为文字宽高

span    a    u   I   b  del   strong

3)级块元素和行内元素的相互转换

                                            Display:inline;  级块转行内

                                            Display:block;  行内转级块

                                            并排(浮动),设置宽高(转级块)

                                            脱离标准文档流:浮动、绝对定位、固定定位

6.      浮动

(1)     性质:浮动元素脱标(span浮动后可以并排和设置宽高)

浮动元素互相贴靠(看空间,贴不了上一个,就贴前前个或墙)

字围效果(浮动元素不会遮挡文字,文字围着浮动元素)

一般是多个元素浮动,达到并排布局

(2)     清除浮动

1)给浮动元素的祖先加高度。(一般不推荐,高度靠内容撑)

2)给后一个盒子加clear:both属性(margin失效,因为父亲高为0

3)两个之间隔墙法(.clf{clear:both;};但第一个父亲还是没有给撑高,一般用在大的部分)

4)给第一个盒子内墙法(弥补了隔墙法的的缺点,既能清除浮动,还能另第一个盒子有高度)

5)给父亲设置属性overflow:hidden;能让margin生效,父亲给撑出高

但不能溢出

7.      定位

(1)        相对定位(相对于自己原来的位置,进行位置的调整)

Position:relative; top:100px; left:100px;

1)不脱标,老家留坑,形影分离,参考点为自己

2)用途:微调元素、做绝对定位的参考(子绝父相)

3)负数方向相反。Right:-100px;=left:100px;

(2)       绝对定位

1)绝对定位脱标,不区分行内级块、不需转换就能设置宽高

2)参考点:top描述,参考点在页面右上角,不是浏览器右上角

        Bottom描述,那么就是浏览器首屏尺寸,对应的页面左下角

3)以盒子为参考点

一个绝对定位的元素,如果父辈元素中出现了也定位的元素,那么将*以父辈这个元素为参考点

 

*要听最近已定位的元素,不一定是父亲,可能是祖辈

 

*不一定是相对定位,任何定位,都可以作为参考点,一般是子绝父相,父亲没有脱标,儿子脱标,在父亲范围内移动。这样更稳固。

 

*绝对定位的儿子,无视参考那个盒子的padding

 

*绝对定位的盒子水平居中,position:absolute; left:50%; margin-left:一半;

          3      固定定位(IE6不兼容)

1)固定定位是相对浏览器窗口的定位,页面如何滚动,这个盒子显示的的位置不变。

2)固定定位脱标

3)一般应用于通栏导航(注意设置z-index9999;让其位于最上层)

 

z-index属性:

表示谁压着谁,数值大的压数值小、

只有定位的元素才有,任何定位都可设置 z-index

没有单位,是一个正整数,默认为0

如果大家都没设置z-index值,谁写在HTML后面,谁最上面

从父现象:父亲的值小,儿子多大都没办法,压着别人。

8.      CSS常用属性

(1)     行高和字号

Line-height

*行高作用在行,不作用文字

*行高、字号一般是偶数,字号比行高小

*会测量行高

*单行文字居中:行高:盒子高;多行文字居中,需设置盒子padding

font

*能将字号、行高、字体一起设置(font:14px/24px “SimSun”

*不是所有字体都能用,一般(宋体、微软雅黑、黑体)其他需切图

*备选字体设置(font-family:”Arial”,”Microsoft YaHei”,”SimSun”)英文字体放前面,不匹配就自动匹配后面的中文

(2)     超级链接美化

1)伪类(一个标签,状态不同,有不同样式)

*:link:没有点击过

*:visited:访问过后

*:hover:悬停

*:active:点击的时候,按下的时候

*必须按顺序

*一般只写:hover

*习惯:a标签中描述盒子,伪类中描述文字样式、背景。A没有继承

(3)     Background系列属性

1)background-color:rgb(255,255,255);  十六进制:#fff  英文:black

2)background-image:url(相对路径);

3)background-repeat:四种 默认、no-repeatrepeat-xrepeat-y背景重复

4)background-position:水平 垂直;

*背景定位,常用英文(rightcenterlefttopbottom

*css精灵:把所有小图标合并到一张图上,通过背景定位,显示部分减少http:请求

*应用:大背景居中给body设置背景图,定位居中、通栏banner

                            5background-attachment:fixed背景固定,不会随滚动条滚动

                            6background综合属性 background:url(1.jpg) no-repeat 100px 100px fixed;

(4)     去掉小圆点 list-style:none;

(5)     缩进 text-indent:2em;缩进两个汉字。

posted @ 2017-03-20 17:18  岁痕  阅读(146)  评论(0)    收藏  举报