css入门教程
前言:CSS 用于定义网页的样式,包括针对不同设备和屏幕尺寸的设计和布局。
css基础语法
CSS 规则集(rule-set)由选择器和声明块组成,如:
1 | h1 { |
- 选择器指向您需要设置样式的 HTML 元素。
- 声明块包含一条或多条用分号分隔的声明。多条 CSS 声明用分号分隔,声明块用花括号括起来。
- 每条声明都包含一个 CSS 属性名称和一个值,以冒号分隔。
css选择器
CSS 选择器用于“查找”(或选取)要设置样式的 HTML 元素。
我们可以将 CSS 选择器分为五类:
- 简单选择器(根据名称、id、类来选取元素)
- 组合器选择器(根据它们之间的特定关系来选取元素)
- 伪类选择器(根据特定状态选取元素)
- 伪元素选择器(选取元素的一部分并设置其样式)
- 属性选择器(根据属性或属性值来选取元素)
CSS元素选择器
元素选择器根据HTML元素名称来选择 HTML 元素。
1 | p { |
CSS id选择器
id 选择器使用 HTML 元素的 id 属性来选择特定元素。
元素的 id 在页面中是唯一的,因此 id 选择器用于选择一个唯一的元素!
要选择具有特定 id 的元素,请写一个井号(#),后跟该元素的 id。
1 | #para1 { /* 这条 CSS 规则将应用于 id="para1" 的 HTML 元素:*/ |
id 名称不能以数字开头。
CSS 类选择器
类选择器选择有特定 class 属性的 HTML 元素。
如需选择拥有特定 class 的元素,请写一个句点(.)字符,后面跟类名。
1 | .center { /*在此例中,所有带有 class="center" 的 HTML 元素将为红色且居中对齐:*/ |
- 一个HTML 元素可以引用多个类。
- 类名不能以数字开头
CSS 通用选择器
通用选择器(*)选择页面上的所有的 HTML 元素。
1 | * { /*下面的 CSS 规则会影响页面上的每个 HTML 元素:*/ |
CSS 分组选择器
分组选择器选取所有具有相同样式定义的 HTML 元素。
分组选择器是使用,分隔的多个选择器,这些选择器是一个组,拥有同样的样式定义
1 | /* 分组前 */ |
对选择器进行分组,可以最大程度上缩减代码量,实现代码复用
简单CSS选择器归纳
| 选择器 | 举例 | 描述 |
|---|---|---|
| element | p | 选取所有 <p> 元素。 |
| .class | .intro | 选取所有 class=“intro” 的元素。 |
| #id | #firstname | 选取 id=“firstname” 的那个元素。 |
| * | * | 选取所有元素。 |
| element,element,… | div, p | 选取所有 <div> 元素和所有 <p> 元素。 |
分组选择器使用,分隔,使用空格隔开的不是分组选择器
css引入
当浏览器读到样式表时,它将根据样式表中的信息来格式化 HTML 文档。
在HTML文档中,有三种插入样式表的方法:
- 外部 CSS
- 内部 CSS
- 行内 CSS
外部css
通过使用外部样式表,您只需修改一个文件即可改变整个网站的外观!
外部样式在 HTML 页面 <head> 部分内的 <link> 元素中进行定义,每张 HTML 页面必须在 head 部分的 <link> 元素内包含对外部样式表文件的引用。如:
1 |
|
外部样式表可以在任何文本编辑器中编写,并且必须以 .css 扩展名保存。
外部 .css 文件不应包含任何 HTML 标签。
mystyle.css
1 | body { |
内部css
如果一张 HTML 页面拥有唯一的样式,那么可以使用内部样式表。
内部样式在 HTML 页面的 <head> 部分内的 <style> 元素中进行定义,如:
1 |
|
行内css
行内样式(也称内联样式)可用于为单个元素应用唯一的样式。
行内样式在相关元素的 “style” 属性中定义,style 属性可包含任何 CSS 属性,如:
1 |
|
总的来说,外部css可作用与整个网站,内部css仅针对某一特定HTML页面,行内css针对某一HTML元素。
在实际开发中,我们最好不要大量地使用行内css样式,这将使页面结构和样式糅杂在一起,失去了css本身的意义。
多个样式表
我们有这么多定义和引入css样式的方式,如果他们都为同一元素指定了样式,会使用那个呢?
如果在不同样式表中为同一选择器(元素)定义了一些属性,则将使用最后读取的样式表中的值。如:
1 | <head> |
补充:行内样式具有最高优先级,并且将覆盖外部和内部样式以及浏览器默认样式。
css注释
- html注释
<!-- --> - css注释
/* */
注释用于解释代码,浏览器会忽略注释。
1 |
|
css颜色
通过css属性background-color、color、border,我们可以设置背景色、文本颜色、边框颜色
css背景颜色
1 |
|
css文本颜色
1 | <h1 style="color:Tomato;">China</h1> |
css边框颜色
1 | <h1 style="border:2px solid Tomato;">Hello World</h1> |
指定颜色可以使用预定义的颜色名称,也可以使用RGB、HEX、HSL、RGBA、HSLA 值,如:
1 |
|
css rgb颜色
在 CSS 中,可以使用下面的公式将颜色指定为 RGB 值:
rgb(red, green, blue)
- 每个参数 (red、green 以及 blue) 定义了 0 到 255 之间的颜色强度。
- 要显示黑色,请将所有颜色参数设置为 0,如下所示:rgb(0, 0, 0)。
- 要显示白色,请将所有颜色参数设置为 255,如下所示:rgb(255, 255, 255)。
- 通过使用相等的红绿蓝色值,您会得到不同程度的灰色: rgb(180, 180, 180)
RGBA 颜色值是具有 alpha 通道的 RGB 颜色值的扩展,它指定了颜色的不透明度。语法:
rgba(red, green, blue, alpha)
- alpha 参数是介于 0.0(完全透明)和 1.0(完全不透明)之间的数字。
- 透明是指没有颜色,而不是白色
css hex颜色
在 CSS 中,可以使用以下格式的十六进制值指定颜色:
#rrggbb
- rr(红色)、gg(绿色)和 bb(蓝色)是介于 00 和 ff 之间的十六进制值(与十进制 0-255 相同)。
- #ff0000 显示为红色,因为红色设置为最大值(ff),其他设置为最小值(00)。
- 通过对红色,绿色和蓝色使用相等的值,您将获得不同程度的灰色,如: #787878 #b4b4b4
css hsl颜色
在 CSS 中,可以使用色相、饱和度和明度(HSL)来指定颜色:
hsla(hue, saturation, lightness)
- 色相(hue)是色轮上从 0 到 360 的度数。0 是红色,120 是绿色,240 是蓝色。
- 饱和度(saturation)可以描述为颜色的强度,100% 是纯色;50% 是 50% 灰色,但是您仍然可以看到颜色;0% 是完全灰色,您无法再看到颜色。
- 亮度(lightness)指颜色的明暗程度,0% 表示不亮(黑色),50% 表示 50% 亮(既不暗也不亮),100% 表示全明(白)。
- 通常通过将色调和饱和度设置为 0 来定义灰色阴影,并将亮度从 0% 到 100% 进行调整可以得到更深/更浅的阴影:hsl(0, 0%, 47%) hsl(0, 0%, 71%)
HSLA 颜色值是带有 Alpha 通道的 HSL 颜色值的扩展,它指定了颜色的不透明度。HSLA 颜色值指定为:
hsla(hue, saturation, lightness, alpha)
- alpha 参数是介于 0.0(完全透明)和 1.0(完全不透明)之间的数字
原来所有颜色都可以是红绿蓝三色的组合结果🤔,rgb颜色和hex颜色使用三色组合值,hsl使用单一颜色+饱和度+亮度确定一种颜色
css中,opacity属性可以指定元素的不透明度/透明度。取值范围为0.0(透明)-1.0(完全不透明)
当使用 opacity 属性为元素背景添加透明度时,其所有子元素也会变为透明。这可能会使完全透明的元素内的文本难以阅读。如果您不希望对子元素应用不透明度,例如上面的例子,请使用 RGBA 颜色值。
css背景
CSS 常见背景属性有
background-color
background-color属性指定元素的背景色。举例:
1 | body { /*设置页面背景色为海蓝*/ |
您可以为任何 HTML 元素设置背景颜色:
1 | h1 { |
background-image
background-image 属性指定用作元素背景的图像
,默认情况下,图像会重复,以覆盖整个元素。
1 | body { |
background-repeat
默认情况下,background-image 属性在水平和垂直方向上都重复图像。我们可以设置background-repeat属性值为repeat-x、repeat-y、no-repeat来使背景图像水平重复、垂直重复、不重复(只显示一次背景图像)
1 | body { |
background-position
background-position 属性用于指定背景图像的位置。
1 | body { /*把背景图像放在右上角,不重复显示*/ |
background-attachment
background-attachment 属性指定背景图像是应该scroll滚动还是fixed固定的(不会随页面的其余部分一起滚动)
1 | /* 指定应该固定背景图像,当鼠标向下滚动时,背景图片一直在原地 */ |
我们也可以使用简写版的背景属性background,在一个属性中指定所有背景属性。如:
css背景简写
1 | body { |
在使用简写属性时,属性值必须按特定次序添加(可以缺失某个值):
- background-color
- background-image
- background-repeat
- background-attachment
- background-position
所有css背景属性如下表
| 属性 | 描述 |
|---|---|
| background | 在一条声明中设置所有背景属性的简写属性。 |
| background-attachment | 设置背景图像是固定的还是与页面的其余部分一起滚动。 |
| background-clip | 规定背景的绘制区域。 |
| background-color | 设置元素的背景色。 |
| background-image | 设置元素的背景图像。 |
| background-origin | 规定在何处放置背景图像。 |
| background-position | 设置背景图像的开始位置。 |
| background-repeat | 设置背景图像是否及如何重复。 |
| background-size | 规定背景图像的尺寸。 |
css边框
CSS border 属性允许您指定元素边框的样式、宽度和颜色。
当border-style、border-width 、border-color设置多个属性值时,规则:
- 4个值(上,右,下,左)
- 3个值(上,右左,下)
- 2个值(上下,左右)
- 1个值(上右下左)
css边框样式
border-style 属性指定要显示的边框类型:
| 属性值 | 描述 |
|---|---|
solid | 定义实线边框 |
dotted | 定义点线边框 |
dashed | 定义虚线边框 |
double | 定义双线边框 |
none | 定义无边框 |
hidden | 定义隐藏边框 |
| groove | 定义 3D 坡口边框。效果取决于 border |
| ridge | 定义 3D 脊线边框。效果取决于 border |
| inset | 定义 3D inset 边框。效果取决于 border |
| outset | 定义 3D outset 边框。效果取决于 border |
border-style举例:
1 |
|
除非设置了 border-style 属性,否则其他 CSS 边框属性都不会有任何作用!
css边框宽度
border-width 属性指定四个边框的宽度。
- 可以将宽度设置为特定大小(以 px、pt、cm、em 计),也可以使用以下三个预定义值之一:thin(细边框)、medium(中等粗细边框) 或 thick(粗边框)
- border-width 属性可接受一到四个值(依次对应上、右、下、左边框)
border-width举例
1 |
|
border-width 属性单独使用时不起作用。请首先使用 border-style 属性设置样式。
css边框颜色
border-color 属性用于设置四个边框的颜色。支持使用颜色名,rgb,hex,hsl等
- 如果未设置 border-color,则它将继承元素本来的颜色。
- border-color 属性可接受一到四个值(依次对应上、右、下、左边框)
border-color举例
1 |
|
border-color 属性单独使用时不起作用。请首先使用 border-style 属性设置样式。
与设置背景一样,边框也支持属性的简写,可以在一个属性中指定所有单独的边框属性。
css边框简写
border 属性是以下各个边框属性的简写属性:
- border-width
- border-style(必需)
- border-color
border简写举例
1 | p { |
css也支持使用圆角边框:
css圆角边框
border-radius 属性用于向元素添加圆角边框,圆角边框通常使用px单位,数字越大,边框就越圆
border-radius举例:
1 | p.normal { |
css外边距
CSS margin 属性用于在任何定义的边框之外,为元素周围创建空间。
所有外边距属性都可以设置以下值:
- auto 浏览器来计算外边距
- length 以 px、pt、cm 等单位指定外边距
- % 指定以包含元素宽度的百分比计的外边距
- inherit 指定应从父元素继承外边距
你可以为元素每一侧单独设置外边距:margin-top(上),margin-right(右),margin-bottom(下),margin-left(左)。也可以使用外边距简写属性margin指定所有外边距属性。
tips: margin允许负值
1 | .div { |
margin auto
您可以将 margin 属性设置为 auto,以使元素在其容器中水平居中。该元素将占据指定的宽度,并且剩余空间将在左右边界之间平均分配。
tips:使用margin:auto;使元素在容器中水平居中的前提是指定了元素宽度
1 | div { |
margin inherit
您可以将 margin 属性设置为 inherit,以使元素继承父元素的外边距
1 | <!DOCTYPE html> |
css外边距合并
外边距合并指的是,当两个垂直外边距相遇时,它们将形成一个外边距。合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者。如:
1 | /* 两个 div 之间的外边距是 20px,而不是 30px(20px + 10px) */ |
只有普通文档流中块框的垂直外边距才会发生外边距合并。行内框、浮动框或绝对定位之间的外边距不会合并。
css内边距
CSS padding 属性用于在任何定义的边界内的元素内容周围生成空间。
通过 CSS,您可以完全控制内边距(填充)。有一些属性可以为元素的每一侧(上、右、下和左侧)设置内边距。
所有内边距属性都可以设置以下值:
- length 以 px、pt、cm 等单位指定内边距
- % 指定以包含元素宽度的百分比计的内边距
- inherit 指定应从父元素继承内边距
- padding不允许负值!
- 元素的内外边距是透明的,并不会遮挡后面的任何元素!
- 内边距也支持属性简写,用法和外边距相同
css box-sizing
css宽度固定
CSS width 属性指定元素内容区域的宽度。内容区域是元素(盒模型)的内边距、边框和外边距内的部分。
如果元素拥有指定的宽度,则添加到该元素的内边距会添加到元素的总宽度中。这通常是不希望的结果。
如果你希望为元素添加padding后不会改变其宽度,进而影响到布局,可以令box-sizing:border-box;
使用 box-sizing 属性可以使元素保持其宽度。如果增加内边距,则可用的内容空间会减少,而不会增大元素的宽度
1 | /* <div> 元素的实际宽度将是 350px(300px + 左内边距 25px + 右内边距 25px) */ |
css 宽和高
height 和 width 属性分别用于设置元素的高度和宽度。
height 和 width 属性不包括内边距、边框或外边距。它设置的是元素内边距、边框以及外边距“内”的区域的高度或宽度。
元素实际宽度=width+2padding+2border+2*margin
height 和 width 属性可设置如下值:
- auto 默认。浏览器计算高度和宽度。
- length 以 px、cm 等定义高度/宽度。
- % 以包含块的百分比定义高度/宽度。
- initial 将高度/宽度设置为默认值。
- inherit 从其父值继承高度/宽度。
max-width
max-width 属性用于设置元素的最大宽度。
若一个div的宽度为500px,当浏览器窗口小于元素的宽度(500px)时,浏览器会将水平滚动条添加到页面,元素也会显示不完全。
在这种情况下,使用 max-width 能够改善浏览器对小窗口的处理。当浏览器窗口小于元素最大宽度时,元素会随着浏览器窗口的缩小而缩小(始终占满整个浏览器宽度),浏览器也不会为元素添加滚动条
1 | div { |
max-width 属性的值将覆盖 width(宽度)
css框(盒)模型
所有 HTML 元素都可以视为方框。在 CSS 中,在谈论设计和布局时,会使用术语“盒模型”或“框模型”。
CSS 框模型实质上是一个包围每个 HTML 元素的框。它包括:外边距、边框、内边距以及实际的内容。
在 CSS 中,width 和 height 指的是内容区域的宽度和高度。增加内边距、边框和外边距不会影响内容区域的尺寸,但是会增加元素框的总尺寸。
- 背景应用于由内容、内边距、边框组成的区域
- 内边距、边框和外边距可以应用于一个元素的所有边,也可以应用于单独的边。
- 外边距可以是负值,而且在很多情况下都要使用负值的外边距。
1 | div { |
元素的实际宽高
元素的总宽度应该这样计算:
元素总宽度 = 宽度 + 左内边距 + 右内边距 + 左边框 + 右边框 + 左外边距 + 右外边距
元素的总高度应该这样计算:
元素总高度 = 高度 + 上内边距 + 下内边距 + 上边框 + 下边框 + 上外边距 + 下外边距
css轮廓
轮廓是在元素周围绘制的一条线,在边框之外,以凸显元素。
轮廓与边框不同!轮廓是在元素边框之外绘制的,并且可能与其他内容重叠。同样,轮廓也不是元素尺寸的一部分;元素的总宽度和高度不受轮廓线宽度的影响
| 属性 | 描述 |
|---|---|
| outline-style | 定义轮廓样式,如solid,dashed,double等 |
| outline-color | 定义轮廓颜色 |
| outline-width | 定义轮廓宽度 |
| outline-offset | 轮廓偏移,指定轮廓与元素的边缘或边框之间的空间 |
| outline | 轮廓简写 |
除非设置了 outline-style 属性,否则其他轮廓属性都不会有任何作用!
outline-width
outline-width 属性指定轮廓的宽度,并可设置如下值之一:
- thin(通常为 1px)
- medium(通常为 3px)
- thick (通常为 5px)
- 特定尺寸(以 px、pt、cm、em 计)
outline-color
outline-color 属性用于设置轮廓的颜色。
可以通过以下方式设置颜色:
- name - 指定颜色名,比如 “red”
- HEX - 指定十六进制值,比如 “#ff0000”
- RGB - 指定 RGB 值,比如 “rgb(255,0,0)”
- HSL - 指定 HSL 值,比如 “hsl(0, 100%, 50%)”
- invert - 执行颜色反转(无论颜色背景如何,轮廓都是可见的)
outline-offset
outline-offset 属性在元素的轮廓与边框之间添加空间。元素及其轮廓之间的空间是透明的。
1 | /* 本段落在边框边缘外 15 像素处有一条轮廓线 */ |
outline
outline 属性是用于设置以下各个轮廓属性的简写属性:
- outline-width
- outline-style(必需)
- outline-color
1 |
|
css文本属性
| 属性 | 描述 |
|---|---|
| color | 设置文本颜色。 |
| direction | 指定文本的方向 / 书写方向。 |
| letter-spacing | 设置字符间距。 |
| line-height | 设置行高。 |
| text-align | 指定文本的水平对齐方式。 |
| text-decoration | 指定添加到文本的装饰效果。 |
| text-indent | 指定文本块中首行的缩进。 |
| text-shadow | 指定添加到文本的阴影效果。 |
| text-transform | 控制文本的大小写。 |
| text-overflow | 指定应如何向用户示意未显示的溢出内容。 |
| unicode-bidi | 与 direction 属性一起使用,设置或返回是否应重写文本来支持同一文档中的多种语言。 |
| vertical-align | 指定文本的垂直对齐方式。 |
| white-space | 指定如何处理元素内的空白。 |
| word-spacing | 设置单词间距。 |
css文本颜色
color 属性用于设置文本的颜色。颜色由以下值指定:
- 颜色名 - 比如 “red”
- 十六进制值 - 比如 “#ff0000”
- RGB 值 - 比如 “rgb(255,0,0)”
页面的默认文本颜色可在 body 选择器中定义
css文本对齐
text-align 属性用于设置文本的水平对齐方式。
文本可以left左对齐或right右对齐,center居中对齐。
当 text-align 属性设置为 “justify” 后,将拉伸每一行,以使每一行具有相等的宽度,并且左右边距是直的
1 | h1 { |
css文字装饰
text-decoration 属性用于设置或删除文本装饰。text-decoration: none; 通常用于从链接上删除下划线
1 | /* 1. 带上划线的文本 */ |
css文本转换
text-transform 属性用于指定文本中的大写和小写字母。
它可用于将所有内容转换为大写或小写字母,或将每个单词的首字母大写:
1 | /* 1. 英文字母全部大写 */ |
css文字缩进
text-indent 属性用于指定文本第一行的缩进长度大小(首行缩进)
1 | p { |
css字母间距
letter-spacing 属性用于指定文本中字符之间的间距。(包括中文,即单词间的距离)
它让段落中的文本更紧凑或更宽松
1 | h1 { |
css行高
line-height 属性用于指定行之间的间距(行高)
浏览器默认行高为110%-120%
1 | p.small { |
css字间距
word-spacing 属性用于指定文本中单词之间的间距。
1 | h1 { |
css段落内部不换行
white-space 属性指定元素内部空白的处理方式。
1 | /* 禁用元素内的文本换行 */ |
css文本阴影
text-shadow 属性为文本添加阴影。
最简单的用法是只指定水平阴影(2px)和垂直阴影(2px),也可以设置阴影的颜色,模糊效果
1 | /* text-shadow: 水平阴影大小 垂直阴影大小 模糊半径大小 阴影的颜色 */ |
css字体
css通用字体
在 CSS 中,有五个通用字体族:
| 属性 | 描述 |
|---|---|
| 衬线字体(Serif) | 在每个字母的边缘都有一个小的笔触。它们营造出一种形式感和优雅感。 |
| 无衬线字体(Sans-serif) | 字体线条简洁(没有小笔画)。它们营造出现代而简约的外观。 |
| 等宽字体(Monospace) | 这里所有字母都有相同的固定宽度。它们创造出机械式的外观。 |
| 草书字体(Cursive) | 模仿了人类的笔迹。 |
| 幻想字体(Fantasy) | 是装饰性/俏皮的字体 |
在计算机屏幕上,无衬线字体被认为比衬线字体更易于阅读。
font-family
在 CSS 中,我们使用 font-family 属性规定文本的字体。font-family 属性应包含多个字体名称作为“后备”系统,以确保浏览器/操作系统之间的最大兼容性。请以您需要的字体开始,并以通用系列结束
1 | .p1 { |
font-style
font-style 属性主要用于指定斜体文本。
1 | /* 正常文本 */ |
font-weight
font-weight 属性指定字体的粗细
1 | p.normal { |
font-size
font-size 属性设置文本的大小。
如果您没有指定字体大小,则普通文本(如段落)的默认大小为 16px(16px = 1em)
1em 等于当前字体大小,浏览器中的默认文本大小为 16px。因此,默认大小 1em 为 16px
为了允许用户调整文本大小(在浏览器菜单中),许多开发人员使用 em 而不是像素
如果您使用了像素,则仍然可以使用缩放工具来调整整个页面的大小
1 | /* 1. 以像素设置字体大小 */ |
在网页设计中,能够管理文本大小很重要。但是,不应过度调整字体大小来使段落看起来像标题,或是使标题看起来像段落。
请始终使用正确的 HTML 标签,例如<h1>-<h6>用于标题,而<p>仅用于段落。
vw响应式字体大小
可以使用 vw 单位设置文本大小,它的意思是“视口宽度”(“viewport width”)。
视口(Viewport)是浏览器窗口的大小。 1vw = 视口宽度的 1%。如果视口为 50 厘米宽,则 1vw 为 0.5 厘米。
设置响应式字体大小后,字体大小将随浏览器窗口大小动态改变
1 | <h1 style="font-size:1vw">Hello World</h1> |
font简写属性
为了缩短代码,也可以在一个属性中指定所有单个字体属性。
font 属性是以下属性的简写属性:font-style,font-variant,font-weight,font-size/line-height,font-family。其中font-size 和 font-family 的值是必需的。如果缺少其他值之一,则会使用其默认值。
css图标
向 HTML 页面添加图标的最简单方法是使用图标库,比如Font Awesome。
可以将指定的图标类的名称添加到任何行内元素(如 <i> 或 <span>)。
使用图标库:1.引入样式库 2.添加图标对应类名
下面的图标库中的所有图标都是可缩放矢量,可以使用 CSS进行自定义(大小、颜色、阴影等)。
Font Awesome图标
如需使用 Font Awesome 图标,请访问 fontawesome,登录并获取js代码添加到 HTML 页面的 <head> 部分:
1 |
|
Bootstrap 图标
如需使用 Bootstrap glyphicons,请在 HTML 页面的 <head> 部分内添加css引用:
1 |
|
Google 图标
如需使用 Google 图标,请在HTML页面的 <head> 部分中引入css样式
1 |
|
css链接
css链接按钮
通过 CSS,可以用不同的方式设置链接的样式。链接可以使用任何 CSS 属性(例如 color、font-family、background 等)来设置样式。
此外,可以根据链接处于什么状态来设置链接的不同样式:
| 链接状态 | 描述 |
|---|---|
| a:link | 正常的,未访问的链接 |
| a:visited | 用户访问过的链接 |
| a:hover | 用户将鼠标悬停在链接上时 |
| a:active | 链接被点击时 |
在CSS 定义中,a:hover 必须位于a:link和 a:visited之后才能生效。a:active 必须位于 a:hover 之后才能生效。
1 | /* 未被访问的链接 */ |
我们可以设置css样式把链接变成一个链接按钮:
1 | /* text-decoration 属性主要用于从链接中删除下划线: */ |
css光标样式
cursor 属性指定要显示的光标类型。
1 |
|
css表格
| 表格属性 | 描述 |
|---|---|
| border | 简写属性。在一条声明中设置所有边框属性。 |
| border-collapse | 规定是否应折叠表格边框。 |
| border-spacing | 规定相邻单元格之间的边框的距离。 |
| caption-side | 规定表格标题的位置。 |
| empty-cells | 规定是否在表格中的空白单元格上显示边框和背景。 |
| table-layout | 设置用于表格的布局算法。 |
css表格
1 | /* 全宽表格 占满整个屏幕 */ |
css布局*
display
display 属性是用于控制布局的最重要的 CSS 属性
display 属性规定是否/如何显示元素。
每个 HTML 元素都有一个默认的 display 值,具体取决于它的元素类型。大多数元素的默认 display 值为 block 或 inline
块级元素(block element)和行内元素(inline element)
- 块级元素总是从新行开始,并占据可用的全部宽度(尽可能向左和向右伸展)
- 内联元素不从新行开始,仅占用所需的宽度。
| 元素 | 所属类别 |
|---|---|
<div> | 块级元素 |
<h1>-<h6> | 块级元素 |
<p> | 块级元素 |
<form> | 块级元素 |
<header> | 块级元素 |
<footer> | 块级元素 |
<section> | 块级元素 |
<span> | 行内元素 |
<a> | 行内元素 |
<img> | 行内元素 |
如前所述,每个元素都有一个默认 display 值。但是,您可以覆盖它。将行内元素更改为块元素,反之亦然。
1 | /* 为实现水平导航菜单而生成行内的 <li> 元素 */ |
设置元素的 display 属性仅会更改元素的显示方式,而不会更改元素的种类。因此,带有 display: block; 的行内元素不允许在其中包含其他块元素。
关于隐藏元素:display指定应如何显示元素,
visibility指定元素是否应该可见。 %}
- display: none; 元素将被隐藏,并且页面将显示为好像该元素不在其中
- visibility:hidden; 元素将被隐藏,但仍会影响布局,该元素仍将占用与之前相同的空间
width、max-width、margin: auto;
块级元素始终占用可用的全部宽度(尽可能向左和向右伸展)。
设置块级元素的 width 将防止其延伸到其容器的边缘。然后,您可以将外边距设置为margin: auto;,以将元素在其容器中水平居中。元素将占用指定的宽度,剩余空间将在两个外边距之间平均分配
width和max-width的区别:
- width 当浏览器窗口小于元素的宽度时,浏览器会将水平滚动条添加到页面。(元素始终保持一定宽度,不灵活,会导致元素显示不完全)
- max-width 当浏览器窗口小于元素的宽度时,元素宽度会动态地相应减少(等于窗口大小),元素中的内容自动适配(比如换行)。这种方式非常有利于网站在小型设备上使用,很灵活
1 | /* 将浏览器窗口拖动到小于500px的宽度,查看效果*/ |
position + left|right|top|bottom
position属性规定应用于元素的定位方法的类型(static、relative、fixed、absolute 或 sticky)。
元素其实是使用 top、bottom、left 和 right 属性定位的。但是,除非首先设置了 position 属性,否则这些属性将不起作用。根据不同的 position 值,它们的工作方式也不同。
| position | 描述 |
|---|---|
| position: static; | HTML元素默认的定位方式,始终根据页面的正常流进行定位。静态定位的元素不受 top、bottom、left 和 right 属性的影响。 |
| position: relative; | 元素相对于其 |
| position: fixed; | 元素相对于 |
| position: absolute; | 元素相对于 |
| position: sticky; | 粘性元素根据滚动位置在相对(relative)和固定(fixed)之间切换。起先它会被相对定位,直到在视口中遇到给定的偏移位置后“粘贴”在适当的位置 |
tips: top、bottom、left、right将根据定位方法分别设置定位框元素顶部、底部、左部、右部的距离(外边距)
tips: 绝对定位时“被定位的”元素是其位置除 static 以外的任何元素。
1 | /* 设置 position: static; 的元素不会以任何特殊方式定位;它是始终根据页面的正常流进行定位 */ |
我们经常需要居中文本在图像中央
1 |
|
z-index
在对元素进行定位时,它们可以与其他元素重叠。
z-index 属性指定元素的堆栈顺序(哪个元素应放置在其他元素的前面或后面)。之所以叫z-index,是因为z指屏幕到用户的距离
具有较高堆叠顺序的元素始终位于具有较低堆叠顺序的元素之前。如果两个定位的元素重叠而未指定 z-index,则位于 HTML 代码中最后的元素将显示在顶部。
1 | /* 图像在文本下方显示 */ |
overflow
overflow指定如果内容溢出元素框时的处理方式
overflow-x 和 overflow-y 属性规定是仅水平还是垂直地(或同时)更改内容的溢出
| overflow | 描述 |
|---|---|
| visible | (默认)溢出内容不会被剪裁,而是在元素框外渲染 |
| hidden | 溢出被剪裁,其余内容将不可见 |
| scroll | 溢出被剪裁,同时添加滚动条以查看其余内容(即使没有溢出也会添加滚动条) |
| auto | 与scroll类似,但仅在必要时添加滚动条 |
overflow 属性仅适用于具有指定高度的块元素!
1 | div { |
float
CSS float 属性规定元素如何浮动。
CSS clear 属性规定哪些元素可以在清除的元素旁边以及在哪一侧浮动。
| float | 描述 |
|---|---|
| left | 元素浮动到其容器的左侧 |
| right | 元素浮动在其容器的右侧 |
| none | 元素不会浮动(将显示在文本中刚出现的位置)。默认值。 |
| inherit | 元素继承其父级的 float 值 |
1 |
|
clear
clear 属性用于清除元素周围的浮动元素(指定哪些元素可以浮动于被清除元素的旁边以及哪一侧)
| clear | 描述 |
|---|---|
| none | 允许元素两侧都有浮动元素(默认) |
| left | 左侧不允许浮动元素 |
| right | 右侧不允许浮动元素 |
| both | 左侧或右侧均不允许浮动元素 |
| inherit | 元素继承其父级的 clear 值 |
1 |
|
- 本文标题:css入门教程
- 本文作者:Sunday
- 创建时间:2023-01-09 17:56:40
- 本文链接:https://sblog.wyun521.top/posts/e26fc5f5.html
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!