CSS总结笔记(三)

一、行高和字号

1.1 行高

CSS中,所有的行,都有行高。盒模型的padding,绝对不是直接作用在文字上的,而是作用在“行”上的。

为了严格保证字在行里面居中,我们的工程师有一个约定: 行高、字号,一般都是偶数。这样,它们的差,就是偶数,就能够被2整除。

1.2 当行文本垂直居中

当设置 行高=盒子高 时,单行内文本居中。如果想让多行文本垂直居中,需要设置盒子的padding

1.3 font属性

快速写法:

font:14px/24px "宋体"  

网页中不是所有字体都可使用的,因为需要看用户电脑里有哪些字体,若没有则会变为默认的宋体。

页面中,中文我们只使用: 微软雅黑、宋体、黑体。 如果页面中,需要其他的字体,那么需要切图。

英语:Arial 、TimesNew Roman

备选字体:

 font-family: "微软雅黑","宋体";

 我们要将英语字体,放在最前面,这样所有的中文,就不能匹配英语字体,就自动的变为后面的中文字体

font-family: "Times NewRoman","微软雅黑","宋体";

 所有的中文字体,都有英语别名,我们也要知道

微软雅黑的英语别名:

font-family: "Microsoft  YaHei";  

宋体的英语别名:

font-family: "SimSun";

行高可以用百分比,表示字号的百分之多少

font:12px/200%“宋体”

二、超级链接的美化

2.1 伪类

同一个标签,根据用户的某种状态不同,有不同的样式。这就叫做“伪类”。

a标签有4种伪类:

:link      表示,用户没有点击过这个链接的样式。是英语“链接”的意思。

:visited    表示,用户访问过了这个链接的样式。是英语“访问过的”的意思。

:hover     表示,用户鼠标悬停的时候链接的样式。是英语“悬停”的意思。

:active     表示,用户用鼠标点击这个链接,但是不松手,此刻的样式。是英语“激活”的意思。

这四种状态,在css中,必须按照固定的顺序写,否则会失效.

2.2 超级链接的美化

一定要将a标签写在前面,:link、:visited、:hover、:active这些伪类写在后面。

a标签中,描述盒子; 伪类中描述文字的样式、背景。

所有的a不继承text、font这些东西。因为a自己有一个伪类的权重。

a:link、a:visited都是可以省略的,简写在a标签里面。

.nav ul lia{

display: block;

width: 120px;

height: 40px;

}

.nav ul li a:link,.nav ul li a:visited{

text-decoration: none;

background-color: yellowgreen;

color:white;

}

.nav ul li a:hover{

background-color:purple;

font-weight:bold;

color:yellow;

}

三、background系列属性

3.1 backgoround-color属性

css2.1中,颜色的表示方法一共有三种:单词、rgb表示法、十六进制表示法

3.1.1 英文单词:

background-color: red;  

3.1.2 RGB方法

background-color:rgb(255,0,0);

3.1.3 16进制表示法

background-color:#ff0000;

十六进制中,13 这个数字表示什么?

表示1个16和3个1那就是19。这就是位权的概念,开头这位表示多少个16,末尾这位表示多少个1。

3.2 background-image

用于给盒子加上背景图片:

background-image:url(images/wuyifan.jpg);

url()表示网址,uniform resouces locator 统一资源定位符

背景天生是会被平铺满的。padding的区域有背景图。

3.3 background-repeat属性

设置背景图是否重复的,重复方式的。

background-repeat:no-repeat;   不重复

background-repeat:repeat-x;    横向重复

background-repeat:repeat-y;    纵向重复

3.4 background-position 属性

3.4.1 属性的意思

背景定位属性 position就是“位置”的意思。background-position就是背景定位属性。

background-position:向右移动量 向下移动量;

3.4.2 css精灵

“css精灵”,英语css

sprite,所以也叫做“css雪碧”技术。是一种CSS图像合并技术,该方法是将小图标和背景图像合并到一张图片上,然后利用css的背景定位来显示需要显示的图片部分。

css精灵有什么优点,就是减少了http请求。比如4张小图片,原本需要4个http请求。但是用了css精灵,小图片变为了一张图,http请求只有1个了。

3.4.3 用单词描述

