30分钟学会css

CSS 基本语法

CSS(Cascading Style Sheets)是一种样式表语言,用于描述 HTML(或 XML)文档的呈现。它可以控制网页元素的颜色、字体、布局等外观样式,实现内容与表现的分离,让网页设计更加灵活和高效。

在线体验一下 CSS 在线编辑器。

千万不要被「样式表」、「语言」吓到,CSS 的语法也很直观,常用的规则结构并不复杂,用于日常网页美化绰绰有余,花一点时间就能建立基本概念。

就是这些基本的规则结构,却能让人优雅地控制网页的呈现,专注于样式设计而不是混淆内容结构,达到“心中有版,落笔生花”的境界。

CSS 选择器语法

要为 HTML 元素添加样式,首先需要选中这些元素。CSS 使用选择器来定位要应用样式的 HTML 元素。

CSS 语法作用示例
element选择所有指定的 HTML 元素p { color: blue; }
.class选择带有指定 class 属性的所有 HTML 元素.highlight { font-weight: bold; }
#id选择带有指定 id 属性的 HTML 元素#header { background-color: #eee; }
*选择文档中的所有 HTML 元素* { margin: 0; padding: 0; }
element, element选择所有指定的 HTML 元素 (分组选择)h1, h2 { color: green; }
element element选择指定元素内的所有指定后代元素div p { font-size: 16px; }
element > element选择指定父元素下的直接子元素ul > li { list-style-type: none; }
element + element选择紧接在指定元素后的同级元素h2 + p { text-indent: 2em; }
element ~ element选择指定元素后的所有同级元素h2 ~ p { color: gray; }
[attribute]选择带有指定属性的 HTML 元素a[target] { text-decoration: none; }
[attribute=value]选择带有指定属性和值的 HTML 元素input[type="text"] { border: 1px solid black; }
[attribute~=value]选择属性值包含指定词的元素a[class~="button"] { padding: 5px; }
`[attribute=value]`选择属性值以指定值开头的元素
element:pseudo-class选择指定元素的特殊状态a:hover { color: red; }
element::pseudo-element选择指定元素的某个部分p::first-line { font-weight: bold; }

可选语法 (无直接对应,此处强调选择器多样性)

CSS 的选择器机制非常强大,除了上述基本类型,还有更复杂的选择器组合和伪类/伪元素可以使用,以更精确地定位元素。

最佳实践

为了代码的可读性和维护性,建议使用语义化的 class 名称,避免过度使用 ID 选择器,并合理利用选择器的优先级规则。

✅ Do this❌ Don’t do this
.product-title { ... }#productTitle { ... } (除非必要)
.btn-primary { ... }.button1 { ... } (语义不明确)

CSS 属性与值

选中元素后,就可以使用 CSS 属性来设置元素的样式。每个属性都有一个或多个值,用于指定属性的具体表现。

CSS 语法HTML (无直接对应,描述作用)预览效果 (描述性)
color: blue;设置文本颜色为蓝色文本显示为蓝色
font-size: 16px;设置字体大小为 16 像素文本显示为 16 像素大小
background-color: #f0f0f0;设置背景颜色为浅灰色元素背景显示为浅灰色
width: 100px;设置元素宽度为 100 像素元素宽度为 100 像素
height: auto;设置元素高度为自动元素高度根据内容自动调整
margin: 10px;设置元素外边距为 10 像素元素周围有 10 像素的空白
padding: 5px;设置元素内边距为 5 像素元素内容与边框之间有 5 像素的空白
border: 1px solid black;设置边框为 1 像素实线黑色元素有 1 像素的黑色实线边框
text-align: center;设置文本居中对齐元素内的文本居中显示
display: block;设置元素为块级元素元素独占一行,可以设置宽高
display: inline;设置元素为行内元素元素与其他行内元素共享一行,无法设置宽高
display: inline-block;设置元素为行内块级元素元素像行内元素一样排列,但可以设置宽高

属性(Property)用法的最佳实践

合理使用 CSS 属性,遵循语义化原则,避免过度使用行内样式,并使用简写属性来提高效率。

✅ Do this❌ Don’t do this
margin: 10px 20px; (上下 10px,左右 20px)margin-top: 10px; margin-bottom: 10px; margin-left: 20px; margin-right: 20px;
使用外部 CSS 文件大量使用行内样式 (<p style="...">)

CSS 常用单位

在 CSS 中,许多属性值需要指定单位。常见的单位包括像素 (px)、百分比 (%)、em、rem 等。

