【CSS】网页美学的魔法画笔

简介: 本文介绍了CSS的基本概念及其在网页设计中的应用,详细讲解了CSS的三种引入方式(行内样式、内部样式、外部样式)和CSS选择器(标签选择器、类选择器、ID选择器、通配符选择器、复合选择器)。此外,还列举了一些常用的CSS样式属性,如颜色(color)、字体大小(font-size)、边框(border)、宽度/高度(width/height)以及内边距和外边距(padding和margin),并通过实例代码展示了这些样式的具体使用方法。

CSS 用于定义网页的样式,包括字体、颜色、布局、背景等各个方面。它与 HTML 紧密结合,HTML 负责构建网页的结构,而 CSS 则负责美化这个结构。

1. 三种引入方式

1.1. 行内样式

直接在标签内引用 style 属性

<body>
    <span style="color: red;">你好</span>
</body>

1.2. 内部样式

使用<style> 标签,在标签内部定义 css 样式

<style>
        p{
            color: rgb(4, 0, 255);
        }
    
    </style>
    <p>hello1</p>
    <p style="color: aqua;">hello2</p>
    <span style="color: red;">你好</span>

这里用到了选择器,标签 p 里的内容会被修改为 style 标签里的样式,如果直接在 p 标签里指定了样式后,会优先使用此时指定的样式

1.3. 外部样式

定义 <link> 标签,通过 href 属性引用外部 css 文件

把 css 样式设置代码单独存放在一个文件中

html 文件中的 head 标签中引入 link 标签:

<link rel="stylesheet" href="test1.css">

2. CSS 选择器

CSS 选择器的主要功能就是选中页面指定的标签元素,选中了元素之后才可以设置属性,CSS 的选择器有:标签选择器,class 选择器,id 选择器,复合选择器,通配符选择器

2.1. 标签选择器

上面用的 p 标签就是标签选择器

直接以标签名字开头

p {
    color: rgb(4, 0, 255);
}
span {
    color: rgb(255, 0, 0);
}
<p>hello1</p>
    <p>hello2</p>
    <span >你好</span>

2.2. class 选择器

上面的话是把所有的相同的标签进行了样式设定,但是不能设置的再细一点,例如每个 p 标签都设置为不同的样式,所以就引入了 class 选择器

class 选择器以 ' . ' 开头

.red {
  color: red;
}
.blue {
  color: blue;
}
.green { 
  color: green;
}
<body>
    <p class="red">hello1</p>
    <p class="blue">hello2</p>
    <span class="green">你好</span>
</body>

2.3. id 选择器

id 选择器以 “#” 开头,后面紧跟元素的 id 名称,当多个选择器同时作用于一个元素时,id 选择器的优先级通常高于类选择器和标签选择器。

规范:每个 id 值应该是唯一的,但是也可以多个元素具有相同的 id ,不过可能发生混乱

#aaa {
  color: greenyellow;
}
<div>
        <ul>
            <li id="aaa">aaa</li>
            <li>bbb</li>
        </ul>
        <ol>
            <li>111</li>
            <li>222</li>
        </ol>
    </div>

2.4. 通配符选择器

通配符选择器是只写一个 * 表示全部,也就是全部内容都会被选中

* {
  color: red;
}
<body>
    <p>你好</p>
    <span>你好</span>
    <div>你好</div>
</body>

2.5. 复合选择器

复合选择器是由多个单选择器组合的,根据单选择器之间的分隔符号来表示不同的复合效果

  1. 空格:表示后代
<div>
        <ul>
            <li id="aaa">aaa</li>
            <li>bbb</li>
        </ul>
        <ol>
            <li>111</li>
            <li>222</li>
        </ol>
    </div>

也可以直接找下一级后代

<ul>
    <li id="aaa">aaa</li>
    <li class="c1"><a href="#">li 里的超链接</a></li>
</ul>
ul a {
  color: green;
}

  1. 没空格:表示交集
p.red {
  color: red;
}
<p class="red">hello1</p>
<p class="blue">hello2</p>

  1. 逗号:表示并集
.red,.blue {
  font-size: 20px;
}

  1. >:表示相邻后代,就不能像空格那样直接可以跨几个后代
ul>li {
  color: red;
}

3. 常用的几种样式

3.1. color

color:颜色,有下面的几种表示:

  1. 英文单词,如 red ,blue
  2. rgb 代码的颜色,如 rgb(255,0,0)
  3. hsl 代码的颜色,如 hsl(0, 100%, 50%)
  4. 十六进制的颜色,如 #ff00ff

3.2. font-size

font-size:字体大小

单位有 px, pt, em, rem, %

3.3. border

border:边框

样式

说明

取值

border-width

设置边框粗细

数值

border-style

设置边框样式

dotted : 点状 solid 实线

