CSS
- Casecading层叠 Style样式 Sheet表, 用于美化页面
CSS的三大特性
- 继承性: 元素可以继承上级元素的部分样式(包括文本相关和字体相关) ,个别标签自带效果不受继承影响,如:h1-h6自带字体大小不受影响,超链接a标签自带字体颜色也不受继承影响.
- 层叠性: 不同的选择器有可能作用到相同某一个元素,如果作用的样式不同则全部生效(层叠到一起全部生效),如果作用的样式相同则由优先级来决定
- 优先级: 作用范围越小优先级越高 id>class>标签名>继承 , 直接选中优先级高于间接选中(继承属于间接选中)
CSS的引入方式
- 内联样式:在标签的内部添加style属性,在属性内部添加css样式代码,弊端:不能复用
- 内部样式:在head标签内部添加style标签,通过选择器给元素添加样式,好处可以复用 弊端:只能在当前页面复用
- 外部样式:在单独的css文件中通过选择器给元素添加样式,在html页面中通过link标签引入样式文件, 好处:可以多页面复用
三种引入方式的优先级
- 内联优先级最高
- 内部和外部优先级相同,后执行覆盖先执行
选择器
- 标签名选择器
- 格式: 标签名{样式代码}
- 选取页面中所有的指定标签
- id选择器
- 格式: #id{样式代码}
- 当需要选择页面中的某一个元素时使用id选择器
- class选择器
- 格式: .class{样式代码}
- 当需要选取页面中某一类元素(多个)时使用class选择器
- 属性选择器
- 格式: 标签名[属性名=’属性值’]{样式代码}
- 通过标签的属性去选择元素
- 分组选择器
- 格式: div,#id,.class{样式代码}
- 将多个选择器合并成一个选择器
- 子孙后代选择器
- 格式: div span{样式代码}
- 选取div里面所有的span(包括子元素和所有后代元素)
- 子元素选择器
- 格式: div>span{样式代码}
- 选取div里面所有的子元素span
- 伪类选择器
- 用于选取元素的状态
- 未访问状态link/访问过状态visited/点击状态active/悬停状态hover
- 任意元素选择器
- 格式: *{样式代码}
- 选中页面中所的元素
颜色赋值
- 三原色:rgb red green blue 红 绿 蓝 每个颜色的取值是0-255
- 通过6位16进制赋值 #ff0000
- 通过3位16进制赋值 #f00
- 通过3位10进制赋值 rgb(0-255,0-255,0-255)
- 通过4位10进制赋值 rgba(0-255,0-255,0-255,0-1) a=alpha 透明度 值越小越透明
背景图片
1 | /* 设置背景图片 */ |
盒子模型
- 盒子模型由 宽高+外边距+内边距+边框组成
盒子模型之宽高
- 两种赋值方式:
- 像素
- 上级元素的百分比
- 行内元素不能修改宽高 宽高由内容决定
盒子模型之外边距
- 什么是外边距:元素距上级元素或相邻兄弟元素的距离称为外边距
- 赋值方式:
- margin-left/top/bottom/right:20px;
- margin:10px; 四个方向10px
- margin:10px 20px; 上下10 左右20
- margin:0 auto; 水平居中
- margin:10px 20px 30px 40px; 上右下左 顺时针
- 行内元素上下外边距无效
- 左右相邻相加 上下取最大
- 当元素的上边缘和上级元素的上边缘重叠时会出现粘连问题,在上级元素中添加overflow:hidden 解决
盒子模型之边框
- 单个方向添加边框:
- border-left/right/top/bottom: 粗细 样式 颜色;
- 四个方向添加边框
- border:粗细 样式 颜色;
- 行内元素边框不影响元素所占高度
- 圆角:
- border-radius: 值越大越圆 超过宽高一半时变成圆形(前提宽高一样)
盒子模型之内边距
- 什么是内边距: 元素边框距内容的距离
- 如果需要移动元素的文本内容则必须使用内边距,如果需要移动元素的子元素内容可以使用两种方式
- 给子元素添加外边距
- 给元素添加内边距(会影响元素的宽高)
- 行内元素内边距不影响元素所占高度
文本相关样式
- 水平对齐方式
- text-align:left/right/center
- 文本修饰
- text-decoration:overline/underline/line-through/none
- 文本阴影
- text-shadow:颜色 x偏移值 y偏移值 浓度(值越小越清晰)
- 行高
- line-height: 像素
- 文本颜色
- color:red;
字体相关
- 字体大小 font-size
- 字体加粗 font-weight:bold/normal(去掉加粗效果)
- 斜体 font-style:italic
- 字体设置 font-family: xxx,xxx,xxx;
溢出设置overflow
- hidden 隐藏
- visible 显示
- scroll 滚动显示
显示方式display
- block: 块级元素的默认值,独占一行,可以修改宽高
- inline: 行内元素的默认值,共占一行,但是不能修改宽高
- inline-block:行内块, 共占一行并且可以修改宽高
行内元素的垂直对齐方式 vertical-align
- top 上对齐
- bottom下对其
- middle 中间对齐
- baseline 基线对齐
position定位 (定位方式 4+1 )
- 静态定位static(默认)
- 也称为文档流定位,块级元素从上到下,行内元素从左向右
- 相对定位relative
- 元素不脱离文档流,通过top/bottom/left/right让元素从初始位置做偏移
- 当需要移动某个元素,但不希望其它元素受影响时使用.
- 绝对定位absolute
- 元素脱离文档流,通过top/bottom/left/right让元素相对于窗口做位置偏移(默认)或相对于某个上级元素做位置偏移(在上级元素中添加相对定位)
- 当需要往页面中添加一个元素,但不希望影响其它元素的位置
- 固定定位fixed
- 元素脱离文档流,通过top/bottom/left/right让元素相对于窗口做位置偏移
浮动定位
- 元素脱离文档流,元素从当前所在行向左或向右浮动,当撞到上级元素边框或其它浮动元素时停止
- 通过外边距控制元素的具体位置
- 一行装不下会自动换行, 有可能被卡住
- 如果元素的所有子元素全部浮动,则自动识别的高度为0,通过给元素添加overflow:hidden可以解决
- 如果元素浮动,则会脱离文档流 后面的元素会顶上去,如果不希望顶上去则给后面的元素添加clear:both
- 当需要把纵向排列的元素改成横向排列时使用浮动定位