CSS 美化页面(一)

news2025/5/19 1:56:33

一、CSS概念

     CSS(Cascading Style Sheets,层叠样式表)是一种用于描述 HTML 或 XML(如 SVG、XHTML)文档 样式 的样式表语言。它控制网页的 外观和布局,包括字体、颜色、间距、背景、动画等视觉效果。

二、CSS 的作用

  1. 样式与结构分离

    • HTML 负责网页的 内容结构(如标题、段落、图片)。

    • CSS 负责 视觉表现(如字体大小、颜色、布局)。

    • 两者分离使代码更易维护和修改。

  2. 控制网页外观

    • 精确调整元素的 颜色、字体、间距、边框、背景 等。

    • 实现 响应式设计(适配手机、平板、电脑等不同设备)。

  3. 布局与动画

    • 通过 Flexbox、Grid 等实现复杂布局。

    • 使用 过渡(Transition)和动画(Animation) 增强交互体验。

三、CSS 的基本工作原理

  1. 选择器(Selector)
    指定要样式化的 HTML 元素(如 p.class#id)。

  2. 属性与值(Property & Value)
    定义具体的样式规则(如 color: red;)。

  3. 层叠(Cascading)

    • 当多个样式规则冲突时,按 优先级 决定最终效果。

    • 优先级规则:!important > 内联样式 > ID > 类 > 元素选择器。

 四、CSS 基本语法

选择器 {
  属性: 值;  /* 声明块 */
}
h1 {
  color: red;     /* 文字颜色 */
  font-size: 24px; /* 字号 */
}

 五、CSS 的三种引入方式

方式示例适用场景
内联样式<p style="color: red;">快速测试,但不推荐大规模使用
内部样式表<style> p { color: red; } </style>小型项目或单页
外部样式表<link href="style.css" rel="stylesheet">主流方式,便于维护

六、CSS 基础选择器

选择器类型示例作用
元素选择器p选择所有 <p> 标签
类选择器.active选择 class="active" 的元素
ID 选择器#main选择 id="main" 的元素
通配选择器*选择所有元素
属性选择器[type="text"]选择指定属性的元素
分组选择器h1, h2同时选择多个元素

补充说明

  • 优先级:ID 选择器 > 类选择器 > 元素选择器 > 通配选择器。

  • 组合使用:基础选择器可组合成更复杂的选择器(如后代选择器 .box p)。

实际应用:

1. 元素选择器(标签选择器)

 场景:统一设置所有段落文本的样式。

  <p>这是一个普通段落。</p>
  <p>这是另一个段落。</p>

        /* 选中所有 <p> 元素 */
        p {
            font-size: 36px;
            line-height: 1.5;
            color: #bd2222;
            border: 3px solid #ccc;
        }

2. 类选择器(Class Selector)

场景:标记需要高亮的按钮和警告文本。

    <button class="btn-primary">提交</button>
    <div class="alert">警告信息!</div>
 /* 选中所有 class="btn-primary" 的元素 */
        .btn-primary {
            background: blue;
            color: white;
        }

        /* 选中所有 class="alert" 的元素 */
        .alert {
            color: rgb(178, 192, 95);
            font-weight: bold;
            background: rgb(48, 35, 35);
            border: 1px solid rgb(178, 192, 95);
            width:100px;
            height:20px;
        }

 

3. ID 选择器

场景:设置页面顶部导航栏的样式(ID 唯一)。

 <nav id="main-nav">
        <a href="#">首页</a>
        <a href="#">登录</a>
        <a href="#">注册</a>
    </nav>
 /* 选中 id="main-nav" 的元素 */
        #main-nav {
            background: black;
            padding: 10px;
        }

           /* 选中导航栏内的 <a> 标签 */
        #main-nav a {
            color: white;
            text-decoration: none;
            padding: 5px 10px;
        }

4. 通配选择器(Universal Selector)

场景:重置默认边距和盒模型。

/* 全局重置 */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

  所有元素的外边距和内边距被清零,盒模型更易控制。

 

5. 属性选择器(Attribute Selector)

场景:为所有外部链接添加图标。

  <a href="https://www.baidu.com" target="_blank">外部链接</a>
    <a href="./my.html" name="inner">内部链接</a>
  /* 选中带有 target="_blank" 的 <a> 标签 */
        a[target="_blank"]::after {
            content: "↗";
            margin-left: 5px;
        }
        a[name="inner"]::after {
            content: "↗";
            margin-left: 5px;
        }

6. 分组选择器(Grouping Selector)

场景:统一标题字体。

    <h1>标题1</h1>
    <h2>标题2</h2>
    <h3>标题3</h3>

        /* 同时选中 h1, h2, h3 */
        h1,
        h2,
        h3 {
            font-family: "Microsoft YaHei", sans-serif;
            margin-bottom: 10px;
            color: blueviolet;
        }

