CSS-CSS3基础(一)

265 阅读10分钟

CSS 概述

 CSS 指层叠样式表 (Cascading Style Sheets) 样式定义如何显示 HTML 元素 

样式通常存储在样式表中 把样式添加到 HTML 4.0 中,是为了解决内容与表现分离的问题 

外部样式表可以极大提高工作效率 外部样式表通常存储在 CSS 文件中 多个样式定义可层叠为一。

CSS层叠样式表的作用

作用:样式表极大地提高了工作效率

1.可以同时更新多个网页的样式。 

2.使网页的表示层与结构层彻底分离 

3.大大减小了网页文件的大下 

4.加快了网页的加载速度

CSS基础

CSS 对大小写不敏感。不过存在一个例外:如果涉及到与 HTML 文档一起工作的 话,class 和 id 名称对大小写是敏感的。

三种样式插入

外部样式表 

<head>
<link rel="stylesheet" type="text/css" href="mystyle.css" />
</head>

内部样式表(位于 标签内部)

<style type="text/css">
  hr {color: sienna;}
  p {margin-left: 20px;}
  body {background-image: url("images/back40.gif");}
</style>

内联样式(在 HTML 元素内部)

<p style="color: sienna; margin-left: 20px">
This is a paragraph
</p>

还有一种:浏览器缺省设置 优先级最低

语法 selector {declaration1; declaration2; ... declarationN }

css选择器

派生选择器 

li strong {
    font-style: italic;
    font-weight: normal;
  }
<li><strong>我是斜体字。这是因为 strong 元素位于 li 元素内。</strong></li>

id选择器 #id
类选择器 .class
属性选择器 [title]/[title=属性名]
后代选择器 空格
子元素选择器 >
兄弟选择器 +

属性选择器

[attribute]	用于选取带有指定属性的元素。
[attribute=value]	用于选取带有指定属性和值的元素。
[attribute~=value]	用于选取属性值中包含指定词汇的元素。
[attribute|=value]	用于选取带有以指定值开头的属性值的元素,该值必须是整个单词。
[attribute^=value]	匹配属性值以指定值开头的每个元素。
[attribute$=value]	匹配属性值以指定值结尾的每个元素。
[attribute*=value]	匹配属性值中包含指定值的每个元素。
~ 指定词 | 以什么开头必须完整 ^以指定值开头 $以指定值结尾 *包含

伪类

属性	描述	CSS
:active	向被激活的元素添加样式。	
:focus	向拥有键盘输入焦点的元素添加样式。	
:hover	当鼠标悬浮在元素上方时,向元素添加样式。	
:link	向未被访问的链接添加样式。	
:visited	向已被访问的链接添加样式。	
:first-child	向元素的第一个子元素添加样式。	
:lang	向带有指定 lang 属性的元素添加样式。

伪元素

:first-letter	向文本的第一个字母添加特殊样式。	
:first-line	向文本的首行添加特殊样式。	
:before	在元素之前添加内容。	
:after	在元素之后添加内容。 

CSS3中新增的伪元素必须使用两个冒号::

伪类与伪元素的特性及其区别: 伪类本质上是为了弥补常规CSS选择器的不足,以便获取到更多信息; 伪元素本质上是创建了一个有内容的虚拟容器; CSS3中伪类和伪元素的语法不同; 可以同时使用多个伪类,而只能同时使用一个伪元素;

CSS易忘易错点

块元素指的是占据全部可用宽度的元素,并且在其前后都会换行。

cursor 鼠标指针样式

visibility	设置元素是否可见或不可见。
opacity:0.4; 透明         filter:alpha(opacity=40); /* 针对 IE8 以及更早的版本的透明 */
text-indent: 5em   缩进
attachment:fixed 防止滚动
word-spacing 文字间距 
letter-spacing 字符间距
text-transform 文字大小写none、uppercase、lowercase、capitalize
text-decoration  文字线none、underline、overline、line-through、blink
white-space 控制空格和换行

属性	描述
color	设置文本颜色
direction	设置文本方向。
line-height	设置行高。
letter-spacing	设置字符间距。
text-align	对齐元素中的文本。
text-decoration	向文本添加修饰。
text-indent	缩进元素中文本的首行。
text-shadow	设置文本阴影。CSS2 包含该属性,但是 CSS2.1 没有保留该

