css

css-css3

概述

层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。

CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。

由来

略…

特点

CSS为HTML标记语言提供了一种样式描述,定义了其中元素的显示方式。CSS在Web设计领域是一个突破。利用它可以实现修改一个小的样式更新与之相关的所有页面元素。

总体来说,CSS具有以下特点:

丰富的样式定义

CSS提供了丰富的文档样式外观,以及设置文本和背景属性的能力;允许为任何元素创建边框,以及元素边框与其他元素间的距离,以及元素边框与元素内容间的距离;允许随意改变文本的大小写方式、修饰方式以及其他页面效果。

易于使用和修改

CSS可以将样式定义在HTML元素的style属性中,也可以将其定义在HTML文档的header部分,也可以将样式声明在一个专门的CSS文件中,以供HTML页面引用。总之,CSS样式表可以将所有的样式声明统一存放,进行统一管理。

另外,可以将相同样式的元素进行归类,使用同一个样式进行定义,也可以将某个样式应用到所有同名的HTML标签中,也可以将一个CSS样式指定到某个页面元素中。如果要修改样式,我们只需要在样式列表中找到相应的样式声明进行修改。

多页面应用

CSS样式表可以单独存放在一个CSS文件中,这样我们就可以在多个页面中使用同一个CSS样式表。CSS样式表理论上不属于任何页面文件,在任何页面文件中都可以将其引用。这样就可以实现多个页面风格的统一。

层叠

简单的说,层叠就是对一个元素多次设置同一个样式,这将使用最后一次设置的属性值。例如对一个站点中的多个页面使用了同一套CSS样式表,而某些页面中的某些元素想使用其他样式,就可以针对这些样式单独定义一个样式表应用到页面中。这些后来定义的样式将对前面的样式设置进行重写,在浏览器中看到的将是最后面设置的样式效果。

页面压缩

在使用HTML定义页面效果的网站中,往往需要大量或重复的表格和font元素形成各种规格的文字样式,这样做的后果就是会产生大量的HTML标签,从而使页面文件的大小增加。而将样式的声明单独放到CSS样式表中,可以大大的减小页面的体积,这样在加载页面时使用的时间也会大大的减少。另外,CSS样式表的复用更大程度的缩减了页面的体积,减少下载的时间。 [8]

工作原理

CSS是一种定义样式结构如字体、颜色、位置等的语言,被用于描述网页上的信息格式化和显示的方式。CSS样式可以直接存储于HTML网页或者单独的样式单文件。无论哪一种方式,样式单包含将样式应用到指定类型的元素的规则。外部使用时,样式单规则被放置在一个带有文件扩展名_css的外部样式单文档中。

样式规则是可应用于网页中元素,如文本段落或链接的格式化指令。样式规则由一个或多个样式属性及其值组成。内部样式单直接放在网页中,外部样式单保存在独立的文档中,网页通过一个特殊标签链接外部样式单。

名称CSS中的“层叠(cascading)”表示样式单规则应用于HTML文档元素的方式。具体地说,CSS样式单中的样式形成一个层次结构,更具体的样式覆盖通用样式。样式规则的优先级由CSS根据这个层次结构决定,从而实现级联效果。

语言基础

属性和属性值

属性

属性的名字是一个合法的标识符,它们是CSS语法中的关键字。一种属性规定了格式修饰的一个方面。例如:color是文本的颜色属性,而text-indent则规定了段落的缩进。

要掌握一个属性的用法,有六个方面需要了解。具体叙述如下:

①该属性的合法属性值(legal value)。显然段落缩进属性text-indent只能赋给一个表示长度的值,而表示背景图案的background.image属性则应该取一个表示图片位置链接的值或者是关键字none表示不用背景图案。

②该属性的默认值(initial value)。当在样式表单中没有规定该属性,而且该属性不能从它的父级元素那儿继承的时候,则浏览器将认为该属性取它的默认值。

