CSS入门到进阶知识总结(一)

简介: CSS入门到进阶知识总结

CSS 是层叠样式表 ( Cascading Style Sheets ) 的简称.

CSS 是也是一种标记语言,CSS 主要用于设置 HTML 页面中的文本内容(字体、大小、对齐方式等)、图片的外形(宽高、边框样式、边距等)以及版面的布局和外观显示样式。


一、CSS样式的使用


1.三种样式


1. 内联样式
   * 在标签内使用style属性指定css代码
   * 如:<div style="color:red;">hello css</div>
2. 内部样式
  * 在head标签内,定义style标签,style标签的标签体内容就是css代码
  * 如:
    <style>
          div{
              color:blue;
          }
      </style>
    <div>hello css</div>
3. 外部样式
  1. 定义css资源文件。
  2. 在head标签内,定义link标签,引入外部的资源文件
  * 如:
    * a.css文件:
      div{
          color:green;
      }
    <link rel="stylesheet" href="css/a.css">
    <div>hello css</div>
    <div>hello css</div>
* 注意:
  * 1,2,3种方式 css作用范围越来越大
  * 1方式不常用,后期常用2,3
  * 3种格式可以写为:
    <style>
          @import "css/a.css";
      </style>


二、选择器分类

选择器分为基础选择器和复合选择器两个大类

1. 基础选择器

基础选择器又包括:标签选择器、类选择器、id 选择器和通配符选择器

1.标签选择器

语法:


标签名{
  属性1: 属性值1;
  属性2: 属性值2;
  属性3: 属性值3;
  ...
}
  • 优点
    能快速为页面中同类型的标签统一设置样式。
  • 缺点
    不能设计差异化样式,只能选择全部的当前标签。

2. 类选择器

如果想要差异化选择不同的标签,单独选一个或者某几个标签,可以使用类选择器。

语法:


.类名 {
  属性1: 属性值1;
  ...
}


注:我们可以给一个标签指定多个类名,从而达到更多的选择目的。 这些类名都可以选出这个标签.

如:


<div class="red font20">亚瑟</div>


多类名应用场景:


(1) 可以把一些标签元素相同的样式(共同的部分)放到一个类里面.

(2) 这些标签都可以调用这个公共的类,然后再调用自己独有的类.

(3) 从而节省CSS代码,统一修改也非常方便


3. id 选择器


id 选择器可以为标有特定 id 的 HTML 元素指定特定的样式。

HTML 元素以 id 属性来设置 id 选择器,CSS 中 id 选择器以“#" 来定义。

语法:

#id名 {
  属性1: 属性值1;
  ...
}


注意:id 属性只能在每个 HTML 文档中出现一次。


id 选择器和类选择器的区别

① 类选择器(class)好比人的名字,一个人可以有多个名字,同时一个名字也可以被多个人使用。

② id 选择器好比人的身份证号码,全中国是唯一的,不得重复。

③ id 选择器和类选择器最大的不同在于使用次数上。

④ 类选择器在修改样式中用的最多,id 选择器一般用于页面唯一性的元素上,经常和 JavaScript 搭配使用。


4. 通配符选择器

在 CSS 中,通配符选择器使用“*”定义,它表示选取页面中所有元素(标签)。

语法:


* {
  属性1: 属性值1;
  ...
}


注:

  1. 通配符选择器不需要调用, 自动就给所有的元素使用样式
  2. 特殊情况才使用,如清除所有的元素标签的内外边距


 * {
  margin: 0;
  padding: 0;
}


基础选择器总结


20210304102932288.jpg


2. 复合选择器

  • 复合选择器可以更准确、更高效的选择目标元素(标签)
  • 复合选择器是由两个或多个基础选择器,通过不同的方式组合而成的
    常用的复合选择器包括:后代选择器、子选择器、并集选择器、伪类选择器等等

1. 后代选择器 (☆)

语法:


元素1 元素2 {
    样式声明
    }


表示选择元素 1 里面的所有元素 2 (后代元素)。

注意:

  • 元素1 和 元素2 中间用空格隔开
  • 元素1 是父级,元素2 是子级,最终选择的是元素2
  • 元素2 可以是儿子,也可以是孙子等,只要是元素1 的后代即可
  • 元素1 和 元素2 可以是任意基础选择器

2. 子代选择器

语法:


