CSS新手入门笔记【导入方法、选择器介绍、选择器优先级、属性详细介绍、盒子模型】

目录

  • 一、目的与优势
  • 二、CSS导入方式
  • 三、语法结构
  • 四、选择器类型
      • 基本选择器
      • 组合选择器
      • 伪类与伪元素
      • 属性选择器
  • 六、选择器优先级
      • 总结
  • 六、CSS属性
      • 1. 字体与文本属性
      • 2. 背景属性
      • 3. 尺寸与盒模型属性
      • 4. 布局与定位
      • 5. 列表样式
      • 6. 边框与轮廓
      • 7. 文本装饰与效果
      • 8. 动画与过渡
      • 9. 伪类与伪元素
      • 10. 其他
  • 七、盒子模型

CSS(Cascading Style Sheets,层叠样式表)是一种样式表语言,用于定义HTML或XML文档中元素的外观、布局和结构。以下是CSS的详细介绍:

一、目的与优势

  • 分离内容与表现:CSS使网页内容(HTML)与样式分离,提高了网页的可维护性、可读性和可扩展性。
  • 一致的样式管理:通过集中定义样式,CSS使得整个网站或应用的外观和布局保持一致。
  • 增强设计灵活性:CSS提供了丰富的设计选项,如颜色、字体、布局、动画等,便于实现复杂的视觉效果。
  • 响应式设计:CSS媒体查询支持根据设备屏幕尺寸、分辨率等条件应用不同的样式,实现网页的响应式布局。

如何使用CSS呢?首先要导入CSS,下面就介绍了几种常用方式

二、CSS导入方式

CSS 导入方式主要有以下几种:

  1. 内联样式:直接将CSS代码写在HTML元素的style属性中。这种方式适用于简单的样式调整,但不推荐广泛使用,因为它会使得HTML文档结构混乱,且不利于维护。

    <p style="color: red;">这段文字是红色的。</p>
    

    在这里插入图片描述

  2. 内部样式表:在HTML文档的<head>部分使用<style>标签定义CSS规则。这种方式适用于单个页面的样式设置,便于统一管理页面内的样式,但不适用于多个页面共享样式。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <head>
            <style>
                p {
                    color: blue;
                }
            </style>
        </head>
    </head>
    <body>
         <p>这段文字是红色的。</p>
    </body>
    </html>
    

    在这里插入图片描述

  3. 外部样式表:将CSS规则写在一个单独的.css文件中,然后在HTML文档的<head>部分通过<link>标签引入该文件。这是最常用也是推荐的方式,因为它可以方便地让多个HTML页面共享相同的样式,易于维护和修改。

    <!-- HTML 文件 -->
    <head>
        <link rel="stylesheet" href="styles.css">
    </head>
    
    <!-- styles.css 文件 -->
    p {
        color: green;
    }
    

    在这里插入图片描述

  4. @import:在CSS文件中使用@import语句导入其他CSS文件。这种方式可以在一个CSS文件中引入另一个CSS文件的内容,但建议谨慎使用,因为它可能会增加额外的HTTP请求,影响页面加载速度。通常情况下,直接在HTML中使用<link>标签更为推荐。

    /* main.css */
    @import url("other-styles.css");
    
    /* other-styles.css */
    h1 {
        font-size: 24px;
    }
    

每种导入方式有其适用场景,选择时应根据项目需求和最佳实践来决定。


三、语法结构

CSS的基本语法包括选择器和声明块,如下所示:

selector {
  property: value;
  /* 更多属性声明 */
}

示例

h1 {
    color:red;
    font-size:14px;
}

在这里插入图片描述

  • 选择器:指定CSS规则应用到哪些HTML元素上。选择器可以是元素名、类名、ID、属性选择器、伪类或组合选择器等。
  • 声明:由属性名和值组成,用于设定元素的具体样式。
  • :可以是预定义的关键字、颜色代码、长度单位、百分比等。