③该属性所适用的元素(Applies to)。有的属性只适用于某些个别的元素,比如white-space属性就只适用于块级元素。white-space属性可以取normal、pre和nowrap三个值。当取normal的时候,浏览器将忽略掉连续的空白字符,而只显示一个空白字符。当取pre的时候,则保留连续的空白字符。而取nowrap的时候,连续的空白字符被忽略,而且不自动换行。

④该属性的值是否被下一级继承(inherited)。

⑤如果该属性能取百分值(percentage),那么该百分值将如何解释。也就是百分值所相对的标准是什么。如margin属性可以取百分值,它是相对于margin所存元素的容器的宽度。

⑥该属性所属的媒介类型组(media groups)。

属性值

①整数和实数

这和普通意义上的整数和实数没有多大区别。在CSS中只能使用浮点小数,而不能像其他编程语言那样使用科学记数法表示实数,即1.2E3在CSS中将是不合法的。下面是几个正确的例子,整数:128、-313,实数:12.20、1415、-12.03。

②长度量

一个长度量由整数或实数加上相应的长度单位组成。长度量常用来对元素定位。而定位分为绝对定位和相对定位,因而长度单位也分为相对长度单位和绝对长度单位。

相对长度单位有:em——当前字体的高度,也就是font.size属性的值;ex——当前字体中小写字母x的高度;Dx——一个像素的长度,其实际的长度由显示器的设置决定。

另一一点值得注意的是,子级元素不继承父级元素的相对长度值,只继承它们的实际计算值。