background-position: right bottom;

3.5 background-attachment

背景是否固定。背景就会被固定住,不会被滚动条滚走。

background-attachment:fixed;

3.6 background综合属性

background属性和border一样,是一个综合属性:

background:red url(1.jpg) no-repeat 100px 100px fixed;

等价于:

background-color:red;

background-image:url(1.jpg);

background-repeat:no-repeat;

background-position:100px 100px;

background-attachment:fixed;

即有背景图,又有背景颜色,则以显示图片为主,显示图片后其余部分用背景颜色填充。

background: blue url(images/wuyifan.jpg) no-repeat 100px 100px;

四、相对定位

定位有三种:相对定位,绝对定位,固定定位。

相对定位  position:relative;

绝对定位:position:absolute;

固定定位:position:fixed;

4.1 认识相对定位

相对定位,就是微调元素位置的。让元素相对自己原来的位置,进行位置调整

position:relative;   →必须先声明,自己要相对定位了,

left:100px;       →然后进行调整。

top:150px;      → 然后进行调整。

4.2 不脱标,老家留坑,形影分离

相对定位不脱标,真实位置是原位置,只是浮动层影子为表象。

4.3 相对定位用途

相对定位有坑,所以一般不用于做“压盖”效果。页面中,效果极小。就两个作用:

1)微调元素

2)做绝对定位的参考,子绝父相

4.4 相对定位的定位值

position: relative;

right:100px;   往左边移动(相对于右侧基准线移动)

top: 100px;

五、绝对定位

5.1 绝对定位脱标

绝对定位的盒子,是脱离标准文档流的。所以,所有的标准文档流的性质,绝对定位之后都不遵守了。

绝对定位之后,标签就不区分所谓的行内元素、块级元素了,不需要display:block;就可以设置宽、高了:

span{

position: absolute;

top: 100px;

left: 100px;

width: 100px;

height: 100px;

background-color: pink;

}

5.2 参考点

绝对定位的参考点,如果用top描述,那么定位参考点就是页面的左上角而不是浏览器的左上角

CSS总结笔记(三)_第1张图片

如果用bottom描述,那么就是浏览器首屏窗口尺寸,对应的页面的左下角

CSS总结笔记(三)_第2张图片
浏览器首屏

面试题:

CSS总结笔记(三)_第3张图片
面试题问题


CSS总结笔记(三)_第4张图片
面试题答案

5.3 以盒子为参考点

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

2.要听最近的已经定位的祖先元素的,不一定是父亲,可能是爷爷

3.不一定是相对定位,任何定位,都可以作为参考点

子绝父绝、子绝父相、子绝父固,都是可以给儿子定位的。但是,工程上子绝、父绝,没有一个盒子在标准流里面了,所以页面就不稳固,没有任何实战用途。工程上,“子绝父相”有意义,父亲没有脱标,儿子脱标在父亲的范围里面移动。

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

下图中,绿色部分是div的padding,蓝色部分是div的内容区域。那么此时,div相对定位,p绝对定位。

p将无视父亲的padding,在border内侧为参考点,进行定位:

CSS总结笔记(三)_第5张图片

5.4 绝对定位的盒子居中

由于绝对定位的盒子脱标,所以margin:0 auto;失效了,所以使用固定代码:

就是left:50%; margin-left:负的宽度的一半

width: 600px;

height: 60px;

position:absolute;

left: 50%;

top: 0;

margin-left: -300px;   → 宽度的一半

六 固定定位

固定定位,就是相对浏览器窗口定位。页面如何滚动,这个盒子显示的位置不变。固定定位也是脱标的,IE6不兼容。

七、z-index

● z-index值表示谁压着谁。数值大的压盖住数值小的。

●只有定位了的元素,才能有z-index值。也就是说,不管相对定位、绝对定位、固定定位,都可以使用z-index值。而浮动的东西不能用。

● z-index值没有单位,就是一个正整数。默认的z-index值是0。

●如果大家都没有z-index值,或者z-index值一样,那么谁写在HTML后面,谁在上面能压住别人。定位了的元素,永远能够压住没有定位的元素。

从父现象:父亲怂了,儿子再牛逼也没用。

你可能感兴趣的:(CSS总结笔记(三))