CSS基础复习第二天

258 阅读6分钟

这是我参与更文挑战的第27天,活动详情查看:更文挑战

css性质

继承性

css继承性:元素可以从祖先继承文字属性,不能继承盒子属性 祖先设置文字属性后代元素都将继承这些文字属性。

文字属性:color, font系列,line系列,text系列等
盒子属性(不能继承):width,height,background系列,border,浮动,等

图片4.png

css一个比较好性质,可以将一些文字属性给祖先设置,他的后代都将继承这些文字属性,简化代码。

body {
	color: #333;
	font-family: "Arial","Microsoft Yahei","SimSun";
	font-size: 14px;
}

层叠性体现:继承性

div {
	width: 300px;
	height: 300px;
	background-color: lightblue;
}

css层叠性

同一个元素被不同选择器选中,设置相同样式,会如何显示?

层叠性:同一个元素被不同选择器选中,设置相同样式,权重大的会层叠掉权重小的。

div class="box" id="box">盒子</div>
/*同一个元素被不同选择器选中 div .box   #box 同时设置文字颜色,会如何渲染*/
div {
	font-size: 50px;
	color: red;
}
#box {
	color: blue;
}
.box {
	color: green;
}

权重:元素选择器针对性越强,权重就越大。

id选择器 》类选择器 》 标签选择器

1id = 255类

1类 = 255标签

选中元素,计算该元素的权重。

选中元素,计算权重,只需要看id数量,类的数量,标签数量。先比较id选择器的数量,id数量多的权重最大;如果id数量相同,比较类的数量,类的数量多的权重就大;如果类的数量还相同就比较标签的数量,标签数量多的权重最大;如果标签数量还相同,直接看书写顺序,谁的样式在最后就显示谁的样式。

.box1 .box2 #box3 p {
	color: blue;
	/*(1,2,1)*/
}
/*选择器数量都相同,后面的样式层叠掉前面的*/
#box1 .box2 .box3 p {
	color: green;
	/*(1,2,1)*/
}

②元素没有被选中,该元素权重是0. 样式看继承性(html结构距离近的优先渲染)就近原则

body {
	font-size: 50px;
	color: red;
}
#box1 {
	color: blue;
}
.box3 {
	color: green;
}

如果距离相同,看选择器权重(依次比较该选择器id,类,标签选择器数量)

.box1 .box2 {
	color: blue;
	/*(0,2,0)*/
}
#box1 .box2 {
	color: green;
	/*(1,1,0)*/
}

如果距离相同,选择器数量还相同,看css书写顺序

.box1 #box2 {
	color: orange;
}
/*数量相同,看css顺序*/
#box1 .box2 {
	color: green;
	/*(1,1,0)*/
}

important

语法:

书写在属性值后面添加空格 !important分号结束

作用:可以提高选中元素单个属性的权重最大。而不是提高整个选择器的权重

图片5.png

important不影响就近原则。

/*元素没有被选中*/
body {
	font-size: 50px;
	color: red !important;
}
.box {
	color: green;
}

文字样式

color

文字颜色:

属性值:三种色值表示法都可以使用

color: #B30000;  //十六进制表示法
color: rgb(255,0,0); //rgb()
color: red;      //单词表示法

font-style

设置文字是否倾斜

默认值:normal(正常)

倾斜: oblique(普通倾斜)

倾斜: italic(使用,将有倾斜字体的英文进行替换)

.ob {
	font-style: oblique;
}
.it {
	font-style: italic;
}

图片1.png

图片2.png

font-weight

设置文字是否加粗

默认值: normal(正常) 500

加粗: bold 700

属性值:100-900(没有单位)

.f700 {
	font-weight: 700;
}

font-size

字号:单位是px

工作中读取设计师标注

现在需要自己手动测量。

粗略的测量:直接测量文字高度。

图片3.png

图片4.png

浏览器有最小字号,超过最小字号,默认显示最小字号。(chrome最小字号12px)

图片5.png

line-height

行高:一行文字实际占有的高度。