四、选择器类型

基本选择器

  1. 元素(标签)选择器:直接通过HTML元素名称来选择元素,例如 p 会选择所有段落元素。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <!-- 内部样式表 -->
         <style>
              p {
                  color: red;
                }
         </style>
    </head>
    <body>
         <p>我是p1。</p>
         <p>我是p2。</p>
         <p>我是p3。</p>
         <p>我是p3。</p>
    </body>
    </html>
    

    在这里插入图片描述

  2. 类选择器:以.开头,用于选择具有指定类属性的元素,如 .p1

  3. ID选择器:以#开头,用于选择具有特定ID属性的元素,ID在文档中必须是唯一的,如 #uniqueID

  4. 通用选择器(通配符):使用*,可以匹配任何元素,但通常不推荐过度使用,因为它会影响性能。

  5. 示例

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <!-- 内部样式表 -->
            <style>
                .p1 {
                    color: red;
                }
                #p2 {
                    color: green;
                }
            </style>
    </head>
    <body>
         <p class="p1">我是class选择器。</p>
         <p id="#p2">我是id选择器。</p>
    </body>
    </html>
    

    在这里插入图片描述

组合选择器

  • 后代选择器:使用空格分隔,选择父元素内部的所有后代元素,如 div p 选择所有div内的p元素。
  • 子选择器:使用>表示,仅选择直接子元素,如 ul > li
  • 相邻兄弟选择器:使用+表示,选择紧接在另一个元素后的同级元素,如 h1 + p
  • 通用兄弟选择器:使用~表示,选择所有跟在指定元素之后的同级元素,如 h1 ~ p

示例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        /* 后代选择器 */
        div p {
            color: red;
        }
        /* 子选择器 */
        ul > li {
            color: green;
        }
        /* 相邻兄弟选择器 */
        h1 + p {
            color: blue;    
        }
        /* 通用兄弟选择器 */
        h2 ~ p {
            color: brown;
        }
    </style>
</head>
<body>
    <div>
        <p>我是第一个后代</p>
        <p>我是第二个后代</p>
        <p>我是第三个后代</p>
    </div>
    <ul>
        <li>我是子选择器</li>
    </ul>
    <h1></h1>
    <p>相邻兄弟选择器</p>
    <h2></h2>
    <p>兄弟一</p>
    <p>兄弟二</p>
</body>
</html>

在这里插入图片描述

伪类与伪元素

  • 伪类:用于表示元素的特定状态,如 a:hover 表示链接在鼠标悬停时的状态。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        a:hover{
            background-color: red;
        }
    </style>  
</head>
<body>
    <a href="#">超链接</a>
</body>
</html>

在这里插入图片描述

  • 伪元素:用于创建或修饰元素的某些部分,如 ::before, ::after,常用于插入内容或装饰。

属性选择器

根据元素的属性及属性值来选择元素,如 [type="text"] 选择所有type属性为text的输入元素。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        [type="button"] {
            background-color: pink;
        }
    </style>
</head>
<body>
    <input type="button" value="按钮">
</body>
</html>

在这里插入图片描述

六、选择器优先级

看下图,你发现了什么?

在这里插入图片描述

  • 内联样式:直接在HTML元素的style属性中定义的样式具有最高优先级,优先级记为1000。

  • ID选择器:以#开头的选择器,优先级为100。

  • 类选择器、属性选择器、伪类选择器:包括.class、[attribute=value]、:hover等,优先级为10。

  • 标签选择器、伪元素选择器:如div、p、:before、:after等,优先级为1。

  • 通配符选择器、关系选择器、否定选择器:优先级更低,一般不在优先级直接比较的讨论范围内,但在实际计算中也有其位置。

  • 继承的样式:没有直接指定,通过父元素传递的样式,优先级最低。

  • 重要声明 (!important):任何声明,如果在其值后加上!important,这个声明将拥有最高优先级,覆盖所有其他优先级,但应谨慎使用,因为它会破坏样式的可维护性。

