CSS简介

css规则由选择器和n条声明组成。选择器是用于指定css样式的html标签,花括号内是对该对象设置的具体样式。声明由属性和属性值组成,属性和属性值以键值对的形式出现,之间用英文“:”分开,键值对之间用英文“;”区分。
网页布局过程:准备好相关网页元素(盒子)→利用CSS设置好盒子样式、位置→往盒子里装内容

CSS引入方式

按照CSS样式书写的位置,CSS样式表可分为行内样式表、内部样式表、外部样式表。

样式表 解释 特点
内部样式表 写到html页面内部,单独放在style标签内,style标签一般放在head标签内 控制一个页面
行内样式表 在元素标签内部的style属性中设定CSS样式 适用于简单修改样式
外部样式表 将样式单独写到CSS文件中(不需要style标签了),之后把CSS文件引入到html页面中使用 控制多个页面
> 行内样式表  <div style="color: red;font-size: 12px;" >公猪是猪</div>

外部样式表

在这里插入图片描述

CSS三大特性

CSS三大特性:层叠性、继承性、优先级。

层叠性

相同选择器设置相同的样式,其中一个样式会被覆盖掉,层叠性解决这一问题。
原则:样式冲突遵循就近原则,执行离结构近的样式(后来者居上)。

继承性

定义:子标签会继承父标签的某些样式(text-、font-、line-以及color属性)

案例(红框展现层叠性,蓝线体现标签的继承性,子标签继承父标签的行高模式,行高随文字大小变化而变化):
在这里插入图片描述

优先级
  • note:
    • 选择器相同,执行层叠性;选择器不同,根据选择器权重执行,复合选择器会权重叠加
    • 权重由四位数字组成,不会进位
    • 等级判断从左到右,某位相同看后一位数值
    • 如果子元素自己显式设置了 color,就会覆盖继承的值,即使父元素用了 !important
选择器 选择器权重
继承 或者 * 0,0,0,0
元素选择器 0,0,0,1
类选择器,伪类选择器 0,0,1,0
ID选择器 0,1,0,0
行内样式 style=“” 1,0,0,0
!important 重要的 ∞ 无穷大

在这里插入图片描述

CSS属性

CSS字体属性

CSS Fonts(字体)属性用于定义字体系列、大小、粗细和文字样式(如斜体)。

  • 字体系列tips:
    • 各种字体之间使用英文逗号隔开
    • 一般情况下,有空格隔开的多个单词组成的字体加引号

在这里插入图片描述

  • 字体复合属性
    • 属性必须按照以下顺序,且各属性之间以空格隔开
    • 不需要的属性可以省略(取默认值),但必须保留font-size和font-family属性,否则font属性不起作用
      body {
      font: font-style font-weight font-dize/line-height font-family;
      }

CSS文本属性

CSS Text(文本)属性可定义文本的外观,比如文本的颜色、对齐文本、装饰文本、文本缩进、行间距、文字阴影等。

在这里插入图片描述
文字阴影: text-shadow: 5px 5px 6px blue;

描述
h-shadow 必需,水平阴影的位置,允许负值。
v-shadow 必需,垂直阴影的位置,允许负值。
blur 可选,模糊的距离。
color 可选,阴影的颜色,参阅 CSS 颜色值。

CSS背景属性

背景属性可以设置背景颜色、背景图片、背景平铺、背景图像固定、背景图片位置等。

背景颜色:background-color,默认透明transparent
background: rgba(0,0,0,.3);最后一个参数是alpha透明度,范围区间0~1,个位零可省略;

背景图片:background-image,默认五背景图none,url指定背景图像

背景平铺:background-repeat,repeat(默认)、no-repeat(不平铺)、repeat-x(横向平铺)、repeat-y(纵向平铺)

背景图像固定:
background-attachment:scroll |fixed,背景图像随对象内容滚动scroll 背景图像固定fixed

背景图片位置:

参数为方位名词:background-position: top center;
参数为精确单位:background-position: 20px 50px;
方位名词note:
1.方位名词: top、center、bottom、left、right
2.如果两个参数都为方位名词,前后顺序可调换;
3.只指定第一个方位名词,另一个值默认居中对齐;
精确单位note:
1.第一个参数为x坐标,第二个参数为y坐标;
2.只指定第一个数值,该数值为x坐标,另一个值默认居中对齐;
参数混用:
如果精确单位和方位名词混用,则第一个参数为x坐标,第二个参数为y坐标;

