CSS认识与实践

 

目录

 

CSS 是什么

  基本语法规范

  引入方式

内部样式表

行内样式表

外部样式

 空格规范

 选择器

选择器的功能

  选择器的种类

   基础选择器

标签选择器

类选择器 

id 选择器

通配符选择器 

基础选择器小结 

复合选择器

后代选择器 

 子选择器

并集选择器 

  伪类选择器 

复合选择器小结 

常用元素属性

字体属性

设置字体

大小 

 粗细

 文字样式 

文本属性 

文本颜色

认识 RGB

 设置文本颜色 

文本对齐 

​编辑 文本缩进

文本装饰

行高

背景属性

背景颜色

背景图片

背景平铺

背景位置

背景尺寸

圆角矩形

基本用法

生成圆形

生成圆角矩形

展开写法

CSS 是什么

层叠样式表 (Cascading Style Sheets).------通俗来说就是相当于化妆术

  • CSS 能够对网页中元素位置的排版进行像素级精确控制, 实现美化页面的效果. 能够做到页面的样式和结构分离.
  • html决定页面结构

  基本语法规范

选择器 + {一条/N条声明}

  • 选择器决定针对谁修改 (找谁)
  • 声明决定修改啥. (干啥)
  • 声明的属性是键值对. 使用 ; 区分键值对, 使用 : 区分键和值.

此时style里的p就是标签选择器,color和font-size是声明 ;

  •  CSS 要写到 style 标签中(后面还会介绍其他写法)
  • style 标签可以放到页面任意位置. 一般放到 head 标签内.
  • CSS 使用 /* */ 作为注释. (使用 ctrl + / 快速切换) 

  引入方式

内部样式表

将css嵌套到html页面里(通过style标签嵌套)

优点: 这样做能够让样式和页面结构分离.

缺点: 分离的还不够彻底. 尤其是 css 内容多的时候.

行内样式表

通过 style 属性, 来指定某个标签的样式. 只适合于写简单样式. 只针对某个标签生效.

缺点: 不能写太复杂的样式.

这种写法优先级较高, 会覆盖其他的样式.

<style>
        p{
            color: red;
            font-size: medium;
        }
    </style>
<p>hello world</p>
    <p style="color: brown;">hello wwwww</p>

外部样式

实际开发中最常用的方式:

    1. 创建一个 css 文件.

    2. 使用 link 标签引入 css

 注意: 不要忘记 link 标签调用 CSS, 否则不生效

 优点: 样式和结构彻底分离了.

缺点: 受到浏览器缓存影响, 修改之后 不一定 立刻生效

关于缓存:

