前端入门笔记
FeliksLv 2021/1/23 htmlcss
# 块级元素和内联元素
# 块级元素
块级元素的特点:
- 自己独占一行。
- 高度、宽度、内外边距都可以控制。
- 宽度默认是容器(父级宽度)的100%。
- 是一个容器及盒子,里面可以放行内或者块级元素。
注意:
- 文字类的元素不能使用块级元素。
<p>
标签里主要放文字,所以它里面不能放块级元素。- 同理
<h1>
~<h6>
等都是文字类块级元素,里面也不能放其他块级元素`
# 行内元素
行内元素特点:
- 相邻行内元素在一行上,一行可以显示多个。
- 高宽直接设置是无效的。
- 默认宽度就是它本身内容的宽度。
- 行内元素只能容纳文本或其他行内元素。
注意:
- 链接里面不能再放链接
- 特殊情况链接
<a>
里面可以放块级元素,但是给<a>
转换一下块级模式最安全。
行内(内联)元素列表
- b, big, i, small, tt
- abbr, acronym, cite, code, dfn, em, kbd, strong, samp, var
- a, bdo, br, img, map, object, q, script, span, sub, sup
- button, input, label, select, textarea
# 行内块元素
同时具有块元素和行内元素的特点。例如<img/>
、<input/>
、 <td>
。
特点:
- 和相邻元素在一行上,但是他们之间会有空白缝隙,一行可以显示多个(行内元素特点)。
- 默认宽度是它本身的宽度。(行内元素特点)。
- 高度,行高,外边距以及内边距都可以控制(块级元素特点)。
# 元素显示模式的转换
例如:增加链接的处罚范围。
/*转换为块级元素*/
display:block;
/*转换为行内元素*/
display:inline;
/*转换为行内块元素*/
display:inline-block;
1
2
3
4
5
6
2
3
4
5
6
# 文字垂直居中
让文字的行高等于盒子的高度
# 背景
1.背景图片
background-image: none | url(url)
1
2.背景平铺
默认情况下,背景图片是平铺的。
background-repeat: repeat | no-repeat | repeat-x | repeat-y
1
3.背景图片位置
background-position: x y;
1
- 如果指定的两个值都是方位名词,则两个值前后顺序无关,比如left top和top left效果一样。
- 如果只指定了一个方位名词,另一个值省略,则第二个值默认居中对齐。
4.背景图像固定(背景附着)
background-attachment : scroll | fixed
1
5.背景复合写法
background: 背景颜色 背景图片地址 背景平铺 背景图像滚动 背景图片位置;
6.背景透明写法
background-color: rgba(r, g, b, a);
1
a是指alpha透明度,取值范围在0~1之间。
# CSS三大特性
# 层叠性
相同选择器设置相同的样式,此时一样样式就会覆盖(层叠)另一个冲突的样式。
层叠性原则:
- 样式冲突,遵循的原则是就近原则,哪个样子离结构近,就执行哪个样式
- 样式不冲突就不会层叠
# 继承性
子标签会继承父标签的某些样式,如文本颜色和字号
特殊情况:行高的继承
body{
font:12px/1.5;
}
1
2
3
2
3
- 行高可以跟单位也可以不跟单位
- 如果子元素没有设置行高,则会继承父元素的行高为1.5
- 此时子元素行高:当前子元素文字大小*1.5
# 优先级
选择器 | 选择器权重 |
---|---|
继承或者 * | 0,0,0,0 |
元素选择器 | 0,0,0,1 |
类选择器,伪类选择器 | 0,0,1,0 |
ID选择器 | 0,1,0,0 |
行内样式style="" | 1,0,0,0 |
!important | ∞ |
- 等级判断从左到右
- 继承的权重为0,如果该元素没有直接选中,不管父元素权重有多高,子元素得到的权重都是0
# 权重叠加
复合选择器会有权重叠加的问题,需要计算权重。
# CSS盒子模型
盒子模型:边框,内外边距和实际内容
# 边框
border : border-width || border-style || border-color
1
合并相连边框
border-collapse: collapse;
1
# 内边距
1个值代表上下左右都有5px内边距
padding: 5px;
1
2个值代表上下内边距5px,左右10px
padding: 5px 10px;
1
3个值代表上内边距有5px,左右10px,下20px
padding: 5px 10px 20px;
1
4个值代表上右下左
padding: 5px 10px 20px 30px;
1
如果盒子本身没有指定width/height属性,则此时padding不会撑开盒子大小。
# 外边距
外边距实现水平居中
- 盒子必须指定了宽度
- 盒子左右的外边距都设置为auto
margin: 0 auto;
1
以上是让块级元素水平居中,行内元素或者行内块元素水平居中可以给其父元素添加text-align:center即可。
# 圆角边框
border-radius:length;
1
- 参数值可以是数值或者百分比的形式
- 如果是正方形,想要设置一个圆,把数值修改为高度或者宽度的一半即可,或者直接写50%
- 如果是矩形,设置高度的一半(试一试看效果)
- 该属性是一个简写属性,可以跟四个值,分别代表左上角、右上角、右下角、左下角
# 阴影
盒子阴影
box-shadow: h-shadow v-shadow blur spread color inset;
1
- h-shadow 必需。水平阴影的位置,允许负值。
- v-shadow 必需。垂直阴影的位置,允许负值。
- blur 可选,模糊距离。
- spread 可选,阴影的尺寸。
- color 阴影颜色,可选。
- inset 可选,将外部阴影(outset)改成内部阴影。
默认是外部阴影(outset),但是不能写outset,写了会让阴影失效。
text-shadow: h-shadow v-shadow blur color;
1
- h-shadow 必需。水平阴影的位置,允许负值。
- v-shadow 必需。垂直阴影的位置,允许负值。
- blur 可选,模糊距离。
- color 阴影颜色,可选。