元素1 > 元素2 { 样式声明 }


表示选择元素1 里面的所有直接后代(子元素) 元素2。


元素1 和 元素2 中间用 大于号 隔开

元素1 是父级,元素2 是子级,最终选择的是元素2

元素2 必须是亲儿子,其孙子、重孙之类都不归他管. 你也可以叫他 亲儿子选择器


3. 并集选择器


并集选择器可以选择多组标签, 同时为他们定义相同的样式。通常用于集体声明.

语法:


元素1,元素2 { 样式声明 }


表示选择元素1 和 元素2。

注:


元素1 和 元素2 中间用逗号隔开

逗号可以理解为和的意思

并集选择器通常用于集体声


4. 伪类选择器


伪类选择器用于向某些选择器添加特殊的效果,比如给链接添加特殊效果,或选择第1个,第n个元素。

伪类选择器书写最大的特点是用冒号(:)表示,比如 :hover 、 :first-child 。

如:①连接伪类选择器:链接伪类选择器link,:visited,:hover,:active。


/* :hover 是链接伪类选择器 鼠标经过 */
a:hover {
color: red; /* 鼠标经过的时候,由原来的 灰色 变成了红色 */
}


②:focus 伪类选择器

:focus 伪类选择器用于选取获得焦点的表单元素。

焦点就是光标,一般情况 类表单元素才能获取,因此这个选择器也主要针对于表单元素来说.

如:


input:focus {
  background-color:yellow;
}


复合选择器总结

20210304113259899.jpg


三、CSS属性

1. 字体属性

     font-size:字体大小
     font-family:字体
     font-weight:  粗细 nromal(默认值,不加粗的,400)/bold(加粗的,700)/ 100-900  
     font-style:字体样式  italic:倾斜, normal:正常

字体复合属性

body {
  font: font-style font-weight font-size/line-height font-family;
}


  • 使用 font 属性时,必须按上面语法格式中的顺序书写,不能更换顺序,并且各个属性间以空格隔开
  • 不需要设置的属性可以省略(取默认值),但必须保留 font-size 和 font-family 属性,否则 font 属性将不起作用


2. 文本属性


  color:文本颜色2
    属性值:RGB,十六进制,英文颜色
  text-align:置元素内文本内容的水平对齐方式。
    属性值:left,right,center
  text-decoration :规定添加到文本的修饰。可以给文本添加下划线、删除线、上划线等。
    属性值:none  默认,没有装饰线; underline: 下划线; overline: 上划线;  line-through: 删除线.
  text-indent : 用来指定文本的第一行的缩进,通常是将段落的首行缩进。
  line-height:用于设置行间的距离(行高)。可以控制文字行与行之间的距离.


注:

  1. text-indent的使用
//使用px
div {
  text-indent: 10px;
}
//使用em  通过设置该属性,所有元素的第一行都可以缩进一个给定的长度,甚至该长度可以是负值
p {
  text-indent: 2em;
}
//em 是一个相对单位,就是当前元素(font-size) 1 个文字的大小, 如果当前元素没有设置大小,则会按照父元
素的 1 个文字大小。
  1. line-height 属性用于设置行间的距离(行高)。可以控制文字行与行之间的距离.


p {
  line-height: 26px;
}


图解:

20210304110802581.jpg


3. 背景样式


background-color:颜色值;  默认为transparent
background-image : none | url (url)
background-repeat: repeat | no-repeat | repeat-x | repeat-y 
  背景平铺:在纵向和横向平铺,不平铺,在横向上平铺,在纵向上平铺.
background-position: x y;
  参数代表的意思是:x 坐标和 y 坐标。 可以使用 方位名词(top/center/bottom/left/right) 或者 精确单位(像素/百分数)
background-attachment : scroll | fixed
  背景图像是否固定或者随着页面的其余部分滚动。
背景色复合写法:
background: transparent url(image.jpg) repeat-y fixed top ;
      背景颜色 背景图片地址 背景平铺 背景图像滚动 背景图片位置;
background: rgba(0, 0, 0, 0.3); 背景颜色半透明
  * 最后一个参数是 alpha 透明度,取值范围在 0~1之间
  * 我们习惯把 0.3 的 0 省略掉,写为 background: rgba(0, 0, 0, .3);
  * 注意:背景半透明是指盒子背景半透明,盒子里面的内容不受影响