总结

重要声明 (!important) > 内嵌 > ID > 类选择器、属性选择器、伪类选择器 > 标签选择器、伪元素选择器

六、CSS属性

CSS属性及其值非常繁多,下面我列出一些主要属性分类及其代表性的属性和属性值。

1. 字体与文本属性

  • font-family: 定义字体系列,例如 "Arial", sans-serif.
  • font-size: 设置字体大小,例如 16px, 1.5em, 100%.
  • font-weight: 字体粗细,例如 normal, bold, 100900.
  • color: 文本颜色,例如 red, #ff0000, rgb(255, 0, 0).
  • text-align: 文本对齐方式,例如 left, center, right, justify.
  • line-height: 行间距,例如 1.5, normal.

2. 背景属性

  • background-color: 背景色,例如 #333, rgb(51, 51, 51).
  • background-image: 背景图片路径,例如 url('image.jpg').
  • background-repeat: 图片重复方式,例如 repeat, no-repeat, repeat-x.
  • background-position: 图片位置,例如 center, 10px 20px.

3. 尺寸与盒模型属性

  • widthheight: 宽度和高度,例如 auto, 300px, 50%.
  • padding: 内边距,例如 10px 20px 30px 40px (上右下左).
  • margin: 外边距,同上.
  • border: 边框,例如 1px solid #000.

4. 布局与定位

  • display: 显示类型,例如 block, inline, inline-block, flex, grid.
  • position: 定位类型,例如 static, relative, absolute, fixed.
  • top, right, bottom, left: 定位偏移量,例如 10px.

5. 列表样式

  • list-style-type: 列表项标记类型,例如 disc, square, none.
  • list-style-position: 标记位置,例如 inside, outside.

6. 边框与轮廓

  • border-radius: 圆角边框,例如 5px, 20%.
  • box-shadow: 盒阴影,例如 2px 2px 5px rgba(0, 0, 0, 0.3).

7. 文本装饰与效果

  • text-decoration: 文本装饰,例如 underline, overline, none.
  • text-transform: 文本转换,例如 uppercase, lowercase, capitalize.

8. 动画与过渡

  • transition: 过渡效果,例如 all 0.5s ease.
  • animation: 动画,例如 spin 2s linear infinite.

9. 伪类与伪元素

  • :hover: 鼠标悬停状态.
  • ::before, ::after: 在元素之前或之后插入内容.

10. 其他

  • opacity: 不透明度,例如 0.5.
  • visibility: 可见性,例如 visible, hidden.
  • cursor: 鼠标指针形状,例如 pointer, crosshair.

七、盒子模型

盒子模型是一种核心的布局概念,用于描述网页中元素的布局方式。每个HTML元素都可以被视作一个矩形盒子,这个盒子由以下几个部分组成:

在这里插入图片描述

  1. 内容区域(Content)
    这是盒子的核心部分,包含了元素的实际内容,比如文本、图片等。内容区域的大小可以通过widthheight属性来设置。

  2. 内边距(Padding)
    内边距是内容区域与边框之间的空间。它可以帮助增加内容与边框的距离,提升视觉效果。内边距可以分别设置上、右、下、左边距,也可以统一设置,使用padding属性。

  3. 边框(Border)
    边框围绕着内容区域和内边距,提供了元素的边界。边框可以设置样式(solid、dashed、dotted等)、宽度和颜色,使用border属性或其衍生属性(如border-widthborder-styleborder-color)来定义。

  4. 外边距(Margin)
    外边距是盒子与其他元素之间的空白区域,用来控制元素之间的距离。和内边距一样,外边距也可以分别设置上、右、下、左边距,或者统一设置,使用margin属性。

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

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

相关文章

RocketMQ-记一次生产者发送消息存在超时异常