特点:文字在行高内垂直居中。

单位是px;

line-height: 200px;

图片6.png

单行文本垂直居中:盒子的高度和行高相同。

div.box1 {
	width: 300px;
	height: 100px;
        4font-size: 30px;
	line-height: 100px;
	background-color: pink;
}

图片8.png

百分数表示:%(表示和字号比值)

.box2 {
	width: 400px;
	height: 100px;
	border: 1px solid #000;
	font-size: 20px;
	/*line-height: 100px;*/
	/*line-height是相对字号比值: 20 * 500% = 100px*/
	line-height: 500%;
}

font-family

字体。 一般我们使用字体,使用计算机默认自带字体,特殊的字体,计算上没有,那么不能正常渲染。

英文字体: Arial

中文: Microsoft Yahei,备用字体SimSun;

/*字体 先书写英文字体,在书写中文字体*/
font-family: "Arial","Microsoft Yahei","SimSun";

font:是一个复合属性,可以书写复合写法。每一个属性用空格隔开。

属性值可以省略,表示默认值,至少要书写字号,字体。

font: 是否倾斜 是否加粗 字号/行高 字体; 
font: italic bold 30px/100px "Arial","Microsoft Yahei";

文本控制属性:

text-indent

设置文本首行缩进。

单位是em。2em表示首行缩进2汉字

text-indent: 2em;

图片9.png

单位:百分数(相对父盒子宽度的比值)

ext-indent: 20%;

单位: px

text-indent: 100px;

text-align

设置文本水平左右居中。

属性值:

默认值: left(靠左)

靠右(right)

居中(center)

text-align: center;

图片10.png

img:插入图片(文本)

text-align: center; 设置文本居中(单行,多行)

图片11.png

text-decoration

文本是否设置下划线

默认值(除了a标签):

没有下划线: none

下划线: underline

text-decoration: none;
text-decoration: underline;

盒模型

概述

width: 盒子内容宽度
height: 盒子内容高度
border: 边框
padding: 内边距
margin: 外边距

图片12.png

内容区域:

内容宽 = width
内容高 = height

实际占有区域:

实际占有宽度 = width + padding * 2 + border * 2
实际占有高度 = height + padding * 2 + border * 2

图片13.png

计算:

实际宽 = 500 + 50 * 2 + 10 * 2 = 620px
实际高 = 300 + 50 * 2 + 10 * 2 = 420px

一般经常给出的是盒子占有宽高,需要我们计算出盒子的内容宽和高。

盒子内容宽 width  = 盒子实际宽度 - Padding * 2 - border * 2
盒子内容高 height  = 盒子实际高度 - Padding * 2 - border * 2

盒子宽度是500px,盒子高度是 300px,内边距是50px,边框是20px,计算盒子内容宽和高度

width = 500 - 50 * 2 - 20 * 2 = 360px
height = 300- 50* 2 - 20 *2 = 160px

背景(背景色和背景图)渲染区域:边框以内(padding区域可以渲染背景)

background-image: url(images/star.gif);

图片14.png

padding

内边距: 内容到内边框之间的距离。

图片15.png

padding:也是复合属性,可以按照方向进行拆分
padding-left
padding-right
padding-top
padding-bottom

图片16.png

可以书写复合写法: 四值法:上 右 下 左;

padding: 30px 40px 50px 60px;

图片17.png

三值法: 上 右(左) 下;

padding: 30px 50px 60px;

二值法: 上(下) 右(左);

padding: 30px 50px;

单值法: 四个方向都相同;

padding: 30px;

一般在使用时我们习惯先书写单值法,特殊方向用单一属性层叠掉。

padding: 30px;
padding-left: 100px;

图片18.png

margin

外边距: 盒子之间的距离

用法和padding 一样

margin也是复合属性可以按照方向拆分

margin-left
margin-right
margin-top
margin-bottom

可以书写复合写法:

四值法: 上 右 下 左;(三值法,二值法,单值法)

margin: 20px 30px 40px 50px;

图片19.png