③百分数量(percentages

百分数量就是数字加上百分号。显然,百分数量总是相对的,所以和相对长度量一样,百分数量不被子级元素继承。 [10]

选择器(选择器 {key: value})

简单选择器

\1. 元素选择器

\2. Class类选择器

\3. Id选择器

\4. 通配符选择器 (*)

复杂选择器

\1. 后代选择器

\2. 子选择器

\3. 并集选择器

\4. 伪类选择器(:hover)

Css3 新属性 (i8不支持)

\5. 属性选择器([key=value])

\6. 结构伪类选择器 first-child last-child nth-child(n) fiset-of-typ last-of-type nth-of-type(n)

\7. 伪元素选择器 ::before ::after(属于内行元素,文档中找不到,必须有content)

Css样式

定义

内行,内部,外行

使用

Cssi8 样式(及以上支持)

  1. 字体样式 font-style, font-weight, font-size, font-family (继承性)

  2. 文本样式 color, text-align,text-index,text-decoration,line-heght (继承性)

  3. 背景样式 background-color,background-images:url(src),background-repeat,background-position,background-attachment

  4. 链接样式 :hover(鼠标指针位于元素的上方)

  5. 模式样式 display(black,line-block,line,none)

  6. 列表样式 list-style-type,list-style-image,list-style-position

  7. 表格样式 border-collapse

  8. 轮郭样式 outline-color,outline-style,outline-width

  9. 盒子样式 border,padding,margin,width,height

  10. 浮动样式 float clear

  11. 伪元素样式 :before :after

  12. 滚动条 overflow scroll/hidden/auto

  13. 定位样式 position: static/realtive/absolute/fixed

  14. 鼠标样式 cursor: default/pointer/move/text/not-allowed

  15. vertical-align样式: middle/top/button

  16. 溢出处理 text-overflow

Css3 样式(i9及以上支持)

  1. 圆角边框 border-radius

  2. 图片边框 border-images

  3. 盒子阴影 box-shadow: h-shadow v-shadow blur spread color inset;

  4. 文字阴影 text-shadow:h-shadow v-shadow blur color;

  5. Z-index样式 关于z抽的设置

  6. 盒子样式 box-sizing

  7. 滤镜**样式 filter (不支持ie)

  8. calc样式函数

  9. 调整尺寸 resize

  10. 外形修饰outline-offset

  11. Css3 字体 @font-face

  12. 过度 transition 属性 所花时间 运动曲线 何时开始

  13. 2d旋转 transform translate rotate(transform-origin) scale

  14. 动画 1. @keyframes name{(动画序列) 0% {} 100% {} } animation

  15. 3d旋转 transform translate3d rotate3d

  16. 透视样式 prespective 作用父类 单位像素

  17. 3d呈现样式 transfrom-style 作用父类 flat,preserve-3d,是否开启3d样式呈现

  18. 背景样式 background-size , background-origin, background-clip

  19. 渐变样式 background-images: linear gradient/radial gradient

  20. 透明样式 opacity filter:Alpha(opacity=) (继承性)

  21. 多列样式 column-count,column-gap,column-rule-style,column-rule-width

    column-rule-color,column-span,column-width

  22. 多媒体查询样式 @media mediatype and/not/only (expressions) { CSS 代码…;}

调式

浏览器调式工具f12

Emmet快捷

\1. Html

\2. Css

\3. 代码的格式化

Css特性

继承父元素的样式后权重性为零,!Important 权重性最高

  • 叠层性

  • 继承性

  • 权重性

注: 复杂选择器权重性叠加

​ 继承(*), 权重 0

​ 元素选择器,伪元素选择器 权重 1

​ 类选择器,伪类选择器, 属性选择器,结构伪类选择器 权重 10

​ id选择器 权重 100

​ 行内选择器 1000

​ !Importanc 权重 最大

问题

  1. 清除内外边距

  2. 设置margin样式出现的外边距溢出

  3. 块级元素,行内元素,行内块元素的特点问题

  4. 行内元素尽量不要设置上下内外边距问题

  5. Css三大特性问题

  6. 浮动特点问题

  7. 浮动的高度塌陷问题

  8. 定位的特点

  9. 精灵图运用

  10. 字体图标

  11. 图形的制作

  12. 图片底部空白间隙的问题

  13. 文字溢出省略号问题

  14. Margin负值的问题

  15. 文字围绕浮动效果

  16. Border 的运用

  17. 垂直居中问题

  18. Transfrom

  19. Animation

  20. a标签的问题

  21. 样式前缀问题

  22. css引入媒体样式 media=**”mediatype and|not|only (media feature)

高度坍塌

成因

  • 父元素 div 未设置高度
  • 子元素全部设置浮动(float: left | right;),浮动元素 脱离文档流不占页面空间
  • 由于父元素为设置高度,高度靠内部子元素撑开,而今子元素全部脱离文档流,所以此时父元素的高度为 0,给父元素和子元素设置 边框border: 1px solid #000;)或者 显示父元素轮廓outline: 1px solid #000;),会出现子元素超出了父元素的区域范围,即为:高度坍塌现象

解决方法

2.1 根据子元素的最大高度为父元素设置高度

  • 前提是要知道子元素高度

2.2 父元素也设置为浮动

  • 会影响父元素的兄弟元素,可能破坏原有的页面布局

2.3 父元素设置 overflow: auto | hidden; 属性

  • 只要溢出的内容一律都会被隐藏,可能会隐藏不想被隐藏的部分

2.4 为父元素增加伪元素(推荐)

外边距溢出

  1. 成因
    • 父元素 div 未设置边框
    • 第一个子元素设置了上外边距(margin-top: 10rem;)或者 最后一个子元素设置了下外边距(margin-bottom: 10rem;
    • 导致父元素与子元素一起发生相应的偏移的现象,即为:外边距溢出现象
  2. 解决方法
    • 为父元素增加伪元素(推荐)

浮动会脱离标准流

如果一个元素按照正常的标准流来显示,会在html中所属的位置上占位,后面的元素会紧跟着它,但是浮动脱离了标准流,以后我们在看到浮动的元素之后,不能以正常的标准流里进行判断

浮动的元素会影响下面的元素,不会影响上面的元素

浮动会影响元素的显示方式

​ 不管元素是行内元素还是块级元素,设置浮动后,将来显示的时候会在同一行内显示,除非一行放不下了,才会在第二行依次显示浮动后的元素是可以设置宽高

Css布局

传统布局(pc) (i8都支持)

​ 标准流/普通流/文档流

​ 浮动(非文档流)

​ 定位

​ 注:两栏布局,三栏布局(经典)

移动端布局

Css书写规范

布局定位样式

自身样式

文本样式

Css3样式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值