目录 1、背景说明 2、排查 2.1、防火墙 2.2、超时时间设置 2.3、服务器资源检查 2.3.1、内存、CPU等 2.3.2、磁盘空间 ​编辑 2.3.3、检查文件描述符 2.3.4、swap区 3、增加swap空间 3.1、创建目录 3.2、格式化 3.3、启动swap 3.4、查看效果 1、背景说明 在一次…

Harbor 不同模块作用以及持久化数据大小建议

目录 1. Harbor 组件1.1 Registry (Harbor Registry)1.2 Database (PostgreSQL)1.3 Jobservice1.4 Chartmuseum1.5 Redis1.6 Trivy 2. 示例 values.yaml3. 总结 搭建环境 使用 NFS 作为持久化存储使用 Helm 在 k8s 上进行搭建 在使用 Helm 安装 Harbor 并配置持久化存储时&am…

ai assistant激活成功后,如何使用

ai assistant激活成功后&#xff0c;如图 ai assistant渠道&#xff1a;https://web.52shizhan.cn/activity/ai-assistant 在去年五月份的 Google I/O 2023 上&#xff0c;Google 为 Android Studio 推出了 Studio Bot 功能&#xff0c;使用了谷歌编码基础模型 Codey,Codey 是…

Redis-数据类型-zset

文章目录 1、查看redis是否启动2、通过客户端连接redis3、切换到db4数据库4、将一个或多个member元素及其score值加入到有序集key当中5、升序返回有序集key6、升序返回有序集key&#xff0c;让分数一起和值返回的结果集7、降序返回有序集key&#xff0c;让分数一起和值返回到结…

海外仓系统有哪些模块:WMS海外仓系统完整功能清单

虽然说现在市面上的海外仓系统非常多&#xff0c;各有特色&#xff0c;不过在功能模块的设计上&#xff0c;其实殊途同归&#xff0c;只是各有侧重点而已。 作为海外仓企业&#xff0c;想选择一套适合自己的WMS海外仓系统&#xff0c;首先就要了解系统标准的功能模块都有什么。…

Typora v1.8.6解锁版安装教程 (轻便简洁的Markdown编辑器)

前言 Typora是一款轻便简洁的Markdown编辑器&#xff0c;支持即时渲染技术&#xff0c;这也是与其他Markdown编辑器最显著的区别。即时渲染使得你写Markdown就想是写Word文档一样流畅自如&#xff0c;不像其他编辑器的有编辑栏和显示栏。 一、下载地址 下载链接&#xff1a;…

Redis单例部署

目录 1. 概述2. 参考3. 环境4. 部署4.1 操作系统4.1.1 修改系统参数4.1.2 关闭透明大页内存4.1.3 修改系统限制 4.2 安装Redis4.2.1 下载Redis4.2.2 创建redis账号4.2.3 添加Redis环境变量4.2.4 创建Redis使用目录4.2.5 安装Redis4.2.6 手动修改配置文件&#xff08;**可跳过&a…

2025天津数控机床展(天津工业展)

2025第21届天津工博会—机床展 时间&#xff1a;2025年3月6-9日 地点&#xff1a;国家会展中心&#xff08;天津&#xff09; 达成交易&#xff0c;是我们唯一的追求&#xff01; Dealing Is Our Top Pursuit. 主办单位 振威会展集团 中国机械工业联合会 中国国际贸易促…

名称申请不了商标,可以受保护不!

前几天个网友说要申请注册个商标名称&#xff0c;发来名称让普推商标知产老杨帮忙检索了下&#xff0c;发现有同名的被驳回&#xff0c;而且是做过驳回复审被驳回&#xff0c;而且是绝对理由驳回的&#xff0c;易使消费者对商品的品质等特点产生误认&#xff0c;不得作为商标使…

如何开发一个项目脚手架cli

目录 背景正文unbuildpromptsprogresskolorist 设置打包命令npm execnpxnpm init/ npm create/ npm innit 使用最后 背景 随着团队项目类型越来越多&#xff0c;方便后续快速去开发项目&#xff0c;会出现各种类型的项目模版项目。 这样开发只需要通过脚手架选择自己需要的项目…