CSS 单位说明示例
px像素,绝对单位,在不同设备上大小固定font-size: 16px;
%百分比,相对于父元素的尺寸width: 50%;
em相对单位,相对于当前元素的字体大小padding: 2em;
rem相对单位,相对于根元素 (html) 的字体大小font-size: 1.2rem;
vw视口宽度 (viewport width) 的百分比width: 50vw;
vh视口高度 (viewport height) 的百分比height: 100vh;
vmin视口宽度和高度中较小者的百分比max-width: 80vmin;
vmax视口宽度和高度中较大者的百分比max-height: 90vmax;
pt磅,绝对单位,主要用于打印font-size: 12pt;
pc派卡,绝对单位,1pc = 12ptfont-size: 1pc;
in英寸,绝对单位width: 1in;
cm厘米,绝对单位width: 2.54cm;
mm毫米,绝对单位width: 10mm;

单位(Unit)用法的最佳实践

在网页设计中,推荐使用相对单位(如 em、rem、%)来实现页面的响应式布局和更好的用户体验。rem 通常用于设置字体大小,而 % 则常用于设置宽度和高度。

✅ Do this❌ Don’t do this
font-size: 1rem;font-size: 16px; (不利于用户调整字体)
width: 100%;width: 960px; (可能在小屏幕上溢出)

CSS 颜色表示

CSS 提供了多种表示颜色的方式。

CSS 语法HTML (无直接对应)预览效果 (描述性)
color: blue;使用预定义的颜色名称文本显示为蓝色
color: #0000FF;使用十六进制颜色值文本显示为蓝色
color: #00F;使用三位十六进制简写文本显示为蓝色
color: rgb(0, 0, 255);使用 RGB 函数文本显示为蓝色
color: rgba(0, 0, 255, 0.5);使用 RGBA 函数 (带透明度)文本显示为半透明的蓝色
color: hsl(240, 100%, 50%);使用 HSL 函数文本显示为蓝色
color: hsla(240, 100%, 50%, 0.5);使用 HSLA 函数 (带透明度)文本显示为半透明的蓝色

颜色(Color)用法的最佳实践

根据具体需求选择合适的颜色表示方法。十六进制颜色值常用于精确的颜色定义,而 RGBA 和 HSLA 则适用于需要透明度的场景。

✅ Do this❌ Don’t do this
background-color: rgba(0, 0, 0, 0.8);background-color: black; opacity: 0.8; (可能影响子元素)
使用有意义的颜色变量在代码中硬编码大量的颜色值

CSS 注释

CSS 注释用于在样式表中添加说明,不会被浏览器解析。

/* 这是一行 CSS 注释 */

/*
 * 这是一个
 * 多行 CSS 注释
 */

注释(Comment)用法的最佳实践

编写清晰的 CSS 注释,解释代码的作用和意图,提高代码的可读性和可维护性。

✅ Do this❌ Don’t do this
/* 设置导航栏的样式 *//* 样式 */ (过于简单,没有提供足够的信息)
/* 修复了在 IE 浏览器下的显示问题 */避免在注释中包含不友好的或攻击性的言论

CSS 盒模型

CSS 盒模型描述了 HTML 元素周围生成的矩形盒子。它由内容 (content)、内边距 (padding)、边框 (border) 和外边距 (margin) 组成。

+-----------------+
|     Margin      |  外边距
+-----------------+
|    Border       |  边框
+-----------------+
|    Padding      |  内边距
+-----------------+
|    Content      |  内容
+-----------------+

盒模型(Box Model)用法的最佳实践

理解盒模型对于进行网页布局至关重要。可以通过调整 box-sizing 属性来改变盒模型的计算方式,更方便地控制元素的尺寸。

✅ Do this❌ Don’t do this
使用 box-sizing: border-box;混淆 content-box 和 border-box 的计算方式
合理设置 margin 和 padding 来控制间距过度依赖 margin 或 padding 来实现布局

CSS 优先级与继承

当多个 CSS 规则应用于同一个 HTML 元素时,浏览器会根据优先级规则来确定最终应用的样式。继承是指某些 CSS 属性会从父元素传递到子元素。

