CSS认识与实践

news2025/1/19 3:04:52

 

目录

 

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%;

背景属性

背景颜色

背景图片

背景平铺

背景位置

背景尺寸

圆角矩形

基本用法

生成圆形

生成圆角矩形

展开写法

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue项目引入阿里云svg资源图标

1&#xff1a;生成svg图标 登录阿里云官网 1.1 创建项目组 1.2 从阿里云网站上面获取喜欢的图标加入到已有的项目组 1.3 如果团队有自己的设计师&#xff0c;也可以让设计师上传自己的svg图标到阿里云指定的项目组&#xff1b; 使用的时候&#xff0c;把 资源包下载到本地项…

Redis 中 TTL 的基本知识与禁用缓存键的实现策略(Java)

目录 前言1. 基本知识2. Java代码 前言 &#x1f91f; 找工作&#xff0c;来万码优才&#xff1a;&#x1f449; #小程序://万码优才/r6rqmzDaXpYkJZF 单纯学习Redis可以看我前言的Java基本知识路线&#xff01;&#xff01; 对于Java的基本知识推荐阅读&#xff1a; java框架…

使用nginx搭建通用的图片代理服务器,支持http/https/重定向式图片地址

从http切换至https 许多不同ip的图片地址需要统一进行代理 部分图片地址是重定向地址 nginx配置 主站地址&#xff1a;https://192.168.123.100/ 主站nginx配置 server {listen 443 ssl;server_name localhost;#ssl证书ssl_certificate ../ssl/ca.crt; #私钥文件ssl_ce…

Unix 与 Linux 深度应用与对比分析

文章目录 引言Unix 与 Linux 的相似之处1. 设计理念2. 文件系统结构3. 命令行界面4. 多用户多任务支持 Unix 与 Linux 的不同之处1. 开源性2. 内核架构3. 应用场景4. 发行版 Unix 和 Linux 的开发语言1. C 语言2. 脚本语言 在 Unix 和 Linux 上开发简单应用示例1. 编写一个简单…

事务机制及Spring事务管理

事务概览 事务是一组操作的集合&#xff0c;它是一个不可分割的工作单位。 事务会将所有的操作作为一个整体一起向系统提交或撤销操作请求&#xff0c;换句话说&#xff1a;这些操作要么同时成功、要么同时失败。 具体案例 我们先看一个需求&#xff1a;现在有两张数据库表&…

48.【6】BUUCTF WEB BabySQL

进入靶场 order by 判断字节数 输入内容是 1 order by 2# 显示图片内容&#xff0c;知被过滤了 一般最简单的绕过方法是双写或大小写 尝试双写 It is ok continue 经过多次尝试&#xff0c;4时异常&#xff0c;所以字节数是3 union select都被过滤了 双写解决&#xff0c;成…

Spring6.0新特性-HTTP接口:使用@HttpExchange实现更优雅的Http客户端

文章目录 一、概述二、使用1、创建接口HttpExchange方法2、创建一个在调用方法时执行请求的代理3、方法参数4、返回值5、错误处理&#xff08;1&#xff09;为RestClient&#xff08;2&#xff09;为WebClient&#xff08;3&#xff09;为RestTemplate 注意 一、概述 官方文档…

高效并发编程:掌握Go语言sync包的使用方法

高效并发编程&#xff1a;掌握Go语言sync包的使用方法 引言基本概念并发与并行互斥锁&#xff08;Mutex&#xff09;读写锁&#xff08;RWMutex&#xff09;等待组&#xff08;WaitGroup&#xff09;一次性操作&#xff08;Once&#xff09;条件变量&#xff08;Cond&#xff0…

.Net Core webapi 实现JWT认证

文章目录 需求准备创建JWT配置创建JWTService注册JWT创建中间件读取jwt的token在需要的接口上添加属性启动认证启动swagger的授权认证使用 需求 实现一个记录某个用户所有操作的功能 准备 创建你的webapi项目从nuget下载安装JWT资源包根据你的项目使用.net版本下载对应的jwt…

Linux《Linux简介与环境的搭建》