数据采集之二主一从,485总线共享器

产品概述 485总线共享器示意图 功能示意图 DAQ-GP-485HUB是上海数采物联网推出的一款 RS485总线多路复用共享数据处理器&#xff0c;是一款高性能的通讯设备&#xff0c;专门针对两台主机和 一台从机通讯时导致的数据冲突而设计。在实际工业控制和监控场景中&#xff0c;多个主…

Java宝藏实验资源库(3)类

一、实验目的 理解面向对象程序的基本概念。掌握类的继承的实现机制。熟悉类中成员的访问控制方法。熟悉ArrayList类的使用。 二、实验内容、过程及结果 *9.5Programming Exerc ise the GregorianCal endar class) Java API has the GregorianCalendar class in the java. uti…

算法008:四数之合

四数之和. - 备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/4sum/description/ 在前面的两个题中&#xff0c;我们已经完成了两数之和和三数之和&#xff0c;到本题四…

基于51单片机的函数信号发生器

基于51单片机函数信号发生器 &#xff08;仿真&#xff0b;程序&#xff0b;原理图&#xff0b;设计报告&#xff09; 功能介绍 具体功能&#xff1a; 1.LCD1602液晶显示波形种类和频率值&#xff08;10-100HZ&#xff09;&#xff1b; 2.按键设置波形种类和设定频率步进值…

Notepad++插件 Hex-Edit

Nptepad有个Hex文件查看器&#xff0c;苦于每次打开文件需要手动开插件显示Hex&#xff0c;配置一下插件便可实现打开即调用 关联多个二进制文件&#xff0c;一打开就使用插件的方法&#xff0c;原来是使用空格分割&#xff01;&#xff01;&#xff01;

螺蛳粉店外卖配送小程序商城的效果为何

螺蛳粉是广西地区的特色美食&#xff0c;在当地有着大量实体餐饮店或品牌商&#xff0c;其单品消费率非常高&#xff0c;在外地也不乏自创品牌或加盟店等&#xff0c;其特殊的味道及吸引力也同样复购率高&#xff0c;客户除了线下到店外&#xff0c;也会购买袋/桶装螺蛳粉到家自…

【无线感知】【P4】无线感知手势识别- WIFI 感知边界

前言&#xff1a; 这篇是北大2022 在Ubicomp 上面的论文 《placement Matters&#xff1a; understanding the Effects of Device placements for WiFi Sensing》 放置很重要&#xff1a;了解设备放置对WiFi传感的影响 目录&#xff1a; 简介 感知质量定义&#xff08;SSNR…

Bayanay:一款基于Python开发的无线网络安全研究工具

关于Bayanay Bayanay是一款基于纯Python开发的无线网络安全研究工具&#xff0c;在该工具的帮助下&#xff0c;无论你身处何地&#xff0c;都可以轻松地对周围地区的无线网络安全状况进行研究与分析。 该工具可以通过使用HTML5的地理位置定位功能并结合Scapy获取到的SSID信息…

Flutter ffi Failed to lookup symbol

iOS release版本&#xff0c;解决方式参考官方文档&#xff1a;在 iOS 中使用 dart:ffi 调用本地代码 如果debug版本也报这个错误&#xff0c;很可能是有多个.c文件&#xff0c;编译的时候没带上&#xff01; 假设你的ffi模块名字是 c_lib 对于Android端&#xff0c;需要修改…

Node.js中基于node-schedule实现定时任务之详解

文章目录 一、定时任务二、node-schedule、1、安装2、引入3、基于Cron表达式的规则4、基于Date的规则5、基于RecurrenceRule的规则6、API7、状态监听 一、定时任务 实际工作中&#xff0c;可能会遇到定时清除某个文件夹内容&#xff0c;定时发送消息或发送邮件给指定用户&…