注意:


页面元素既可以添加背景颜色也可以添加背景图片,只不过背景图片会压住背景颜色.


四、CSS的元素显示模式


元素显示模式就是元素(标签)以什么方式进行显示,比如<‘div’>自己占一行,比如一行可以放多个 span。

HTML 元素一般分为块元素和行内元素两种类型。


1. 块状元素

常见的块元素有<h1>~<h6>、<p>、<div>、<ul>、<ol>、<li>等,其中 <div> 标签是最典型的块元素。

特点:

① 比较霸道,自己独占一行。

② 高度,宽度、外边距以及内边距都可以控制。

③ 宽度默认是容器(父级宽度)的100%。

④ 是一个容器及盒子,里面可以放行内或者块级元素。

⑤ 高度由子元素撑开

注意:


 1. 文字类的元素内不能使用块级元素
 2. <p> 标签主要用于存放文字,因此 <p> 里面不能放块级元素,特别是不能放<div>
 3. 同理, <h1>~<h6>等都是文字类块级标签,里面也不能放其他块级元素


2. 行内元素


常见的行内元素有 <a>、<strong>、<b>、<em>、<i>、<del>、<s>、<ins>、<u>、<span>等.
其中<span> 标签是最典型的行内元素。有的地方也将行内元素称为内联元素。


行内元素的特点:


① 相邻行内元素在一行上,一行可以显示多个。

② 高、宽直接设置是无效的。

③ 默认宽度就是它本身内容的宽度。

④ 行内元素只能容纳文本或其他行内元素。

注意:

链接里面不能再放链接

特殊情况链接 <‘a’> 里面可以放块级元素,但是给 <‘a’> 转换一下块级模式最安全

行内元素是否可以设置padding和margin?

1.inline元素设置width,height无效

2.inline元素的padding和margin可以设置.但padding垂直方向上padding-top,padding-bottom会合并;margin垂直方向上无效;

综上incline元素水平方向上的padding和margin有效.


3. 行内块元素


在行内元素中有几个特殊的标签 —— <img />、<input />、<td>,它们同时具有块元素和行内元素的特点。有些资料称


行内块元素的特点:

  • ① 和相邻行内元素(行内块)在一行上,但是他们之间会有空白缝隙。一行可以显示多个(行内元素特点)。
  • ② 默认宽度就是它本身内容的宽度(行内元素特点)。
  • ③ 高度,行高、外边距以及内边距都可以控制(块级元素特点)。


4. 元素显示模式总结


20210304122829849.jpg

注意:

  1. 特殊:p元素内不能放div元素
  2. 特殊:a元素里面可以放块状元素
  3. text-align:center仅对行内元素或行内块元素有效.但对p也有效.

学习元素显示模式的主要目的就是分清它们各自的特点,当我们网页布局的时候,在合适的地方用合适的标签元素

5. 元素的显示模式转换

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

6. 一个妙用—单行文字垂直居中

CSS 没有给我们提供文字垂直居中的代码. 这里我们可以使用一个小技巧来实现.

解决方案: 让文字的行高等于盒子的高度 就可以让文字在当前盒子内垂直居中

2021030412431077.jpg

简单理解: 行高的上空隙和下空隙把文字挤到中间了. 是如果行高小于盒子高度,文字会偏上,如果行高大于盒子高度,则文字偏下



