CSS学习笔记

CSS


HTML的局限性

  • 只关注内容的语义;样式简单不美观;样式书写繁琐
CSS
  • ==层叠样式表(Cascading Style Sheets)== / ==级联样式表==
  • 一种标记语言,可以美化HTML,简化页面布局;实现结构与样式分离
  • 用于设置文本内容、图片外形、版面布局和外观显示样式

CSS语法规范

  • CSS规则:==选择器 {一条或多条声明;}==
    • 选择器用于指定样式作用的标签
    • 属性:属性值;
  • CSS代码风格
    • 样式格式:==展开格式==
    • 样式命名:==一般小写==
    • 代码格式:选择器和括号间、属性冒号和属性值间保留空格
CSS基础选择器
  • 由==单个==选择器组成

  • 分类

    • 标签选择器
      • 用==HTML标签==名作选择器

        标签名 {
            属性1:属性值1;
            属性2:属性值2;
            属性3:属性值3;
        }
      • 优:能快速为页面内同类型元素设置统一样式

      • 缺:不能设计差异化样式

    • 类选择器
      • 自定义==类名==差异化部分标签

      • 样式“类名”定义,结构“.类名”调用

        .类名 {
            属性1:属性值1;
            属性2:属性值2;
            属性3:属性值3;
        }
      • 长名称或词组用 “-” 连接命名;不使用纯数字、中文命名;语义

      • ==类选择器——多类名==

        • 多类名用空格隔开,使元素分别具有多个类样式
        • 优:简化代码;逻辑清晰;修改方便
    • id选择器
      • 以==id属性==设置id选择器

      • 样式“id名”定义,结构“#id名”调用。==只能调用一次==(页面唯一性)

        #id名 {
            属性1:属性值1;
            属性2:属性值2;
            属性3:属性值3;
        }
    • 通配符选择器
      • ==*== 选取页面中所有元素标签

        * {
        	属性1:属性值1;
            属性2:属性值2;
            属性3:属性值3;
        }
      • 不需要调用,自动为所有元素设置样式

      • 特殊情况时使用

CSS字体属性

  • 用于定义字体系列、大小、粗细和文字样式

  • 属性 作用 说明
    font-size 字号 单位px
    font-family 字体
    font-weight 字体粗细 ==无单位;700加粗;400不加粗;==
    font-style 字体样式 italic倾斜
    font 样式连写 有序;字号、字体必需
  • color

    • 颜色
    • 取值:预设值;#十六进制;rgb(,,,)
  • text-align

    • 文本对齐
    • 取值:left;center;right
  • text-decoration

    • 装饰文本,为文本添加下划线、删除线、上划线
    • none;underline;overline;line-through
  • text-indent

    • 文本首行缩进
    • 单位:px像素;em文字大小
  • line-height

    • 行间距
    • 行间距包含==上间距、文本高度、下间距==
CSS引入方式
  • 内部样式表

    • ==嵌入式引入==

    • css写入html页面内部的<style>标签中,可控制整个页面样式

    • <style>标签理论上可放入html文档任意位置,一般放入<head>标签中

    • 代码结构清晰,但未实现结构与样式完全分离

  • 行内样式表

    • ==行内式引入==

    • 在元素标签内部的style属性中设定css样式

    • 适合于修改简单样式,控制当前标签,不推荐大量使用

  • 外部样式表

    • 样式单独写入css文件中。在html中使用<link>标签引入

      <link rel="stylesheet" href="css文件路径">
    • 可控制多个页面,需要引入

Emmet语法
  • 快速生成HTML结构语法

    • 生成标签 ==标签名+tab==

    • 多个相同标签 ==标签名 * n==

    • 嵌套级 ==父标签 > 子标签==

    • 并列级 ==前标签 + 后标签==

    • 生成指定类/id名标签 ==标签(默认).类/#id名==

    • 自增符 ==$==

    • 标签内部内容 =={}==

  • 快速生成CSS样式语法

    • 简写
