CSS完整笔记
CSS
1,选择器
选择标签用的
2,选择器
2.1 基本选择器
2.1.1 标签选择器
如 p {} div{} .... 会将所有的 p 标签 选上
2.1.2类选择器
如 .class1 {} 会将class="class1"的元素选择上
class="class1 class2 class3" 则该元素会有class1,2 ,3的属性 (中间必须有空格隔开)
更加有利于代码的复用性
2.1.3 id选择器
#id {} (id不会重复)
会选择id与选择器相同的元素
2.1.4 通配符选择器
*{} 选取页面中所有的元素(标签)
*{margin: 0 ; padding: 0 ;}
2.2, 复合选择器
复合选择器是建立在基础选择器之上,由多个基本选择器进行组合的.
2.2.1 后代选择器(重要)
用空格表示 某个元素的后面 祖爷爷 爷爷 爸爸 儿子
body p{(body里面的所有元素 body是父亲 p 是孩子 对 p以及p以下任意元素都有效果)
background: aqua;
}
2.2.2 子选择器
用 **>** 表示 后面一代的元素(只取p同级的元素) 亲儿子选择器
body>p{
background: red;
}
2.2.3 并集选择器(重要)
p1,p2{} (用逗号相连) 选择p1,p2
2.2.4伪类选择器( : )
1, 伪类链接选择器
按 : link - :visited- :hover- :active顺序写
鼠标放在上面变色
a: hover { color: aqua; }
鼠标按住未释放
a: active {
color: aqua;
}
没有访问过的
a: link {
color: greenyellow;
}
已经访问过的
a: visited { color: greenyellow; }
2,focus伪类选择器(光标)
把获取光标的input表单元素选取出来
input : focus{ background-color: pink}(谁得到了焦点,谁就改变)
3,结果伪类选择器
ul的第一个子li元素
ul li:first-child{
background: red;
}
ul的最后一个子li元素
ul li:last-child{
background: green;
}
选择p元素父元素(body)的第n个子元素并且该元素必须是p类元素
p:nth-child( n ){/选择 p元素 父元素 (body)的第n个子元素并且该元素 必须 是p类元素 即p1/
background: green;
}
选择p元素父元素(body)的第n个p类子元素
p:nth-of-type(2){/选择p元素父元素(body)的第n个p类子元素 即p2/
background: red;
}
3, 字体属性
选择器的一个属性
字体 { font-family:'微软雅黑(Microsoft Yahei)',宋体}
尽量使用自带的字体,并且后面可以加上字体(用逗号隔开),如果前面的字体电脑没有,就显示下一个字体
字体大小
字体粗细{ font-weight: 100;}
文字样式:
字体复合:顺序确定,用空格隔开
body{
font: font-style(倾斜,正常) font-weight(粗细) font-size(大小,不可省略)/ font-height(高度) font-family(微软雅黑,不可省略) }
4, 文本属性
文本颜色 color: pink / #000000 / rgb(255,0,255) / rgba:0-1 rgba(n ,n ,n ,x(0-A)) X表示透明度
文本对齐方式 text-align: center;相对盒子来说 right文本靠右 left文本靠左 center文本居中
装饰线text-decoration: unline(下划线) line-through(删除线) overline(上划线) none (没有装饰线)
文本缩进 text-indent: 20px(2em); 每段首行缩进20px(2em当前元素两个大小)
行间距 line-height :26px(上间距+文本高度+下间距)
5, 元素的显示模式
显示模式(以什么方式进行显示)
HTML分为:块元素,行内元素
5,1 块元素
1 霸道, 独占一行
2 高度, 宽度, 外边距以及 内边距都可以控制
3 宽度默认是容器(父级宽度)的100%
4 是一个容器及盒子, 里面可以放行内或块级元素
注意:
-
文字类的元素内不能使用块级元素
-
p > 标签主要用于存放文字,因此 p > 里面不能存放块级元素,尤其是 div>
-
h1..h6 都是文字类块级标签,里面不能放其他 块级元素
5.2 行内元素
常见的有 a, strong , b , em , i , del , s , ins , u , span
其中span标签是最典型的行内元素,也叫内联元素
1 一行可以放多个
2 高度, 宽度 直接设置是 无效的
3 宽度默认是本身占有的宽度
4 只能容纳 文本 或者其他 行内元素
注意:
- 链接里面不能再放链接
- 特殊情况链接 a 里面可以放块级元素,但是给 a 转换一下块级模式最安全
5.3 行内块元素
img , input, td 同时具有块元素和行内元素特点
1 一行可以放多个 但有间隙(行元素特点)
2 高度, 宽度, 外边距以及 内边距都可以控制(块元素特点)
3 宽度默认是本身占有的宽度(行元素特点)
5.4 元素转换
1.行内元素转换为块元素
display :block; 此时行内元素一行只能放一个,并可以设置高度和宽度
2.块内元素转换为行内元素
display: inline; 此时块内元素一行可以放多个,并高度和宽度设置无效
3.转换为行内块元素
display: inline-block; 此时既可以设置高宽,还可以一行放多个元素
6, CSS的背景