背景复合写法:
background: transparent url(image.jpg) repeat-y fixed top;

在这里插入图片描述

归纳总结:

属性 作用
background-color 背景颜色 预定义的颜色值/十六进制/RGB代码
background-image 背景图片 url(图片路径)
background-repeat 是否平铺 repeat/no-repeat/repeat-x/repeat-y
background-position 背景位置 length/position 分别是x 和 y坐标
background-attachment 背景附着 scroll (背景滚动) /fixed (背景固定)
背景简写 书写更简单 背景颜色 背景图片地址 背景平铺 背景滚动 背景位置;
背景色半透明 背景颜色半透明 background: rgba(0,0,0,0.3); 后面必须是 4个值

盒子模型

盒子模型的组成:边框border、内容content、内边距padding、外边距margin;
补充:盒子的圆角边框、盒子阴影

  • 边框

边框组成:宽度border-width、样式border-style、颜色border-color
简写:border: 5px solid red;(没有顺序)
边框分开写法:border-top: 1px solid red;(只设置上边框,其余同理)
表格的细线边框:

border-collapse属性控制浏览器绘制表格边框的方式。它控制相邻单元格的边框
border-collapse:collapse;(合并相邻边框)

在这里插入图片描述
在这里插入图片描述

  • 内边距

内边距:边框和内容之间的距离。
左右上下:padding-left、padding-right、padding-top、padding-bottom
组合写法:

padding:5px; 上下左右都是5px
padding:5px 10px; 上下5px 左右10px
padding:5px 10px 20px; 上5 左右10 下20
padding:5px 10px 20px 30px; 顺时针上右下左

问题:padding影响盒子实际大小。→解决方法:width/height减去多出的内边距大小;
注意:如果盒子本身没有指定width/height属性,padding不会撑开盒子;

  • 外边距

margin-left、margin-right、margin-top、margin-bottom,简写形式与padding一样。
利用外边距让盒子水平居中:div {width:960px;margin:0 auto;}
margin:0 auto;
等效于margin: auto;
等效于margin-left: auto;margin-right: auto;

外边距合并:
上下相邻盒子相遇,取上盒子的margin-bottom和下盒子的margin-top中较大的一方。
父子盒子,父元素和子元素都有上外边距,此时父元素会塌陷一定外边距值。→解决方法:为父元素定义上边框/内边距;为父元素添加overflow:hidden;

补充:行内元素或者行内块元素水平居中:在其父元素添加text-align:center

补充:
隐藏溢出内容:overflow:hidden;
清除内外边距:* {padding: 0; margin: 0; }

  • 圆角边框:参数可以为数值和百分比形式,正方形变圆,百分比换为50%或者把数值改为高度的一半,若为矩形,把数值改为高度的一半。

在这里插入图片描述

  • 盒子阴影:box-shadow: 10px 10px 10px -4px blue;
描述
h-shadow 必需,水平阴影的位置,允许负值。
v-shadow 必需,垂直阴影的位置,允许负值。
blur 可选,模糊距离。
spread 可选,阴影的尺寸。
color 可选,阴影的颜色,请参阅 CSS 颜色值。
inset 可选,将外部阴影 (outset) 改为内部阴影。

注意:默认外阴影(outset),但不可以写这个单词,否则阴影失效;盒子阴影不占空间,不会影响其他盒子排序;

CSS选择器

选择器(选择符)用于选择标签。分为基础选择器和复合选择器两类,基础选择器包括标签选择器、id选择器、类选择器、通配符选择器。

基础选择器

标签选择器

标签选择器是指用html标签作为选择器,按标签名称分类,为页面某一类标签指定统一的CSS样式。

在这里插入图片描述

类选择器

类选择器实现差异化选择不同标签。一个标签可以有多个类名,类名之间用空格隔开。使用英文“.”进行标识,后面紧跟类名,长类名或词组可以使用中横线来命名,尽量使用英文表示类名。

在这里插入图片描述

id选择器

id选择器和类选择器的区别:相当于人的身份证号和姓名的区别,一个元素的id选择器是唯一的,而类选择器可以重复多个。

在这里插入图片描述

通配符选择器

通配符选择器不需要调用,自动给所有元素使用样式;
在这里插入图片描述