CSS复合选择器
  • 基础选择器组合形成,可更高效选择目标元素

  • 分类

    • ==后代选择器== (包含选择器)

      • 选择父元素里的子元素

        元素1 元素2 {样式声明}
    • ==子选择器==(子元素选择器)

      • 仅选择某元素的最近一级子元素(所有直接后代)

        元素1>元素2 {样式声明}
    • ==并集选择器==

      • 选择多组标签同时定义相同样式。通常用于集体声明

        元素1,元素2 {样式声明}
    • ==伪类选择器==

      • 向某些选择器添加特殊效果

      • 用冒号表示

      • 常用伪类选择器

        • 链接伪类选择器
          a:link {} 		/* 未访问的链接  */
          a:visited {}	/* 已访问的链接  */
          a:hover {}		/* 鼠标悬停的链接  */
          a:active {}		/* 活动(鼠标按下未弹起)链接*/
          • 确保生效顺序:==LVHA==
          • <a>链接有默认样式,需要单独设置
          • 开发中常用a{}和a:hover{}样式设置
          • a:visited因为安全问题,在高版本的浏览器中,只有color属性才可以生效,也只是仅限于ie浏览器才有用,其他的浏览器会因为缓存的原因,导致a:visited的属性在网页载入之后就会生效
        • focus伪类选择器
          • 用于选取获得焦点的表单元素(多用于<input>)

            input:focus{}

CSS元素显示模式

  • 块元素
    • <h1>~<h6>、<p>、<div>、<ul>、<ol>、<li>
    • 特点
      • 独占一行
      • 宽高、内外边距可控
      • 宽度默认是容器(父级宽度)的100%
      • ==容器级块元素即盒子,内可放行内或块级元素==
      • ==文字类元素内不能放块级元素==
  • 行内元素(内联元素)
    • <a>、<strong>、<b>、<em>、<i>、<del>、<s>、<ins>、<u>、<span>
    • 特点
      • 非独占,相邻行内显示
      • 宽高直接设置无效
      • 默认宽度为本身宽度
      • ==行内元素只能容纳文本或其他行内元素==
      • ==链接里不能再放链接==
      • ==特殊情况<a>可放块级元素,将转换块级模式更安全==
  • 行内块元素
    • <img />、<input />、<td>
    • 同时具有块元素和行内元素的特点
    • 特点
      • 相邻行内元素(行内块)处于一行,中间有空隙 (行内元素特点)
      • 默认宽度为本身宽度 (行内元素特点)
      • 高度、行高、内外边距可控 (块级元素特点)

显示模式转换

  • 使一模式元素转换获得另一模式特性
    • e.g. 增加链接<a>的触发范围
  • ==转换为块元素:display: block==
  • ==转换为行内元素:display: inline==
  • ==转换为行内块元素:display: inline-block==
单行文字垂直居中:行高=盒子高度

CSS背景属性

==背景图片开发中常见于logo、装饰性小图片、超大背景图片、精灵图,易控制位置==

  • 背景色透明 background: rgba( , , , x)==CSS3新增,IE9+浏览器支持==

  • 背景颜色 background-color: color;

  • 背景图片 background-image: url();

  • 背景图片位置 background-position: x y;

    • 精确数值

      • 数值顺序严格
      • 只指定一个数值,第二个值默认居中
    • 方位名词

      • 两个方位名词顺序不影响
      • 只指定一个方位名词,第二个值默认居中
    • 混合使用

      • 顺序严格
  • 背景图像固定(背景附着) background-attachment

    • scroll 滚动
    • fixed 固定
  • 背景属性复合写法

    • 无严格顺序

    • 约定顺序

      background: 背景颜色 背景地址 背景平铺 背景滚动 背景位置;
CSS三大特性
  • 层叠性
    • 层叠即覆盖,解决样式冲突问题
  • 继承性
    • 子标签继承父标签部分样式。简化代码,降低CSS复杂性
  • 优先性
    • 选择器权重

      ==!important(∞)> 行内样式(1000)> ID选择器(100)>==

      ==类选择器\伪类选择器 (10)> 元素选择器(1)> 继承或*(0)==

    • 复合选择器权重叠加