double : 双线 dashed: 虚线

border-color

设置边框颜⾊

同 color

3.4. width / height

width / height:设置宽高

只有块级元素可以设置宽高,对应的是行内元素,常见的块级元素有:h1 - h6 ,p ,div 等,常见的块级元素有 a ,span

div {
  height: 60px;
  width: 100px;
  border: 1px red solid;
}
span {
  width: 100px;
  height: 20px;
  border: 1px red solid;
};
<div>你好</div>
    <span>你好</span>

可以看出 div 生效了,span 并没有生效

通过 display : block 可以改成块级元素,display : inline 改成行内元素

div {
  height: 60px;
  width: 100px;
  border: 1px red solid;
}
span {
  display: block;
  width: 100px;
  height: 20px;
  border: 1px red solid;
};

3.5. padding 和 margin

padding:内边距

margin:外边距

内边距和外边距都是相对于来说的,比如 A 相对于 B 的内边距是 10 ,那么可能就是 A 相对于 C 的外边距是 10

div {
  height: 60px;
  width: 100px;
  border: 1px red solid;
  margin: 20px;
}

如果说这两个框都设置了外边距,那么就按照边距最大的那个来设置,并不会是相加关系

也可以调 html 标签的内边距

html{
  padding: 200px;
}
相关文章
|
1天前
|
编解码 Java 程序员
写代码还有专业的编程显示器?
写代码已经十个年头了, 一直都是习惯直接用一台Mac电脑写代码 偶尔接一个显示器, 但是可能因为公司配的显示器不怎么样, 还要接转接头 搞得桌面杂乱无章,分辨率也低,感觉屏幕还是Mac自带的看着舒服
|
3天前
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
1540 5
|
1月前
|
弹性计算 人工智能 架构师
阿里云携手Altair共拓云上工业仿真新机遇
2024年9月12日,「2024 Altair 技术大会杭州站」成功召开,阿里云弹性计算产品运营与生态负责人何川,与Altair中国技术总监赵阳在会上联合发布了最新的“云上CAE一体机”。
阿里云携手Altair共拓云上工业仿真新机遇
|
7天前
|
人工智能 Rust Java
10月更文挑战赛火热启动,坚持热爱坚持创作!
开发者社区10月更文挑战,寻找热爱技术内容创作的你,欢迎来创作!
577 22
|
3天前
|
存储 SQL 关系型数据库
彻底搞懂InnoDB的MVCC多版本并发控制
本文详细介绍了InnoDB存储引擎中的两种并发控制方法:MVCC(多版本并发控制)和LBCC(基于锁的并发控制)。MVCC通过记录版本信息和使用快照读取机制,实现了高并发下的读写操作,而LBCC则通过加锁机制控制并发访问。文章深入探讨了MVCC的工作原理,包括插入、删除、修改流程及查询过程中的快照读取机制。通过多个案例演示了不同隔离级别下MVCC的具体表现,并解释了事务ID的分配和管理方式。最后,对比了四种隔离级别的性能特点,帮助读者理解如何根据具体需求选择合适的隔离级别以优化数据库性能。
201 3
|
10天前
|
JSON 自然语言处理 数据管理
阿里云百炼产品月刊【2024年9月】
阿里云百炼产品月刊【2024年9月】,涵盖本月产品和功能发布、活动,应用实践等内容,帮助您快速了解阿里云百炼产品的最新动态。
阿里云百炼产品月刊【2024年9月】
|
10天前
|
Linux 虚拟化 开发者
一键将CentOs的yum源更换为国内阿里yum源
一键将CentOs的yum源更换为国内阿里yum源
571 5
|
23天前
|
存储 关系型数据库 分布式数据库
GraphRAG:基于PolarDB+通义千问+LangChain的知识图谱+大模型最佳实践
本文介绍了如何使用PolarDB、通义千问和LangChain搭建GraphRAG系统,结合知识图谱和向量检索提升问答质量。通过实例展示了单独使用向量检索和图检索的局限性,并通过图+向量联合搜索增强了问答准确性。PolarDB支持AGE图引擎和pgvector插件,实现图数据和向量数据的统一存储与检索,提升了RAG系统的性能和效果。
|
6天前
|
XML 安全 Java
【Maven】依赖管理,Maven仓库,Maven核心功能
【Maven】依赖管理,Maven仓库,Maven核心功能
233 3
|
9天前
|
存储 人工智能 搜索推荐
数据治理,是时候打破刻板印象了
瓴羊智能数据建设与治理产品Datapin全面升级,可演进扩展的数据架构体系为企业数据治理预留发展空间,推出敏捷版用以解决企业数据量不大但需构建数据的场景问题,基于大模型打造的DataAgent更是为企业用好数据资产提供了便利。
327 2