属性。
text-transform	控制元素中的字母。
unicode-bidi	设置文本方向。
white-space	设置元素中空白的处理方式。
word-spacing	设置字间距。

属性	描述
font	简写属性。作用是把所有针对字体的属性设置在一个声明中。
font-family	设置字体系列。
font-size	设置字体的尺寸。
font-size-adjust	当首选字体不可用时,对替换字体进行智能缩放。(

CSS2.1 已删除该属性。)
font-stretch	对字体进行水平拉伸。(CSS2.1 已删除该属性。)
font-style	设置字体风格。
font-variant	以小型大写字体或者正常字体显示文本。
font-weight	设置字体的粗细。

a:link - 普通的、未被访问的链接
a:visited - 用户已访问的链接
a:hover - 鼠标指针位于链接的上方
a:active - 链接被点击的时刻

CSS 列表属性(list)
属性	描述
list-style	简写属性。用于把所有用于列表的属性设置于一个声明中。
list-style-image	将图象设置为列表项标志。
list-style-position	设置列表中列表项标志的位置。
list-style-type	设置列表项标志的类型。

CSS Table 属性
属性	描述
border-collapse	设置是否把表格边框合并为单一的边框。
border-spacing	设置分隔单元格边框的距离。
caption-side	设置表格标题的位置。
empty-cells	设置是否显示表格中的空单元格。
table-layout	设置显示单元、行和列的算法。

轮廓(outline)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突

出元素的作用。

CSS outline 属性规定元素轮廓的样式、颜色和宽度。

属性	描述	CSS
outline	在一个声明中设置所有的轮廓属性。	
outline-color	设置轮廓的颜色。
outline-style	设置轮廓的样式。	
outline-width	设置轮廓的宽度。

CSS重难点

只有垂直的外边距才会合并,

**只有普通文档流中块框的垂直外边距才会发生外边距合并。行内框、浮动框或绝 对定位之间的外边距不会合并 **

相对定位保留位置
绝对定位不保留脱离文档流
float 不占空间

媒体查询@media规则

媒介类型	描述
all	用于所有的媒介设备。
aural	用于语音和音频合成器。
braille	用于盲人用点字法触觉回馈设备。
embossed	用于分页的盲人用点字法打印机。
handheld	用于小的手持的设备。
print	用于打印机。
projection	用于方案展示,比如幻灯片。
screen	用于电脑显示器。
tty	用于使用固定密度字母栅格的媒介,比如电传打字机和终端。
tv	用于电视机类型的设备。

border-image	设置所有 border-image-* 属性的简写属性。	
border-radius	设置所有四个 border-*-radius 属性的简写属性。	
box-shadow	向方框添加一个或多个阴影。
属性	描述	CSS
background-clip	规定背景的绘制区域。	3
background-origin	规定背景图片的定位区域。	3
background-size	规定背景图片的尺寸。

word-wrap:break-word;

属性	描述	CSS
hanging-punctuation	规定标点字符是否位于线框之外。	
punctuation-trim	规定是否对标点字符进行修剪。	
text-align-last	设置如何对齐最后一行或紧挨着强制换行符之前的行。	
text-emphasis	向元素的文本应用重点标记以及重点标记的前景色。	
text-justify	规定当 text-align 设置为 "justify" 时所使用的对齐方法
text-outline	规定文本的轮廓。	
text-overflow	规定当文本溢出包含元素时发生的事情。	
text-shadow	向文本添加阴影。	
text-wrap	规定文本的换行规则。	
word-break	规定非中日韩文本的换行规则。	
word-wrap	允许对长的不可分割的单词进行分割并换行到下一行。

 Transform 方法