相关文章
|
14天前
|
前端开发 JavaScript 开发者
CSS进阶-过渡与动画的事件监听
【6月更文挑战第16天】**CSS过渡和动画事件增强交互性,但监听与控制需谨慎。了解`transitionend`用于CSS过渡结束时的响应,避免过度使用JavaScript检测变化。示例代码展示如何绑定`transitionend`事件并在结束后执行操作。对于CSS动画,理解`animationstart`, `animationiteration`, `animationend`事件的生命周期至关重要,确保在动画结束后进行适当的清理。通过这些技巧,优化用户体验并提高代码效率。**
|
13天前
|
前端开发 JavaScript UED
CSS进阶 - CSS性能优化
【6月更文挑战第17天】**CSS性能优化关乎美观与速度。减少无用和重复样式,简化选择器,避免频繁重绘与回流,预加载关键CSS,以及模块化代码,能提升加载速度和用户体验。通过代码审查、工具辅助、选择器优化、使用transform和opacity、CSS预加载、以及文件拆分和模块化,开发者可应对复杂网页的性能挑战。**
|
13天前
|
前端开发 JavaScript 开发者
CSS进阶 - CSS Modules与预处理器简介
【6月更文挑战第17天】前端开发中,CSS Modules和预处理器(如Sass、Less)解决了大规模项目中CSS的管理难题,提升代码复用和维护性。CSS Modules提供局部作用域的类名,避免全局冲突,而预处理器扩展CSS功能,使代码更像编程语言。常见问题包括命名冲突和过度嵌套,可通过自动哈希、少嵌套、合理变量规划来解决。结合两者使用,遵循模块化和适度预处理原则,集成到构建工具中,能优化开发流程。这些技术是现代前端不可或缺的工具。
|
13天前
|
编解码 前端开发 UED
CSS进阶 - 响应式设计与媒体查询
【6月更文挑战第17天】响应式设计通过媒体查询适应不同设备,确保网页在桌面、平板、手机上提供优化体验。媒体查询是CSS核心技术,允许根据设备特性应用样式。常见问题包括忽视视口设置、硬编码断点和过度依赖查询。解决办法涉及设置正确的视口元标签、基于内容的断点和模块化设计。通过移动优先策略和灵活的断点管理,可创建高效、易维护的响应式网站。
|
2月前
|
前端开发
CSS进阶
CSS进阶内容
24 2
|
17天前
|
前端开发 JavaScript
CSS进阶-CSS选择器高级:伪类与伪元素
【6月更文挑战第13天】本文探讨了CSS伪类与伪元素的核心概念,包括伪类表示元素状态,伪元素创造抽象内容。常见问题涉及二者区别、冒号使用、顺序优先级及`content`属性。实践技巧涵盖`:not()`选择器、`:hover`与子元素伪类结合及自定义形状。通过代码示例展示了高亮悬停行、添加图标、首行样式和链接颜色的应用。理解并熟练运用伪类和伪元素可提升CSS设计效率和灵活性。
CSS进阶-CSS选择器高级:伪类与伪元素
|
14天前
|
前端开发 开发者 容器
CSS进阶-Grid布局高级应用
【6月更文挑战第16天】**CSS Grid布局是CSS3的强大力量,用于复杂二维布局。然而,隐式网格、未命名Grid线和缺少响应式设计是常见问题。解决方法包括显式定义网格结构、命名Grid线和结合媒体查询实现响应式。高级技巧涉及自适应列宽、复杂区域布局和元素层叠对齐。代码示例展示了响应式Grid的用法。掌握这些能提升布局效率和设计灵活性。**
|
14天前
|
前端开发 开发者 容器
CSS进阶-Flexbox高级布局技巧
【6月更文挑战第16天】Flexbox是CSS3的布局模块,简化响应式设计和复杂多列布局。文章探讨了Flex容器与项目属性的区分、垂直居中、防止元素溢出等常见问题及解决方案。此外,还分享了等宽不同高列、圣杯布局和自适应间距等高级技巧。通过示例展示了如何创建垂直居中布局,强调实践和理解核心概念是掌握Flexbox的关键。
|
15天前
|
前端开发 开发者 异构计算
CSS进阶-CSS动画关键帧
【6月更文挑战第15天】CSS的`@keyframes`创建细腻动画,定义样式变化阶段以增强网页互动性。通过`animation`属性应用动画,如`fadeIn`示例。常见问题包括动画结束状态、卡顿和浏览器兼容性,解决办法涉及优化关键帧、使用硬件加速和添加前缀。进阶技巧包括多步骤动画和控制播放状态。例如,背景色渐变动画展示了颜色随时间变化的效果。学习和实践关键帧动画,提升Web开发技能。
|
15天前
|
前端开发 JavaScript UED
CSS进阶-3D变换与透视效果
【6月更文挑战第15天】CSS3的3D变换和透视效果增强了网页的深度感。通过`rotateX/Y/Z`旋转和`translateZ`移动,结合`perspective`属性可创建3D空间。`perspective`定义观察者与Z轴的距离,影响元素的缩放感。常见问题包括过度失真和元素遮挡顺序,可通过调整`perspective`值和使用`z-index`解决。进阶技巧涉及层叠上下文理解和3D卡片翻转效果,通过实践与探索,设计师能更好地利用这些工具创新用户体验。