优先级由高到低:

  1. 内联样式 (HTML 元素中的 style 属性)
  2. ID 选择器 (#id)
  3. 类选择器 (.class)、属性选择器 ([attribute])、伪类选择器 (:hover)
  4. 元素选择器 (element)、伪元素选择器 (::before)
  5. 通配符选择器 (*)
  6. 浏览器默认样式

优先级与继承用法的最佳实践

理解 CSS 的优先级和继承机制,可以避免样式冲突,并编写更简洁、可维护的 CSS 代码。

✅ Do this❌ Don’t do this
合理利用选择器的优先级来覆盖样式过度使用 !important 来提升优先级 (除非必要)
充分利用 CSS 的继承特性,减少重复代码在每个元素上重复设置相同的样式

CSS 引入方式

CSS 可以通过三种方式引入到 HTML 文档中:

  1. 内联样式: 直接在 HTML 元素的 style 属性中定义样式。
    <p style="color: red;">这段文字是红色的。</p>
    
  2. 内部样式表: 在 HTML 文档的 <head> 标签中使用 <style> 标签定义样式。
    <head>
      <style>
        p { color: blue; }
      </style>
    </head>
    
  3. 外部样式表: 将 CSS 样式定义在一个单独的 .css 文件中,然后在 HTML 文档的 <head> 标签中使用 <link> 标签引入。
    <head>
      <link rel="stylesheet" href="style.css">
    </head>
    

引入方式(Include)用法的最佳实践

推荐使用外部样式表来组织 CSS 代码,实现内容与样式的完全分离,提高代码的可维护性和可复用性。

✅ Do this❌ Don’t do this
使用外部 CSS 文件在多个 HTML 文件中重复编写相同的内部样式表
少量、局部的样式可以使用内联样式大量使用内联样式,导致 HTML 代码臃肿且难以维护

掌握这些简单的规则结构,你就能优雅地控制网页的呈现,专注于样式设计而不是混淆内容结构,达到“心中有版,落笔生花”的境界。

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

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

相关文章

lec7-路由与路由器

lec7-路由与路由器 1. 路由器硬件 路由器的硬件部分&#xff1a; 断电失去&#xff1a; RAM断电不失去&#xff1a;NVRAM&#xff0c; Flash&#xff0c; ROMinterface也算是一部分 路由器是特殊组件的计算机 console 口进行具体的调试 辅助口&#xff08;Auxiliary&…

spring防止重复点击,两种注解实现(AOP)

第一种&#xff1a;EasyLock 简介 为了简化可复用注解&#xff0c;自己实现的注解&#xff0c;代码简单随拿随用 使用方式 1.创建一个注解 Target(ElementType.METHOD) Retention(RetentionPolicy.RUNTIME) Documented public interface EasyLock {long waitTime() default …

Linux-Ubuntu之I2C通信

Linux-Ubuntu之I2C通信 一&#xff0c;I2C通信原理1.写时序2.读时序 二&#xff0c;代码实现三&#xff0c;显示 一&#xff0c;I2C通信原理 使用I2C接口驱动AP3216C传感器&#xff0c;该传感器能实现两个效果&#xff0c;一个是感应光强&#xff0c;另一个是探测物体与传感器…

音视频入门基础:MPEG2-PS专题(4)——FFmpeg源码中,判断某文件是否为PS文件的实现

一、引言 通过FFmpeg命令&#xff1a; ./ffmpeg -i XXX.ps 可以判断出某个文件是否为PS文件&#xff1a; 所以FFmpeg是怎样判断出某个文件是否为PS文件呢&#xff1f;它内部其实是通过mpegps_probe函数来判断的。从《FFmpeg源码&#xff1a;av_probe_input_format3函数和AVI…

框架模块说明 #09 日志模块_01

背景 日志模块是系统的重要组成部分&#xff0c;主要负责记录系统运行状态和定位错误问题的功能。通常&#xff0c;日志分为系统日志、操作日志和安全日志三类。虽然分布式数据平台是当前微服务架构中的重要部分&#xff0c;但本文的重点并不在此&#xff0c;而是聚焦于自定义…

【数据仓库】hadoop3.3.6 安装配置

文章目录 概述下载解压安装伪分布式模式配置hdfs配置hadoop-env.shssh免密登录模式设置初始化HDFS启动hdfs配置yarn启动yarn 概述 该文档是基于hadoop3.2.2版本升级到hadoop3.3.6版本&#xff0c;所以有些配置&#xff0c;是可以不用做的&#xff0c;下面仅记录新增操作&#…

算法题(25):只出现一次的数字(三)

审题&#xff1a; 该题中有两个元素只出现一次并且其他元素都出现两次&#xff0c;需要返回这两个只出现一次的数&#xff0c;并且不要求返回顺序 思路: 由于对空间复杂度有要求&#xff0c;我们这里不考虑哈希表。我们采用位运算的方法解题 方法&#xff1a;位运算 首先&#…

将机器学习预测模型融入AI agent的尝试(一)

将机器学习临床预测模型融入AI agent的尝试&#xff08;一&#xff09; 我主要是使用机器学习制作临床预测模型和相关的应用&#xff0c;最近考虑的事情是自己之前的的工作能不能和AI agent进行融合&#xff0c;将AI 对自然语言理解能力和预测模型的预测能力结合在一起&#x…

51单片机——按键实验

由于机械点的弹性作用&#xff0c;按键开关在闭合时不会马上稳定的接通&#xff0c;在断开时也不会一下子断开&#xff0c;因而在闭合和断开的瞬间均伴随着一连串的抖动。抖动时间的长短由按键的机械特性决定的&#xff0c;一般为 5ms 到 10ms&#xff0c;为了确保 CPU 对按键的…

电子邮件对网络安全的需求

&#xff08; 1&#xff09;机密性&#xff1a;传输过程中不被第三方阅读到邮件内容&#xff0c;只有真正的接收方才可以阅读邮件。&#xff08; 1.5 分&#xff09; &#xff08; 2&#xff09;完整性&#xff1a;支持在邮件传输过程中不被篡改&#xff0c;若发生篡改&#…

vue路由模式面试题

vue路由模式 1.路由的模式有哪些?有什么区别? history和hash模式 区别: 1.表现的形态不同: 在地址栏url中:hash模式中带有**#**号,history没有 2.请求错误时表现不同: 在hash模式中,对于404地址请求时,不会进行请求 但是在history模式中,对于404请求时,仍然会进行请求…

电子应用设计方案86:智能 AI背景墙系统设计

智能 AI 背景墙系统设计 一、引言 智能 AI 背景墙系统旨在为用户创造一个动态、个性化且具有交互性的空间装饰体验&#xff0c;通过融合先进的技术和创意设计&#xff0c;提升室内环境的美观度和功能性。 二、系统概述 1. 系统目标 - 提供多种主题和风格的背景墙显示效果&…

Python爬虫 - 豆瓣图书数据爬取、处理与存储

文章目录 前言一、使用版本二、需求分析1. 分析要爬取的内容1.1 分析要爬取的单个图书信息1.2 爬取步骤1.2.1 爬取豆瓣图书标签分类页面1.2.2 爬取分类页面1.2.3 爬取单个图书页面 1.3 内容所在的标签定位 2. 数据用途2.1 基础分析2.2 高级分析 3. 应对反爬机制的策略3.1 使用 …

西安电子科技大学初/复试笔试、面试、机试成绩占比

西安电子科技大学初/复试笔试、面试、机试成绩占比 01通信工程学院 02电子工程学院 03计算机科学与技术学院 04机电工程学院 06经济与管理学院 07数学与统计学院 08人文学院 09外国语学院 12生命科学与技术学院 13空间科学与技术学院 14先进材料与纳米科技学院 15网络与信息安…

多模态论文笔记——CogVLM和CogVLM2(副)

大家好&#xff0c;这里是好评笔记&#xff0c;公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本文详细介绍多模态模型的LoRA版本——CogVLM和CogVLM2。在SD 3中使用其作为captioner基准模型的原因和优势。 文章目录 CogVLM论文背景VLMs 的任务与挑战现有方法及…

智慧工地信息管理与智能预警平台

建设背景与政策导向 智慧工地信息管理与智能预警平台的出现&#xff0c;源于工地管理面临的诸多挑战&#xff0c;如施工地点分散、危险区域多、监控手段落后等。随着政府对建筑产业现代化的积极推动&#xff0c;各地纷纷出台政策支持智慧工地的发展&#xff0c;旨在通过信息技…

【从零开始入门unity游戏开发之——C#篇42】C#补充知识——随机数(Random)、多种方法实现string字符串拼接、语句的简写

文章目录 一、随机数1、Random.Next()生成随机整数示例&#xff1a;生成一个随机整数生成指定范围内的随机整数 2、Random.NextSingle生成随机浮点数示例&#xff1a;生成随机浮点数 3、 生成随机字母或字符示例&#xff1a;生成随机字母示例&#xff1a;生成随机小写字母 二、…

「Mac畅玩鸿蒙与硬件54」UI互动应用篇31 - 滑动解锁屏幕功能

本篇教程将实现滑动解锁屏幕功能&#xff0c;通过 Slider 组件实现滑动操作&#xff0c;学习事件监听、状态更新和交互逻辑的实现方法。 关键词 滑动解锁UI交互状态管理动态更新事件监听 一、功能说明 滑动解锁屏幕功能包含以下功能&#xff1a; 滑动解锁区域&#xff1a;用…

VScode SSH 错误:Got bad result from install script 解決

之前vscode好好的&#xff0c;某天突然连接报错如下 尝试1. 服务器没有断开,ssh可以正常连接 2. 用管理员权限运行vscode&#xff0c;无效 3. 删除服务器上的~/.vscode-server 文件夹&#xff0c;无效 试过很多后&#xff0c;原来很可能是前一天anaconda卸载导致注册表项 步…

[论文笔记]Representation Learning with Contrastive Predictive Coding

引言 今天带来论文 Representation Learning with Contrastive Predictive Coding的笔记。 提出了一种通用的无监督学习方法从高维数据中提取有用表示&#xff0c;称为对比预测编码(Contrastive Predictive Coding,CPC)。使用了一种概率对比损失&#xff0c; 通过使用负采样使…