盒子模型(Box Model)
  • 盒子模型即将HTML页面中的布局元素看作盒子/容器

  • 包括边框border、内容content、内边距padding、外边距margin

    • 边框 border: width,style,color; (无严格顺序)

    • 内边距 padding

      • padding: top-bottom-left-right; (1)

      • padding: top-bottom right-left; (2)

      • padding: top left-right bottom; (3)

      • padding: top right bottom left; (4)

        ==如果不指定宽\高,padding不会撑开盒子==

    • 外边距 margin

      • ==外边距应用:块级盒子水平居中==

        • 条件:盒子指定宽度;
        • 写法:左右设置 margin: auto;
      • ==行内元素或行内块元素水平居中==

        • 写法: 父元素设置 text-align: center;
      • 外边距合并
        • ==相邻块元素垂直外边距的合并==

          • 问题

            出现上下相邻的两个块元素(兄弟关系),若上元素有margin-bottom,下元素有margin-top。则垂直间距非二者之和而是取二者中较大值

          • 解决方案

            尽量只给一个盒子添加margin值

        • ==嵌套块元素垂直外边距的塌陷==

          • 问题

            对于两个嵌套关系(父子关系)的块元素,父元素有上边距同时子元素有上边距,此时父元素会塌陷较大的外边距值。

          • 解决方案

            • 为父元素定义透明边框
            • 为父元素定义上内边距
            • 为父元素添加overflow:hidden
            • ==浮动、固定、绝对定位的盒子不会有塌陷问题==
      • 清除内外边距
        * {
        	margin: 0;
        	padding: 0;
        }
      • ==行内元素为照顾兼容性,尽量只设置左右内外边距。若设置上下内外边距,要转换为块级和行内块元素。==