综合案例:一个简单的卡片组件

  <div class="card" id="featured-card">
        <h2 class="card-title">特别推荐</h2>
        <p class="card-content">请单击查看详情</p>
        <button type="button" class="btn">了解更多</button>
    </div>
     /* 元素选择器 */
        p {
            margin: 5px 0;
        }

        /* 类选择器 */
        .card {
            width: 150px;
            height: 180px;
            /* 为卡片添加边框 */
            border: 5px solid #ddd;
            padding: 5px;
        }

        .card-title {
            font-size: 25px;
            text-align: center;
        }
        .card-content {
            font-size: 20px;
            text-align: center;
            color: cadetblue;
        } 

        .btn {
            background: orange;
            color: white;
            margin-left: 60px;
            margin-top: 30px;
        }

        /* ID 选择器 */
        #featured-card {
            border-color: gold;
            /* 高亮特色卡片 */
        }

 

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

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

相关文章

23种设计模式-组合(Composite)设计模式

组合设计模式 &#x1f6a9;什么是组合设计模式&#xff1f;&#x1f6a9;组合设计模式的特点&#x1f6a9;组合设计模式的结构&#x1f6a9;组合设计模式的优缺点&#x1f6a9;组合设计模式的Java实现&#x1f6a9;代码总结&#x1f6a9;总结 &#x1f6a9;什么是组合设计模式…

LSTM创新点不足?LSTM + Transformer融合模型引领Nature新突破

LSTM创新点不足&#xff1f;LSTM Transformer融合模型引领Nature新突破 2024年LSTM真的没有创新空间了吗&#xff1f; 最新研究表明&#xff0c;通过将LSTM与Transformer巧妙融合&#xff0c;依然能创造出Nature级别的突破性成果。LSTM擅长处理短期时序模式&#xff0c;但在…

【区块链安全 | 第六篇】NFT概念详解

文章目录 NFTNFT&#xff08;非同质化代币&#xff09;FT&#xff08;可替代代币&#xff09; 以太坊 NFT 标准ERC-721&#xff08;单一资产&#xff09;ERC-1155&#xff08;多资产&#xff09; NFT 市场版税机制NFT 借贷NFT 安全 NFT NFT&#xff08;Non-Fungible Token&…

iOS常见网络框架

URLSession、Alamofire 和 Moya 1. URLSession 1.1 核心概念 URLSession 是 Apple 官方提供的网络请求 API&#xff0c;封装在 Foundation 框架中。它支持 HTTP、HTTPS、FTP 等协议&#xff0c;可用于&#xff1a; ​ • 普通网络请求&#xff08;GET/POST&#xff09; ​ …

蓝桥杯备考---->激光炸弹(二维前缀和)

本题我们可以构造二维矩阵&#xff0c;然后根据题意&#xff0c;枚举所有边长为m的正方形&#xff0c;找到消灭价值最多的炸弹 #include <iostream> using namespace std; const int N 1e4; int a[N][N]; int n,m; int f[N][N]; int main() {cin >> n >> m…

数据结构 --树和森林

树和森林 树的存储结构 树的逻辑结构 树是一种递归定义的数据结构 树是n(n≥0)个结点的有限集。当n0时&#xff0c;称为空树。在任意一棵非空树中应满足&#xff1a; 1)有且仅有一个特定的称为根的结点。 2)当n>1时&#xff0c;其余结点可分为m(m>0)个互不相交的有…

QOpenGLWidget视频画面上绘制矩形框

一、QPainter绘制 在QOpenGLWidget中可以绘制&#xff0c;并且和OpenGL的内容叠在一起。paintGL里面绘制完视频后&#xff0c;解锁资源&#xff0c;再用QPainter绘制矩形框。这种方式灵活性最好。 void VideoGLWidget::paintGL() {glClear(GL_COLOR_BUFFER_BIT);m_program.bi…

Linux系统加固笔记

检查口令为空的账户 判断依据&#xff1a;存在则不符合 特殊的shell a./bin/false:将用户的shell设置为/bin/false&#xff0c;用户会无法登录&#xff0c;并且不会有任何提示信息b./sbib/nologin&#xff1a;nologin会礼貌的向用户发送一条消息&#xff0c;并且拒绝用户登录…

【Go万字洗髓经】Golang中sync.Mutex的单机锁:实现原理与底层源码

本章目录 1. sync.Mutex锁的基本用法2. sync.Mutex的核心原理自旋到阻塞的升级过程自旋CAS 饥饿模式 3. sync.Mutex底层源码Mutex结构定义全局常量Mutex.Lock()方法第一次CAS加锁能够成功的前提是&#xff1f;竞态检测 Mutex.lockSlow()lockSlow的局部变量自旋空转state新值构造…