在学习了C或者是C语言的基础知识之后就可以开始Linux的学习了&#xff0c;现在Linux无论是在服务器领域还是在桌面领域都被广泛的使用&#xff0c;所以Linxu也是我们学习编程的重要环节&#xff0c;在此接下来我们将会花大量的时间在Linxu的学习上。在学习Linux初期你可以会像初…

从零开始:Gitee 仓库创建与 Git 配置指南

引言 Git 是一款广泛使用的版本控制工具&#xff0c;它能够帮助开发者在开发过程中高效地管理代码的版本。而 Gitee&#xff08;码云&#xff09;是国内知名的 Git 托管平台&#xff0c;它提供了强大的代码托管、团队协作和项目管理功能。如果你是 Git 和 Gitee 的新手&#x…

创建模式、结构模式及行为模式

谁在什么地方提供什么功能&#xff1f; 要设计几个类?这些类各个是什么功能&#xff1f;相互间的关系是什么&#xff1f; 创建模式指的是对象那么多&#xff0c;怎么把它"生"出来&#xff1f;生几个&#xff1f;从这个角度上来说数组就是一种另类的创建模式。主要…

SpringBoot链接Kafka

一、SpringBoot生产者 &#xff08;1&#xff09;修改SpringBoot核心配置文件application.propeties, 添加生产者相关信息 # 连接 Kafka 集群 spring.kafka.bootstrap-servers192.168.134.47:9093# SASL_PLAINTEXT 和 SCRAM-SHA-512 认证配置 spring.kafka.properties.securi…

Linux下源码编译安装Nginx1.24及服务脚本实战

1、下载Nginx [rootlocalhost ~]# wget -c https://nginx.org/download/nginx-1.24.0.tar.gz2、解压 [rootlocalhost ~]# tar xf nginx-1.24.0.tar.gz -C /usr/local/src/3、安装依赖 [rootlocalhost ~]# yum install gcc gcc-c make pcre-devel openssl-devel -y4、 准备 N…

解答二重积分

什么是积分&#xff1f; 一元函数的积分。具体计算过程&#xff0c;是将无数个小矩形加起来&#xff0c;然后求极限。 而今天我们要讲的积分&#xff0c;是二元函数的积分。我们可以用曲顶柱体的体积来理解。 什么是曲顶柱体&#xff1f; 它的底是xoy平面上的一个闭区域。顶是…

代理模式实现

一、概念&#xff1a;代理模式属于结构型设计模式。客户端不能直接访问一个对象&#xff0c;可以通过代理的第三者来间接访问该对象&#xff0c;代理对象控制着对于原对象的访问&#xff0c;并允许在客户端访问对象的前后进行一些扩展和处理&#xff1b;这种设置模式称为代理模…

回归预测 | MATLAB实TCN时间卷积神经网络多输入单输出回归预测

效果一览 基本介绍 回归预测 | MATLAB实TCN时间卷积神经网络多输入单输出回归预测 …………训练集误差指标………… 1.均方差(MSE)&#xff1a;166116.6814 2.根均方差(RMSE)&#xff1a;407.5741 3.平均绝对误差&#xff08;MAE&#xff09;&#xff1a;302.5888 4.平均相对…

《目标检测数据集下载地址》

一、引言 在计算机视觉的广袤领域中&#xff0c;目标检测宛如一颗璀璨的明星&#xff0c;占据着举足轻重的地位。它宛如赋予计算机一双锐利的 “眼睛”&#xff0c;使其能够精准识别图像或视频中的各类目标&#xff0c;并确定其位置&#xff0c;以边界框的形式清晰呈现。这项技…

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

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

【NextJS】PostgreSQL 遇上 Prisma ORM

NextJS 数据库 之 遇上Prisma ORM 前言一、环境要求二、概念介绍1、Prisma Schema Language&#xff08;PSL&#xff09; 结构描述语言1.1 概念1.2 组成1.2.1 Data Source 数据源1.2.2 Generators 生成器1.2.3 Data Model Definition 数据模型定义字段(数据)类型和约束关系&…