基础选择器总结
选择器类型 作用 特点 使用情况 用法
标签选择器 选出所有相同的标签 不能差异化选择 较多 p { color: red; }
类选择器 选出1个或多个标签 可根据需求选择 非常多 .nav { color: red; }
id选择器 一次只能选择1个标签 每个HTML文档中ID唯一 一般搭配JS #nav {color: red;}
通配符选择器 选择所有标签 选择范围过大 特殊情况使用 * {color: red;}

复合选择器

复合选择器是由多个基础选择器由不同方式组成的,常用复合选择器包括后代选择器、子选择器、并集选择器、伪类选择器等。

后代选择器

后代选择器又称包含选择器,其用法是把外层标签写在前面。内层标签写在后面,中间用空格隔开。注意,内层标签可以是外层标签的儿子孙子,只要是后代即可。

.disorder a {
            color: rgb(10, 228, 64);
        }
子选择器

子选择器的外层标签和内层标签是父子关系,中间用>隔开。

 .disorder>li>a {
            text-decoration: underline;
        }
并集选择器

并集选择器可以选择多组标签,选择器之间用英文逗号隔开。

.disorder a,
        .order>li {
            font-style: italic;
        }
伪类选择器

伪类选择器用于向某些选择器添加特殊效果,比如给链接添加特殊效果。其中focus伪类选择器用于选取获取焦点(光标)的表单元素。注意,为确保生效,请按照link、visited、hover、active顺序声明。

在这里插入图片描述
在这里插入图片描述

总结
选择器 作用 特征 使用情况 隔开符号及用法
后代选择器 用来选择后代元素 可以是子孙后代 较多 符号是空格 .nav a
子代选择器 选择最近一级元素 只选亲儿子 较少 符号是大于 .nav>p
并集选择器 选择某些相同样式的元素 可以用于集体声明 较多 符号是逗号 .nav,.header
链接伪类选择器 选择不同状态的链接 跟链接相关 较多 重点记住 a{} 和 a:hover 实际开发的写法
focus选择器 选择获得光标的表单 跟表单相关 较少 input:focus 记住这个写法

CSS的元素显示模式

元素显示模式就是元素(标签)以什么方式显示,比如div单独占一行,比如一行可以放多个span。HTML元素一般分为块元素和行内元素两个类型。

块元素

常见块元素:h1~h6、p、div、ul、ol、li

块元素特点:

独占一行;
高height、宽width、外边距margin、内边距padding可控;
内可放行内或块级元素(特殊:文字类元素不能放块级元素,例如p);

行内元素

常见行内元素:a、strong、b、em、i、del、s、ins、u、span

行内元素特点:

一行可多个;
高宽设置无效,默认宽度为内容宽度;
只能容纳文本或者其他行内元素(特殊:链接内不能套链接,链接a内可以套块级元素);

行内块元素

常见行内块元素:img、input、td

行内块元素特点:

一行可多个;
默认宽度为内容宽度;
高height、宽width、外边距margin、内边距padding可控;

元素显示模式转换

转换为块元素:display:block;
转换为行内元素:display:inline;
转换为行内块元素:display:inline-block;

在这里插入图片描述

Chrome调试工具

打开Chrome,右键点击检查或者按F12进行调试。分为HTML结构和CSS样式,CSS样式可改动数值和查看颜色,黄色叹号提示表示样式属性书写错误。

缩放:ctrl+滚轮
复原浏览器大小:ctrl+0

Emmet语法

  • 快速生成HTML结构语法
    1.生成标签:输入标签名按tab键,比如输入div,按tab键,就可以生成 <div></div>。(补充:我发现按回车键也可以)
    2.生成多个相同标签:比如div*3可快速生成3个div。
    3.父子级关系的标签:>,比如ul > li。
    4.兄弟关系的标签:+,比如 div+p。
    5.生成带有类名或者id名字:直接写.demo或者#two,按tab键。
    6.生成的div类名是有顺序:用自增符号$。
    7.在生成的标签内部写内容:用{}表示。

混合用法案例:

.demo&*5
div{美羊羊回做饭}*5
div{$}*5

  • 快速生成CSS样式语法
    采用简写形式,比如w200,按tab键,生成width:200px;lh26,按tab键,生成line-height:26px。(补充:按回车键也可以)
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