学习CSS看这个就够了(二)
在前面两天,已经学习了html和css基础部分了。
其实,文章只把一些关键语法语义记录,如果想要更好的掌握它最好还是能够多加练习。
今天就继续学习CSS样式。
三种显示模式
标签显示模式是什么
比如div
与span
,前者一行只能显示一个,后者则一行可以显示多个。
html标签一般的分为块标签和行内标签两种
简单的理解为块状独占一行,行内则一行可以并存。
块级元素(block-level)
常见元素
<h1>~<h6> <p> <ul><ol> <div>
特点(重点)
- 独占一行
- 高度(height)、宽度(width)、内边距(padding)、外边距(margin)可以控制
- 宽度默认为容器的100%
- 是一个容器及盒子,里面可以放行内或块级元素
- p标签内不能放块级元素
- 文字类块级元素均不能放其他块级元素
行内元素(inline-level)
常见元素
<a> <strong> <b> <em> <i> <del><s> <ins><u> <span>
特点
- 相邻行内元素 在一行上
- 高、宽设置无效
- 默认宽度是本身内容宽度
- 行内元素只能容纳文本或其他行内元素
- 链接
<a>
内不能放链接 - 特殊情况时,
<a>
内可以放块状元素,但给a转换成块级元素更安全
行内块元素(inline-block)
特殊标签
<img>、<input>、<td>
特点
- 和相邻行内元素在一行,但会留有空白。
- 默认高度是内容本身高度
- 高度、行高、内外边距可以设置
标签显示模式转换
最常用的三个css属性
display:inline
块转行内
display:block
行内转块
display:inline-block
块、行内转行内块
行高(line-height)
行高的测量
行高=从上一行的文字的基线到本行的文字的基线或者从上一行文字的底线到本行文字的底线
行高和高度的三种关系
- 行高等于高度文字居中
- 行高低于高度文字偏上
- 行高低于高度文字偏下
行高等于高度实现垂直居中
单行文本垂直居中
文字的行高等于盒子的高度
行高 = 上距离 + 内容高度 + 下距离
背景(background)
背景颜色(color)
background-color:color
- 默认值为transparent 背景色透明
背景图片(image)
background-image:url(图片地址)
- 在盒子底部
- 默认属性为none
- 图片地址不提倡加引号
背景平铺(repeat)
background-repeat:属性
属性
repeat
默认的在纵向和横向平铺no-repeat
不平铺repeat-x
水平平铺repeat-y
纵向平铺
背景位置(position)重点
background-position:length || length
background-position:position || position
属性
- length
- 百分数(长度值)
- position
- top
- center
- bottom
- left
- center
- right
注意
- 首先必须有
background-image
属性 - position后面是x坐标和y坐标,可以使用方位名词或精确单位
- 如果指定两个值,两个值都是方位名字,则两个值前后顺序无关,比如left top和top left效果一致
- 如果只指定了一个方位名词,另一个值默认居中对齐。
- 如果position 后面是精确坐标, 那么第一个,肯定是 x 第二的一定是y
- 如果只指定一个数值,那该数值一定是x坐标,另一个默认居中对齐
- 如果指定的两个值是 精确单位和方位名字混合使用,则第一个值是x坐标,第二个值是y坐标
举例
.bg {
background-image:url{a.jpg};
/*background-position: 0 0; 默认*/
/*background-position: center center; 上下左右居中*/
/*background-position: left butto; 左下*/
}
<div class="bg">
背景附着
就是解释背景是滚动的还是固定的
background-attachment:scroll | fixed
scroll 默认是滚动
fixed是固定的
背景简写
background:背景颜色 背景图片地址 背景平铺 背景滚动 背景位置
背景透明(css3)
background:rgba(0,0,0,0.1)
r: red
g: green
b: black
a: alpha(透明度)
- 最后一位是透明度,0-1之间
- 背景半透明是指盒子背景半透明,盒子的内容不受影响
- css3不被低于ie9的版本支持
CSS三大特性
CSS层叠性
div {
color:red;
}
div {
color:green;
}
此处后者会覆盖前者设置,最终显示为green。
定义: 所谓层叠性是指多种CSS样式的叠加
是浏览器处理冲突的一个能力,如果一个属性通过两个相同的选择器进行设置同一个元素,那么这个时候后一个属性会覆盖掉前者
原则:
样式冲突,遵循就近原则,哪个样式离结构近,就执行哪个样式
样式不冲突,不会层叠
继承性
子标签会继承父亲的样式
<div>
<p>
</p>
</div>
当给div写样式时,p标签会继承其div的样式,比如字体、颜色等。
CSS优先级
概念:
定义CSS样式时,经常出现两个或更多规则应用在同一元素上,此时,
- 选择器相同,则执行层叠性
- 选择器不同,就会出现优先级的问题。
权重计算公式
标签选择器 | 计算权重公式 |
---|---|
继承或者 * | 0,0,0,0 |
每个元素(标签选择器) | 0,0,0,1 |
每个类,伪类 | 0,0,1,0 |
每个ID | 0,1,0,0 |
每个行内样式 style="" | 1,0,0,0 |
每个!important 重要的 | ∞ 无穷大 |
- 值从左到右,左面的最大,一级大于一级,数位之间没有进制,级别之间不可超越。
- 关于CSS权重,我们需要一套计算公式来去计算,这个就是 CSS Specificity(特殊性)
权重叠加
我们经常用交集选择器,后代选择器等,是有多个基础选择器组合而成,那么此时,就会出现权重叠加。
就是一个简单的加法计算
- div ul li ------> 0,0,0,3
- .nav ul li ------> 0,0,1,2
- a:hover -----—> 0,0,1,1
- .nav a ------> 0,0,1,1
继承的权重是0
1) 如果选中了,那么以上面的公式来计权重。谁大听谁的。
2) 如果没有选中,那么权重是0,因为继承的权重为0.
相关推荐:
《CSS盒子模型》
《学习html看这个就够了》
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200113204959374.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0NjkxMDk3,size_16,color_FFFFFF,t_70)