函数	描述
matrix(n,n,n,n,n,n)	定义 2D 转换,使用六个值的矩阵。
translate(x,y)	定义 2D 转换,沿着 X 和 Y 轴移动元素。
translateX(n)	定义 2D 转换,沿着 X 轴移动元素。
translateY(n)	定义 2D 转换,沿着 Y 轴移动元素。
scale(x,y)	定义 2D 缩放转换,改变元素的宽度和高度。
scaleX(n)	定义 2D 缩放转换,改变元素的宽度。
scaleY(n)	定义 2D 缩放转换,改变元素的高度。
rotate(angle)	定义 2D 旋转,在参数中规定角度。
skew(x-angle,y-angle)	定义 2D 倾斜转换,沿着 X 和 Y 轴。
skewX(angle)	定义 2D 倾斜转换,沿着 X 轴。
skewY(angle)	定义 2D 倾斜转换,沿着 Y 轴。

函数	描述
matrix3d(n,n,n,n,n,n,
n,n,n,n,n,n,n,n,n,n)	定义 3D 转换,使用 16 个值的 4x4 矩阵。
translate3d(x,y,z)	定义 3D 转化。
translateX(x)	定义 3D 转化,仅使用用于 X 轴的值。
translateY(y)	定义 3D 转化,仅使用用于 Y 轴的值。
translateZ(z)	定义 3D 转化,仅使用用于 Z 轴的值。
scale3d(x,y,z)	定义 3D 缩放转换。
scaleX(x)	定义 3D 缩放转换,通过给定一个 X 轴的值。
scaleY(y)	定义 3D 缩放转换,通过给定一个 Y 轴的值。
scaleZ(z)	定义 3D 缩放转换,通过给定一个 Z 轴的值。
rotate3d(x,y,z,angle)	定义 3D 旋转。
rotateX(angle)	定义沿 X 轴的 3D 旋转。
rotateY(angle)	定义沿 Y 轴的 3D 旋转。
rotateZ(angle)	定义沿 Z 轴的 3D 旋转。
perspective(n)	定义 3D 转换元素的透视视图。

过渡

属性	描述	CSS
transition	简写属性,用于在一个属性中设置四个过渡属性。	
transition: width 1s linear 2s;

动画

div{
 animation: myfirst 5s linear 2s infinite alternate;
}

@keyframes myfirst
{
0%   {background:red; left:0px; top:0px;}
100% {background:red; left:150px; top:150px;}

多列属性

属性	描述	CSS
column-count	规定元素应该被分隔的列数。	3
column-fill	规定如何填充列。	3
column-gap	规定列之间的间隔。	3
column-rule	设置所有 column-rule-* 属性的简写属性。	3
column-rule-color	规定列之间规则的颜色。	3
column-rule-style	规定列之间规则的样式。	3
column-rule-width	规定列之间规则的宽度。	3
column-span	规定元素应该横跨的列数。	3
column-width	规定列的宽度。	3
columns	规定设置 column-widthcolumn-count 的简写属性。

box-sizing:border-box;

新的用户界面属性
下面的表格列出了所有的转换属性:

属性	描述	CSS
appearance	允许您将元素设置为标准用户界面元素的外观	3
box-sizing	允许您以确切的方式定义适应某个区域的具体内容。	
icon	为创作者提供使用图标化等价物来设置元素样式的能力。	
nav-down	规定在使用 arrow-down 导航键时向何处导航。
nav-index	设置元素的 tab 键控制次序。	
nav-left	规定在使用 arrow-left 导航键时向何处导航。	
nav-right	规定在使用 arrow-right 导航键时向何处导航。	
nav-up	规定在使用 arrow-up 导航键时向何处导航。	
outline-offset	对轮廓进行偏移,并在超出边框边缘的位置绘制轮廓。	
resize	规定是否可由用户对元素的尺寸进行调整。	

css单位

%	百分比
in	英寸
cm	厘米
mm	毫米
em	
1em 等于当前的字体尺寸。

2em 等于当前字体尺寸的两倍。

例如,如果某元素以 12pt 显示,那么 2em24pt。

在 CSS 中,em 是非常有用的单位,因为它可以自动适应用户所使用的字体。

ex	一个 ex 是一个字体的 x-height。 (x-height 通常是字体尺寸的一半。)
pt	磅 (1 pt 等于 1/72 英寸)
pc	12 点活字 (1 pc 等于 12 点)
px	像素 (计算机屏幕上的一个点)