CSS3新增样式

  • 圆角边框

    • 原理:圆与边框交集形成圆角效果

      image-20240308165855711

      border-radius: length;	
      • 参数值为数值或百分比
      • 可分别设置四个圆角:左上角开始,顺时针
  • 盒子阴影

    • ==盒子阴影不占用空间,不影响其他盒子排列==

      box-shadow: h-shadow v-shadow blur spread color inset;
      描述
      h-shadow 必须。水平阴影位置,可负值
      v-shadow 必须。垂直阴影位置,可负值
      blur 可选。模糊距离
      spread 可选。阴影尺寸
      color 可选。阴影颜色
      inset 可选。外部阴影(outset)改为内部阴影
  • 文字阴影

    • text-shadow: h-shadow v-shadow blur color;
      
      
          | 值       | 描述                       |
          | -------- | -------------------------- |
          | h-shadow | 必须。水平阴影位置,可负值 |
          | v-shadow | 必须。垂直阴影位置,可负值 |
          | blur     | 可选。模糊距离             |
          | color    | 可选。阴影颜色             |
      
      ##### 浮动
      
      - ==网页布局的本质==——用CSS来摆放盒子
      
      - ==传统网页布局的三种方式==
      
        - 普通流(标准流/文档流)
      
          - **最基本的布局方式**
          - **标签按照规定好的默认方式。**如块级元素会独占一行,从上向下顺序排列。行内元素会按顺序,从左到右顺序排列,碰到父元素边缘则自动换行。
      
        - 浮动
      
          - **改变元素的默认排列方式**
      
          - 浮动最典型应用:可以让多个块级元素一行内排列显示
      
          - 网页布局第一准则:多个块级元素纵向排列用标准流,横向排列用浮动
      
          - float属性用于创建浮动框,将其移动到一边,直到左边缘或右边缘触及包含块或另一个浮动框的边缘
      
          - 语法
      
            ```css
            选择器 {float: 属性值;}
      | 属性值 | 描述 | | ------ | -------------- | | none | 不浮动(默认) | | left | 向左浮动 | | right | 向右浮动 | - ==浮动特性== 1. 浮动元素会脱离标准流(脱标),不再保留原先位置 2. 浮动元素一行内显示且元素顶部对齐,无间隙 3. 浮动元素具有行内块元素的特性。未设置宽度浮动后大小根据内容决定 ==浮动盒子只影响后面的标准流,不会影响前面的标准流== - ==清除浮动== - 父盒子高度不好确定,子盒子浮动不占有位置,影响后续排版。故需清除浮动元素造成的影响。
      选择器 {clear: 属性值;}
      | 属性值 | 描述 | | ------ | ------------ | | left | 清除左侧浮动 | | right | 清除右侧浮动 | | both | 清除两侧浮动 | - 清除浮动的策略:闭合浮动 - ==清除浮动方法==: | 方式 | 优点 | 缺点 | | --------------------- | ---------- | -------------------------- | | 额外标签法(隔墙法) | 通俗简单 | 添加无意义标签,结构化较差 | | 父级overflow: hidden; | 书写简单 | 溢出隐藏 | | 父级after伪元素 | 结构语义化 | 兼容性问题 | | 父级双伪元素 | 结构语义化 | 兼容性问题 | - ==隔墙法(额外标签法)== (W3C推荐) - 在浮动元素末尾添加一个空块级标签,设置浮动清除 - 优:简单 - 缺:无意义,结构化较差 - ==父级添加overflow属性== - 父元素添加overflow属性,设置属性值hidden/auto/scroll - 优:简单 - 缺:无法显示溢出部分 - ==父级添加after伪元素== - 原理同额外标签法 - 父元素clearfix类添加
      .clearfix:after {
          content: "";
          display: block;
          height: 0;
          clear: both;
          visibility: hidden;
      }
      /* IE6、7专有 */
      .clearfix {
          *zoom: 1;
      }
      - 优:未增加标签,结构简单 - 缺:照顾低版本浏览器 - 示例:百度、淘宝、网易 - ==父级添加双伪元素== - 双额外标签 - 父元素clearfix添加
      .clearfix:before,
      .clearfix:after {
          content: "";
          display: table;
      }
      .clearfix:after {
      	clear: both;
      }
      .clearfix {
          *zoom: 1;
      }
      - 优:结构简洁 - 缺:照顾低版本浏览器 - 示例:小米、腾讯
    • 定位

      • 定位 = 定位模式 + 边偏移

      • 定位特殊特性

        • ==与浮动相似,相当于inline-block==
        • ==行内元素+绝对/固定定位,可直接设置宽高==
        • ==块级元素+绝对/固定定位,不给宽高默认自适应内容大小==
        • ==浮动元素只压住标准流盒子,不会压住盒子里的文字/图片。浮动最初是为实现文字环绕效果==
        • ==绝对定位/固定定位会完全压住盒子内容==
      • 定位模式

        • 用于指定一个元素在文档中的定位方式

        • 通过CSS的position值设置

          定位模式 是否脱标 移动位置
          static 静态定位 不使用边偏移
          relative 相对定位 否(占有位置) 相对自身位置移动
          absolute 绝对定位 是(不占位置) 带有定位的父级
          fixed 固定定位 是(不占位置) 浏览器可视区
          sticky 粘性定位 否(占有位置) 浏览器可视区
        • 静态定位

          • 即无定位,默认定位方式
        • 相对定位

          • 以原位置为参照点,==原位置继续占有保留,不脱标==
        • 绝对定位

          • 以祖先元素为参照点。

          • 无祖先或==祖先无定位==,以浏览器(Document文档)为准

          • ==祖先元素有定位==,就近选择有定位祖先参照点

          • ==不占有原位置,脱标==

          • 子绝父相
          • 绝对定位 居中
            position: absolute;
            left: 50%;
            margin-left: -自身位置;
        • 固定定位

          • 以浏览器可视窗口为准

          • 与父元素无关,不随滚动条滚动

          • ==不占有原位置==

          • 固定定位 版心位置右边
            position: fixed;
            left: 50%;
            margin-left: 版心width / 2;
        • 粘性定位

          • 以浏览器可视窗口为参照移动元素(==固定定位特点==)
          • 占有原先位置(==相对定位特点==)
          • 必须添加top/bottom/left/right中一个才有效
          • 与页面滚动搭配使用。兼容性较差,IE不支持
      • 边偏移

        • 决定该元素的最终位置

          属性 描述
          top 顶端偏移量,相对于父元素上边线距离
          bottom 底部偏移量,相对于父元素下边线距离
          left 左侧偏移量,相对于父元素左边线距离
          right 右侧偏移量,相对于父元素右边线距离
      • 定位叠放次序 z-index

        • 控制盒子的前后顺序(z轴)处理盒子重叠的情况
        • 数值为整数,不加单位。默认auto,数值越大越靠前
        • 只有定位的盒子才有z-index属性
元素的显示与隐藏
  • ==display==
    • display: none; 隐藏不占有位置
    • display: block; 块级转换,显示
  • ==visibility==
    • visibility: visible; 隐藏且占有位置
    • visibility: hidden; 显示
  • ==overflow== 溢出
    • overflow: visible; 溢出显示
    • overflow: auto; 溢出在需要时滚动显示
    • overflow: hidden; 溢出隐藏
    • overflow: scroll; 强制滚动显示
常见网页布局
image-20240309110448433 image-20240309110544186 image-20240309110646752

CSS属性书写顺序

  1. 布局属性 display/position/float/clear/visibility/overflow
  2. 自身属性 width/height/margin/padding/border/background
  3. 文本属性 color/font/text-decoration/text-align/vertical-align/white-space/break-word
  4. 其他属性(CSS3) content/cursor/border-radius/box-shadow/text-shadow/background:linear-gradient

导航栏

  • 实际开发中,使用li+a代替直接使用链接a
    • li+a语义更清晰
    • 直接用a易被搜索引擎判别为关键字堆砌,进而影响网站排名
精灵图
  • 当网页中图像过多时,服务器频繁接收和发送请求图片,造成服务器请求压力过大,将大大降低页面的加载速度。为==有效减少服务器接收和发送请求的次数,提高页面的加载速度==,出现==CSS精灵技术(CSS Sprites)==
  • 精灵技术针对多个小背景图片,主要借助背景位置来实现——background-position,一般情况下精灵图都是负值(注意x、y坐标方向)
字体图标
  • 使用场景:显示网页中通用、常用的一些小图标。若用精灵图,图片文件较大,图片本身放大缩小会失真,图片制作完成后更换操作复制。
  • 字体图片==展示为图标,本质属于文字==
    • 轻量级:加载无需渲染,减少服务请求
    • 灵活性:按文字样式修改颜色、阴影、透明、旋转
    • 兼容性:几乎支持所有的浏览器
CSS三角
  • 不指定宽高为三角,指定宽高为梯形

    div {
        width: 0;
        height: 0;
        line-height: 0;		/* 兼容性 */
        font-size:0 ;		/* 兼容性 */
        border: 10px solid transparent;
        border-left-color: pink;
    }
用户界面样式
  • 鼠标样式 cursor

    • 设置或检索在对象上移动的鼠标指针采用何种预定义光标形状

      属性值 描述
      default 默认
      pointer 小手
      move 移动
      text 文本
      not-allowed 禁止
  • 表单轮廓 outline

    • 表单添加outline: 0;或outline: none;样式可去除默认蓝色边框
  • 防止表单文本域拖拽 resize

    • 文本域textarea添加resize: none;
    • (文本域标签域内无空白内容,可确保鼠标点击后定位非初始位置)

溢出文字省略号显示

  • 推荐后台人员处理溢出文本限制显示

  • 单行文本

    • ```css
      /* 1. 先强制一行内显示文本(默认normal 自动换行) /
      white-space: nowrap;
      /
      2. 超出部分隐藏 /
      overflow: hidden;
      /
      1. 文字用省略号替代溢出部分 */
      text-overflow: ellipsis;
      
      - 多行文本
      
        - 有较大兼容性问题,适合于WebKit浏览器(包括大部分移动端)
      
        - ```css
          overflow: hidden;
          text-overflow: ellipsis;
          /* 弹性伸缩盒子模型显示 */
          display: -webkit-box;
          /* 限制在一个块元素显示的文本行数 */
          -webkit-line-clamp: 2;
          /* 设置或检索伸缩盒子对象子元素的排列方式 */
          -webkit-box-orient: vertical;

常见布局技巧

  • margin负值运用:解决盒子重叠边框加粗问题

    • 每个盒子margin向左移动-1px,压住相邻盒子边框
    • 鼠标经过盒子,提高当前盒子层级即可完整显示边框(考虑相对定位或z-index)
  • 文字围绕元素浮动

    • 浮动最初即为实现文字围绕效果
  • 行内块运用

    • 有缝隙,设置宽高,父级text-align易设置居中
  • CSS初始化

    • 重设浏览器样式(CSS reset)

      /* 把我们所有标签的内外边距清零 */
      * {
          margin: 0;
          padding: 0
      }
      /* em 和 i 斜体的文字不倾斜 */
      em,
      i {
          font-style: normal
      }
      /* 去掉li 的小圆点 */
      li {
          list-style: none
      }
       
      img {
          /* border 0 照顾低版本浏览器 如果 图片外面包含了链接会有边框的问题 */
          border: 0;
          /* 取消图片底侧有空白缝隙的问题 */
          vertical-align: middle
      }
       
      button {
          /* 当我们鼠标经过button 按钮的时候,鼠标变成小手 */
          cursor: pointer
      }
       
      a {
          color: #666;
          text-decoration: none
      }
       
      a:hover {
          color: #c81623
      }
       
      button,
      input {
          /* "\5B8B\4F53" 就是宋体的意思 这样浏览器兼容性比较好 */
          font-family: Microsoft YaHei, Heiti SC, tahoma, arial, Hiragino Sans GB, "\5B8B\4F53", sans-serif
      }
       
      body {
          /* CSS3 抗锯齿形 让文字显示的更加清晰 */
          -webkit-font-smoothing: antialiased;
          background-color: #fff;
          font: 12px/1.5 Microsoft YaHei, Heiti SC, tahoma, arial, Hiragino Sans GB, "\5B8B\4F53", sans-serif;
          color: #666
      }
       
      .hide,
      .none {
          display: none
      }
      /* 清除浮动 */
      .clearfix:after {
          visibility: hidden;
          clear: both;
          display: block;
          content: ".";
          height: 0
      }
       
      .clearfix {
          *zoom: 1
      }
HTML5新特性

增加新标签、新表单、新表单属性等

兼容性问题(IE9+以上版本浏览器才支持)

  • HTML5新增语义化标签

    针对搜索引擎,可多次使用,IE9中需转换为块级元素

    • <header> 头部标签

    • <nav> 导航标签

    • <article> 内容标签

    • <section> 定义文档某个区域

    • <aside> 侧边栏标签

    • <footer> 尾部标签

  • HTML5新增多媒体标签

    方便在页面中嵌入音频和视频,不用使用flash和其他浏览器插件

    浏览器支持情况不同,chrome禁用自动播放(视频添加muted可静音播放,音频只可通过JavaScript处理)

    • <audio> 音频(mp3、wav、ogg)

      <audio src="文件地址" controls="controls"></audio>
    • <video> 视频(mp4、webm、ogg)

      <video src="文件地址" controls="controls"></video>
  • HTML5新增input类型

    属性值 说明
    input=”email” 邮箱
    input=”url” 链接
    input=”date” 日期
    input=”time” 时间
    input=”month”
    input=”week”
    input=”number” 数字
    input=”tel” 手机号
    input=”search” 搜索框
    input=”color” 颜色选择表单
  • HTML5新增表单属性

    属性 说明
    required required 必填非空
    placeholder 提示文本 提示信息
    autofocus autofocus 自动聚焦,页面加载完成聚焦到指定表单
    autocomplete off/on 历史(表单内,有name属性,已成功提交),默认打开
    multiple multiple 多选文件提交
CSS3新特性

兼容性问题,IE9+支持。移动端支持优于PC端。持续更新,应用广泛

  • CSS3新增选择器

    • 属性选择器

      • 类选择器、伪类选择器、属性选择器权重为10
      选择符 说明
      E[att] 选择具有att属性的E元素
      E[att=”val”] 选择具有att属性且值为val的E元素
      E[att^=”val”] 选择具有att属性且值以val开头的E元素
      E[att$=”val”] 选择具有att属性且值以val结尾的E元素
      E[att*=”val”] 选择具有att属性且值中含有val的E元素
    • 结构伪类选择器

      • nth-child把所有子元素排序(序号固定)后再选择和E匹配;nth-type先匹配类型E再把所有类型排序。n从0开始计算
      选择符 说明
      E:first-child 父元素中的第1个子元素E
      E:last-child 父元素中的最后1个子元素E
      E:nth-child(n) 父元素中的第n个子元素E.n可为数字、even/odd、公式(2n、n+5、-n+5…)
      E:first-of-type 指定类型E的第1个
      E:last-of-type 指定类型E的最后1个
      E:nth-of-type(n) 指定类型E的第n个
    • 伪元素选择器

    • 利用CSS创建新标签元素,而不需要HTML标签,从而简化HTML结构

    • 创建元素,属于行内元素,在文档中不可见,称为伪元素。必须有content属性。

    • 伪元素选择器和标签选择器一样,权重为1

    • 选择符 简介
      ::before 元素内部前面插入内容
      ::after 元素内部后面插入内容
    • 使用场景:

      • 伪元素字体图标
      • 伪元素遮罩效果
      • 伪元素清除浮动
  • CSS3盒子模型

    CSS3中可通过box-sizing(content-box / border-box)指定盒模型。使计算盒子大小方式发生改变。

    • box-sizing:content-box; 盒子大小为 width+padding+border(默认)
    • box-sizing:border-box; 盒子大小为 width
  • CSS3滤镜filter

    将模糊或颜色偏移等图形效果应用于元素。

    filter: 函数();
  • CSS3 calc函数

    在声明CSS属性值时执行一些计算。

  • CSS3过渡

    过渡(transition)可以在不使用Flash或JavaScript情况下,为元素样式变换添加效果

    transition: 过渡属性 花费时间 运动曲线 何时开始;
狭义的HTML5 CSS3

image-20240314155551291

广义的HTML5: HTML5 + CSS3 + JavaScript

网站TDK三大标签SEO优化

  • SEO(Search Engine Optimization)搜索引擎优化,利用搜索引擎规则对网站进行深度优化,从而帮助获取免费流量,提升网站排名和知名度。

  • TDK

    • title 网站标题
      • 具有不可替代性,搜索引擎了解网页入口和主题最佳判断点
      • 建议:网站名(产品名)-网站的介绍(尽量不超过30字)
    • descript 网站说明
      • 说明网站主要做什么
    • keywords 关键词
      • 页面关键词,搜索引擎关注点之一
      • 最好限制为6~8个,逗号隔开

LOGO SEO优化

  • 首先放h1标签,目的是提权,告诉搜索引擎此处重要
  • h1里放链接,返回首页。将logo作为链接的背景图片
  • 链接里放文字(网站名称),文字不显示,使搜索引擎收录
    • 淘宝:text-indent移到盒子外面(text-indent:-9999px),overflow:hidden.
    • 京东:font-size:0;
  • 给链接添加title属性,鼠标悬浮显示提示文字