元素背景颜色默认是透明的
background:背景颜色 背景图片地址 背景平铺 背景图像滚动 背景图片位置
-
背景颜色 background-color:
-
背景图片 background-image:
-
背景图片位置 background-position:X Y;
- X Y,可以是方位名词(top ,center,left,right,bottom)(顺序无关)
- X,Y也可以是px值,图片距离块右上角的 x,y距离
- 还可以混合使用,但顺序不能变
-
背景效果 background-repeat:
repeat(默认背景平铺) | no-repeat(背景不平铺)|
repeat-x(背景沿着X轴平铺) |repeat-y(背景沿着Y轴平铺) |
-
背景图像固定 background-attachment:s
corll(背景图像是随着对象内容滚动)
fixed(背景图像固定不动)
-
背景颜色半透明
background:rgba(0,0,0,0.3);(0~1)
7, CSS的三大特性
层叠性: 使用相同的样式,重叠就覆盖(就近原则)
继承性: 子标签继承父标签的某些样式如 文字颜色和字号
优先级: 选择器相同,则执行层叠性;选择器不同,则根据选择器权重执行
复合选择器权重会叠加

8, 盒子
8.1 组成
边框border(边框线),外边距margin(盒子与盒子之间),内边距padding(内容与边框的距离),和实际内容content

8.2 边框(border)
会影响盒子大小(盒子大小变成原大小加边框大小,变大了)
border-( left(左) / top(顶) /bottom(底)/right(右)) : width style color 可以一次写完

style样式
边框细化 border-collapse:collapse(合并边框 ,不然会相加变粗)
8.3 内边距(padding)
会影响盒子大小(会撑大盒子 原大小加上内边距就是现在盒子大小)
8,4外边距(margin)
margin: auto 盒子居中
行内元素或行内块元素水平居中给他的父类元素添加 text-align:center
嵌套块元素垂直外边的塌陷
可以在父元素定义上(内)边框 或者添加 overflow:hidden
9, 圆角(重点)
border-radius: length(n%);
10, 阴影
10.1 盒子阴影

10.2 文字阴影

11, 浮动
传统网页布局的三种方式: 标准流 浮动 定位
网页布局第一准则: 多个块级元素纵向排列找标准流,多个块级元素横向排列找浮动
1.标准流: 标签安装规定好默认方式排序
1. 块级元素会独占一行,从上到下顺序排序
* 常用元素: div hr p h1~h6 ul ol form table
2. 行内元素会按照顺序,从左到右顺序排列,碰到拿到父元素边缘则自动换行
* 常用元素 : span a i em 等
2.flout(浮动)
多个块级元素放在一行
float 属性用于创建浮动框,将其移动到一边,直到左边缘或右边缘触及包含块或另一个浮动框的边缘
选择器
特性: (1) 浮动元素会脱离标准流(脱标,不再保留原来位置,相当于第二层)
(2) 浮动的元素会一行内显示并且元素顶部对齐
(3) 浮动的元素会具有行内块元素的特性(能设置宽高)
一般将float元素放在标准父元素内,作为子元素在父元素内浮动
2.1 清除浮动
清除浮动: 通常放浮动元素的盒子高度不设,便于添加浮动元素,会自动撑开盒子,但存在一个问题,此时父盒子高度为0,会影响下面的标准流
选择器
清除浮动的方法:
(1)额外标签法,也称隔墙法(不能用行内元素)

(2)父级元素添加 overflow 属性, 将其属性值设为hidden(常用),auto, scroll.
(3)父级元素添加after伪元素

(4)父级元素添加双伪元素

12, 定位
定位模式+边偏移
1. 定位模式

相对定位:相对自己原来的位置,但原来位置还占用着(不脱标)
绝对定位:没有父元素或者父元素没有定位 ,则以浏览器为标准定位
如果父元素有定位则以最近的有定位父元素为准,进行定位
绝对定位不占有原来位置(脱标)
盒子: 水平居中 left:50%(父容器宽度的一半)
margin-left:-自己宽度的一半;
固定定位:固定在页面某个位置,不随着页面滚动而动
以浏览器可视窗口为参照点移动元素元素
不占由原来的位置(脱标)
粘性定位(sticky): 是相对定位和固定定位的混合
选择器{ position: sticky;top:10px;}
1.以浏览器的可视窗口为参照点移动元素(固定定位特点)
2.粘性定位占有原来的位置(相对定位特点)
3.必须添加top,left....中的一个
2. 边偏移

3. 定位叠放次序
选择器{ z-index: 1;} 数值越大,盒子越靠上
注意:
-
行内元素添加绝对定位或者固定定位,可以设置高度和宽度
-
块级元素添加绝对或者固定定位,如果不给宽度或者高度,默认是内容大小
-
浮动盒子不会压标准流盒子里面的文字,只会压住他下面标准流的盒子,
但绝对(固定)定位会压住下面标准流所有的内容
-
13, 显示和隐藏
1. display
display:none;
隐藏元素后,不在占有原来位置
2. visibility
占有原来位置

3. overflow(溢出)


浙公网安备 33010602011771号