Django REST framework 源码剖析-认证器详解(Authentication)

Django REST framework 源码剖析-认证器详解(Authentication) 身份验证始终在视图的最开始运行&#xff0c;在权限和限制检查发生之前&#xff0c;以及在允许任何其他代码继续之前。request.user属性通常设置为contrib.auth包的user类的实例。request.auth属性用于任何其他身份…

TCP/IP三次握手的过程,为什么要3次?

一&#xff1a;过程 第一次&#xff08;SYN&#xff09;&#xff1a; 客户端发送一个带有SYN标志的TCP报文段给服务器&#xff0c;设置SYN1&#xff0c;并携带初始序列号Seqx&#xff08;随机值&#xff09;&#xff0c;进入SYN_SENT状态。等待服务器相应。 第二次&#xff08…

Centos6安装nerdctl容器运行时

Centos6安装nerdctl容器运行时 前言Centos6安装docker---失败--不可拉取镜像docker配置国内镜像加速 Centos6安装nerdctl-full容器管理工具为Centos6配置containerd服务开机自启动设置nerdctl自动补全 前言 本文写于2025年3月22日,因一些特殊业务需要用到Centos6Docker,但Cent…

登录验证码的接口实习,uuid,code.

UID是唯一标识的字符串,下面是百度百科关于UUID的定义&#xff1a; UUID是由一组32位数的16进制数字所构成&#xff0c;是故UUID理论上的总数为16322128&#xff0c;约等于3.4 x 10^38。也就是说若每纳秒产生1兆个UUID&#xff0c;要花100亿年才会将所有UUID用完。 UUID的标准…

用fofa语法搜索漏洞

FOFA是一款非常强大的搜索引擎 关于对于fofa的描述是&#xff1a;FOFA&#xff08;网络空间资产检索系统&#xff09;是世界上数据覆盖更完整的IT设备搜索引擎&#xff0c;拥有全球联网IT设备更全的DNA信息。 探索全球互联网的资产信息&#xff0c;进行资产及漏洞影响范围分析…

20242817李臻《Linux⾼级编程实践》第6周

20242817李臻《Linux⾼级编程实践》第6周 一、AI对学习内容的总结 Linux进程间通信&#xff08;IPC&#xff09; 1. 进程间通信基本概念 作用: 数据传输&#xff1a;进程间传递数据&#xff08;字节到兆字节级别&#xff09;。共享数据&#xff1a;多个进程操作同一数据&…

深入解析SQL2API平台:数据交互革新者

在数字化转型持续深入的当下&#xff0c;企业对数据的高效利用与管理的需求愈发迫切。SQL2API平台应运而生&#xff0c;成为助力企业突破数据交互困境的有力工具&#xff0c;特别是它由麦聪软件基于DaaS&#xff08;数据即服务&#xff09;产品创新衍生而来&#xff0c;备受业界…

Java 中装饰者模式与策略模式在埋点系统中的应用

前言 在软件开发中&#xff0c;装饰者模式和策略模式是两种常用的设计模式&#xff0c;它们在特定的业务场景下能够发挥巨大的作用。本文将通过一个实际的埋点系统案例&#xff0c;探讨如何在 Java 中运用装饰者模式和策略模式&#xff0c;以及如何结合工厂方法模式来优化代码…

无人设备遥控器之调度自动化技术篇

一、技术原理 信息采集与处理&#xff1a; 通过传感器、仪表等设备采集无人设备的各种数据&#xff0c;如位置、速度、状态等。 将采集到的数据传输到调度自动化系统中进行处理和分析&#xff0c;以获取设备的实时状态。 系统建模与优化&#xff1a; 调度自动化系统会根据…

【AI】Orin Nano+ubuntu22.04上移植YoloV11,并使用DeepStream测试成功

【AI】郭老二博文之:AI学习目录汇总 1、准备工作 使用 sdk-manager 烧写 OrinNano, JetPack版本为6.0 DP,对应操作系统为:Ubuntu22.04 参见博客:【NVIDIA】Jetson Orin Nano系列:烧写Ubuntu22.04 2、安装 PyTorch 2.1 下载依赖 1)安装onnx pip install onnx -i h…

K8S学习之基础四十五:k8s中部署elasticsearch

k8s中部署elasticsearch 安装并启动nfs服务yum install nfs-utils -y systemctl start nfs systemctl enable nfs.service mkdir /data/v1 -p echo /data/v1 *(rw,no_root_squash) >> /etc/exports exports -arv systemctl restart nfs创建运行nfs-provisioner需要的sa账…