这是计算机中一种常见的提升性能的技术手段. 网页依赖的资源(图片/CSS/JS等)通常是从服务器上获取的. 如果频繁访问该网站, 那么这些外部资 源就没必要反复从服务器获取. 就可以使用缓存先存起来(就是存在本地磁盘上了). 从而提高访问效 率. 可以通过 ctrl + F5 强制刷新页面, 强制浏览器重新获取 css 文件.  

 空格规范

  • 冒号后面带空格
  • 选择器和 { 之间也有一个空格.

 选择器

选择器的功能

选中页面中指定的标签元素.

  • 要先选中元素, 才能设置元素的属性.
  • 就好比 SC2, War3 这样的游戏, 需要先选中单位, 再指挥该单位行动.

  选择器的种类

以下内容只是 CSS2 标准中支持的选择器, 在 CSS3 中还做出了一些补充

1. 基础选择器: 单个选择器构成的

  • 标签选择器
  • 类选择器
  • id 选择器
  • 通配符选择器

2. 复合选择器: 把多种基础选择器综合运用起来.

  • 后代选择器
  • 子选择器
  • 并集选择器
  • 伪类选择器

   基础选择器

标签选择器

特点:

  • 能快速为同一类型的标签都选择出来.
  • 但是不能差异化选择

类选择器 

特点:

  • 差异化表示不同的标签
  • 可以让多个标签的都使用同一个标签.

 

语法细节:

  • 类名用 . 开头
  • 下方的标签使用 class 属性来调用.
  • 一个类可以被多个标签使用, 一个标签也能使用多个类(多个类名要使用空格分割, 这种做法可以让 代码更好复用)
  • 如果是长的类名, 可以使用 - 分割.
  • 不要使用纯数字, 或者中文, 以及标签名来命名类名.
id 选择器

和类选择器类似:

  • CSS 中使用 # 开头表示 id 选择器
  • id 选择器的值和 html 中某个元素的 id 值相同
  • html 的元素 id 不必带 #
  • id 是唯一的, 不能被多个标签使用 (是和 类选择器 最大的区别)

 类比:

姓名是类选择器, 可以重复.

身份证号码是 id 选择器, 是唯一的.

通配符选择器 

使用 * 的定义, 选取所有的标签

* {
 color: red;
}

页面的所有内容都会被改成 红色 . 不需要被页面结构调用

注意:通配符选择器在实际应用开发中用来针对页面中的所有的元素默认样式清除,主要用来消除边距; 

基础选择器小结 
作用特点
标签选择器能选出所有相同标签不能差异化选择
类选择器能选出一个或多个标签根据需求选择, 最灵活, 最常用
id 选择器能选出一个标签同一个 id 在一个 HTML 中只能出现一次
通配符选择器选择所有标签

特殊情况下使用

复合选择器

后代选择器 

又叫包含选择器. 选择某个父元素中的某个子元素.

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

  • 元素 1 和 元素 2 要使用空格分割
  • 元素 1 是父级, 元素 2 是子级, 只选元素 2 , 不影响元素 1  

父子:

爷孙:

 子选择器

和后代 择器类似 , 但是只选择子标签

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

  • 使 用 大 于 号 分 割
  • 只 选 亲 儿 子 , 不 选 孙 子 元 素  

后代选择器与子选择器的区别:

并集选择器 

用于选择多组标签. (集体声明)

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

  • 通过 逗号 分割等多个元素.
  • 表示同时选中元素 1 和 元素 2 任何基础选择器都可以使用并集选择器.
  • 并集选择器建议竖着写.
  • 每个选择器占一行. (最后一个选择器不能加逗号)  
<div>苹果</div>
<h3>香蕉</h3>
<ul>
  <li>鸭梨</li>
  <li>橙子</li>
</ul>

 把苹果和香蕉颜色改成红色:

div, h3 {
  color: red;
}

把鸭梨和橙子也都一起改成红色  :

div,
h3,
ul>li {
  color: red;
}

  伪类选择器 

1. 链接伪类选择器

a:link 选择未被访问过的链接

a:visited 选择已经被访问过的链接

a:hover 选择鼠标指针悬停上的链接

a:active 选择活动链接(鼠标按下了但是未弹起)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- <link rel="stylesheet" href="./eat.css"> -->
     <style>
        a{/*链接颜色 */
            color: black;
            /* 去掉 a 标签的下划线 */
            text-decoration: none;
        }
        a:hover{/*鼠标放上去时链接颜色 */
            color: red;
        }
        a:active{/*点击链接但鼠标不动的颜色 */
            color: green;
        }
     </style>
</head>
<body>
    <a href="#">不跳转</a>
</body>
</html>

当然也可以对按钮使用:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- <link rel="stylesheet" href="./eat.css"> -->
     <style>
        input{/*按钮颜色 */
            color: black;
        }
        input:hover{/*鼠标放上去时按钮颜色 */
            color: red;
        }
        input:active{/*点击按钮但鼠标不动的颜色 */
            color: green;
        }
     </style>
</head>
<body>
    <input type="button" value="按钮">
</body>
</html>

如何让一个已经被访问过的链接恢复成未访问的状态?

清空浏览器历史记录即可. ctrl + shift + delete  

注意事项  :

  • 按照 LVHA 的顺序书写, 例如把 active 拿到前面去, 就会导致 active 失效. 记忆规则 "绿化"
  • 浏览器的 a 标签都有默认样式, 一般实际开发都需要单独制定样式.
  • 实际开发主要给链接做一个样式, 然后给 hover 做一个样式即可. link, visited, active 用的不多.

2. :force 伪类选择器

选取获取焦点的 input 表单元素.

    <div class="three">
      <input type="text" />
      <input type="text" />
      <input type="text" />
      <input type="text" />
    </div>
    <style>
        .three>input:focus {
        color: red;
    }
    </style>

此时被选中的表单的字体就会变成红色

复合选择器小结 
选择器作用注意事项
后代选择器选择后代元素可以是孙子元素
子选择器选择子元素只能选亲儿子, 不能选孙子
并集选择器选择相同样式的元素更好的做到代码重用
链接伪类选择器选择不同状态的链接重点掌握 a:hover 的写法
:focuse 伪类选择器选择被选中的元素重点掌握 input:focus

常用元素属性

CSS 属性有很多, 可以参考文档CSS 参考手册icon-default.png?t=O83Ahttps://www.w3school.com.cn/cssref/index.asp

字体属性

设置字体

       p{
        font-family: '宋体';    
      }
  •  字体名称可以用中文, 但是不建议.
  • 多个字体之间使用逗号分隔. (从左到右查找字体, 如果都找不到, 会使用默认字体. )
body {
    font-family: 'Microsoft YaHei', '微软雅黑', sans-serif;
}
  • 如果字体名有空格, 使用引号包裹.
  • 建议使用常见字体, 否则兼容性不好.

大小 

p {
    font-size: 20px;
}
  • 不同的浏览器默认字号不一样, 最好给一个明确值. (chrome 默认是 16px)
  • 可以给 body 标签使用 font-size
  • 要注意单位 px 不要忘记.
  • 标题标签需要单独指定大小
<style>
    .font-size .one {
        font-size: 40px;
   }
    .font-size .two {
        font-size: 20px;
   }
</style>
<div class="font-size">
    <div class="one">
       大大大
    </div>
    <div class="two">
       小小小
    </div>
</div>

 粗细

p {
    font-weight: bold;
    font-weight: 700;
}

font-weight: bold; 是用关键字 bold 来表示字体加粗。
font-weight: 700; 是用数值来表示字体粗细,700 是常见的加粗值。

  • 可 以 使 用 数 字 表 示 粗 细.
  • 7 0 0 = = b old , 4 0 0 是 不 变 粗 , = = n o r m al
  • 取值范围是 100 -> 900

 文字样式 

font-style: italic;  /* 设置倾斜 */

 font-style: normal;  /* 取消倾斜 */

<style>
    .italic-text {
        font-style: italic;  /* 设置倾斜 */
    }

    .normal-text {
        font-style: normal;  /* 取消倾斜 */
    }
</style>

<p class="italic-text">这段文字是倾斜的。</p>
<p class="normal-text">这段文字是正常的。</p>

文本属性 

文本颜色

认识 RGB

我们的显示器是由很多很多的 "像素" 构成的. 每个像素视为一个点, 这个点就能反映出一个具体的颜色.

我们使用 R (red), G (green), B (blue) 的方式表示颜色(色光三原色). 三种颜色按照不同的比例搭配, 就能混合出各种五彩斑斓的效果.

计算机中针对 R, G, B 三个分量, 分别使用一个字节表示(8个比特位, 表示的范围是 0-255, 十六进制表示 为 00-FF).

数值越大, 表示该分量的颜色就越浓. 255, 255, 255 就表示白色; 0, 0, 0 就表示黑色.

 设置文本颜色 

color 属性值的写法:  

  • 预定义的颜色值(直接是单词) [最常用]
  • 十六进制形式(十六进制形式表示颜色, 如果两两相同, 就可以用一个来表示. #ff00ff => #f0f)
  • RGB 方式
          color: rgb(0, 0,255);
          color: red;
          color: #ff0000;

文本对齐 

控制文字水平方向的对齐(不光能控制文本对齐, 也能控制图片等元素居中或者靠右

text-align: [center/ left/right];

  •  center: 居中对齐
  • left: 左对齐
  • right: 右对齐
    <style>
      .text-align .one {
          text-align: left;
      }
      .text-align .two {
          text-align: right;
      }
      .text-align .three {
          text-align: center;
      }
  </style>  
    <div class="text-align">
      <div class="one">左对齐</div>
      <div class="two">右对齐</div>
      <div class="three">居中对齐</div>
  </div>

 文本缩进

控制段落的 首行 缩进 (其他行不影响)

text-indent: [值];

  • 单位可以使用 px 或者 em.
  • 使用 em 作为单位更好. 1 个 em 就是当前元素的文字大小.
  • 缩进可以是负的, 表示往左缩进. (会导致文字就冒出去了)  
    <style>
      .text-indent .one {
          text-indent: 2em;  /* 正常缩进 */
      }
      .text-indent .two {
          text-indent: -2em;  /* 反向缩进 */
      }
  </style>
<div class="text-indent">
  <div class="one">正常缩进</div>
  <div class="two">反向缩进</div>
</div>

文本装饰

text-decoration: [值];  

常用取值: 

  • underline 下划线. [常用]
  • none 啥都没有. 可以给 a 标签去掉下划线.
  • overline 上划线. [不常用]
  • line-through 删除线 [不常用]
    <style>
      .text-decorate .one {
          text-decoration: none; /* 无装饰 */
      }
      .text-decorate .two {
          text-decoration: underline; /* 下划线 */
      }
      .text-decorate .three {
          text-decoration: overline; /* 上划线 */
      }
      .text-decorate .four {
          text-decoration: line-through; /* 删除线 */
      }
  </style>  
<div class="text-decorate">
  <div class="one">啥都没有</div>
  <div class="two">下划线</div>
  <div class="three">上划线</div>
  <div class="four">删除线</div>
</div>

行高

行高指的是上下文本行之间的基线距离.

HTML 中展示文字涉及到这几个基准线:

  • 顶线
  • 中线
  • 基线 (相当于英语四线格的倒数第二条线)
  • 底线

内容区:底线和顶线包裹的区域,即下图深灰色背景区域 

其实基线之间的距离 = 顶线间距离 = 底线间距离 = 中线间距离

line-height: [值];

line-height: 40px; 或者line-height: 500%;

背景属性

背景颜色

背景图片

背景平铺

背景位置

背景尺寸

圆角矩形

基本用法

生成圆形

生成圆角矩形

展开写法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/955531.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Windows环境:使用命令行脚本批量发送http请求

因为服务器Windows版本问题&#xff0c;无法使用curl&#xff0c;所以只能使用wget。 C:\Windows\System32\wget.exe 需求背景&#xff1a; 传入客户端参数&#xff0c;请求服务端。 将请求参数保存到文本文件中&#xff0c;命令行读取文本文件&#xff0c;然后分割字符串&am…

Logback日志技术

Logback日志技术 日志 日志&#xff08;Logging&#xff09;是软件开发和运维中用于记录系统或应用程序运行期间发生的运行信息、状态变化、错误信息等的一种机制&#xff0c;这种记录的方式就好像我们日常生活中写日记一样。它提供了一种持久化的方式&#xff0c;使得开发者…

6. 快速掌握抽象类及接口

目录 1. 抽象类1.1 抽象类语法1.2 抽象类特性1.3 抽象类的作用 2. 接口2.1 接口语法2.2 接口的特性 3. 接口案例4. 常用接口4.1 Comparable接口---compareTo()方法4.2 clonable接口---clone方法4.2 深拷贝和浅拷贝 5. Object类5.1 equals()方法5.2 toString()方法5.3 hashCode(…

womb子宫一词解趣

英语单词 womb&#xff0c;是“子宫”的意思&#xff0c;这个单词非常有趣&#xff0c;下面我们来说说它有趣在什么地方。 首先&#xff0c;womb 这个单词&#xff0c;大体可以分成两个部分&#xff0c;即wom-和b-&#xff0c;其中wom-可对应子宫的子&#xff0c;b-可对应子宫…

Spring Cloud概述

&#xff08;一&#xff09;定义 Spring Cloud是一个基于Spring Boot实现的云应用开发工具&#xff0c;它为基于JVM的云应用开发中涉及的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一套完整的解决方案…

年后找工作需要注意的事项

大家好&#xff01;我是 [数擎 AI]&#xff0c;一位热爱探索新技术的前端开发者&#xff0c;在这里分享前端和 Web3D、AI 技术的干货与实战经验。如果你对技术有热情&#xff0c;欢迎关注我的文章&#xff0c;我们一起成长、进步&#xff01; 开发领域&#xff1a;前端开发 | A…

windows远程桌面连接限定ip

1&#xff0c;Windows防火墙->高级设置->远程桌面 - 用户模式(TCP-In)->作用域->远程IP地址 2&#xff0c;启用规则

电脑换固态硬盘

参考&#xff1a; https://baijiahao.baidu.com/s?id1724377623311611247 一、根据尺寸和缺口可以分为以下几种&#xff1a; 1、M.2 NVME协议的固态 大部分笔记本是22x42MM和22x80MM nvme固态。 在京东直接搜&#xff1a; M.2 2242 M.2 2280 2、msata接口固态 3、NGFF M.…

3.无重复字符的最长字串--力扣

给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长 子串 的长度。 示例 1: 输入: s “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”&#xff0c;所以其长度为 3。 示例 2: 输入: s “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “…

西门子【Library of Basic Controls (LBC)基本控制库”(LBC) 提供基本控制功能】

AF架构中使用的库 文章目录 Table of contents Legal information ..............................................................................................................................2 1 Introduction ................................................…

Golang Gin系列-2:搭建Gin 框架环境

开始网络开发之旅通常是从选择合适的工具开始的。在这个全面的指南中&#xff0c;我们将引导你完成安装Go编程语言和Gin框架的过程&#xff0c;Gin框架是Go的轻量级和灵活的web框架。从设置Go工作空间到将Gin整合到项目中&#xff0c;本指南是高效而强大的web开发路线图。 安装…

Visual Studio Community 2022(VS2022)安装方法

废话不多说直接上图&#xff1a; 直接上步骤&#xff1a; 1&#xff0c;首先可以下载安装一个Visual Studio安装器&#xff0c;叫做Visual Studio installer。这个安装文件很小&#xff0c;很快就安装完成了。 2&#xff0c;打开Visual Studio installer 小软件 3&#xff0c…

《offer 来了:Java 面试核心知识点精讲 -- 原理篇》

在 Java 面试的战场上&#xff0c;只知皮毛可不行&#xff0c;面试官们越来越看重对原理的理解。今天就给大家分享一本能让你在面试中脱颖而出的 “武林秘籍”——《offer 来了&#xff1a;Java 面试核心知识点精讲 -- 原理篇》。 本书详细介绍了Java架构师在BAT和移动互联网公…

1,Linux环境变量基本定义(基于Ubuntu示例进行讲解)

linux环境变量的概念 Linux环境变量&#xff08;准确说应该是shell变量&#xff09;&#xff0c;是直接存储在操作系统中的一组键值对&#xff08;dict类型&#xff09;&#xff0c;用于配置系统和应用程序的操作行为。 【有经验的描述】&#xff1a;它们的工作原理很简单&am…

5、docker-compose和docker-harbor

安装部署docker-compose 自动编排工具&#xff0c;可以根据dockerfile自动化的部署docker容器。是yaml文件格式&#xff0c;注意缩进。 1、安装docker-compose 2、配置compose配置文件docker-compose.yml 3、运行docker-compose.yml -f&#xff1a;指定文件&#xff0c;up&…

b站视频(网页加客户端)+本地视频 生成回链

b站视频(网页加客户端)本地视频 生成回链 引言 基于上一篇博客方案 本地视频进度加入笔记根据进度快速锁定视频位置 我想着只有本地的话, 那b站上的视频, 不是每次都得下载下来吗? 如果是一套课程, 直接下载, 然后视频处理成mp3,还好, 如果只是一个视频, 每次这样处理就有点…

mac 安装 node

brew versions node // 安装 node brew versions node14 // 安装指定版本 卸载node: sudo npm uninstall npm -g sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.* sudo rm -rf /usr/local/include/node /Users/$USER/.npm su…

电子应用设计方案94:智能AI门禁系统设计

智能 AI 门禁系统设计 一、引言 智能 AI 门禁系统旨在提供更高效、安全和便捷的门禁控制解决方案&#xff0c;结合人工智能技术实现精准的身份识别和智能化的访问管理。 二、系统概述 1. 系统目标 - 实现高精度的人脸识别、指纹识别、虹膜识别等多模态生物识别技术。 - 具备智…

机器学习经典无监督算法——聚类K-Means算法

目录 算法原理 算法步骤 算法API 算法导入 API参数理解 算法实现 算法原理 Kmeans 算法是一种无监督的聚类算法&#xff0c;目的是将数据集中的样本划分到 K 个不同的簇中。 聚类&#xff1a;将数据集中相似的数据点归为一组或一个簇的过程。 数据集&#xff1a;一组相…

Android系统定制APP开发_如何对应用进行系统签名

前言 当项目开发需要使用系统级别权限或frame层某些api时&#xff0c;普通应用是无法使用的&#xff0c;需要在AndroidManifest中配置sharedUserId&#xff1a; AndroidManifest.xml中的android:sharedUserId“android.uid.system”&#xff0c;代表的意思是和系统相同的uid&a…