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 代码臃肿且难以维护

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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

doris:基于 Arrow Flight SQL 的高速数据传输链路

Doris 基于 Arrow Flight SQL 协议实现了高速数据链路&#xff0c;支持多种语言使用 SQL 从 Doris 高速读取大批量数据。 用途​ 从 Doris 加载大批量数据到其他组件&#xff0c;如 Python/Java/Spark/Flink&#xff0c;可以使用基于 Arrow Flight SQL 的 ADBC/JDBC 替代过去…

Gitee图形界面上传(详细步骤)

目录 1.软件安装 2.安装顺序 3.创建仓库 4.克隆远程仓库到本地电脑 提交代码的三板斧 1.软件安装 Git - Downloads (git-scm.com) Download – TortoiseGit – Windows Shell Interface to Git 2.安装顺序 1. 首先安装git-2.33.1-64-bit.exe&#xff0c;顺序不能搞错2. …

用公网服务代理到本地电脑笔记

参考&#xff1a; 利用frp 穿透到内网的http/https网站&#xff0c;实现对外开放&#xff08;这篇博客有点老&#xff0c;需要改动&#xff0c;不能照抄&#xff09;&#xff1a;https://www.cnblogs.com/hahaha111122222/p/8509150.html frp内网穿透(windows和服务器)&#xf…

(leetcode算法题)384. 打乱数组 398. 随机数索引

问题转化&#xff1a; 题目要求将nums中的数字出现的次序随机打乱 转化成&#xff1a;对于 0 号位置来说&#xff0c;nums[i], ..., nums[n - 1] 可以等概率的出现 ... && ... && 对于 n - 1号位置来说&#xff0c;nums[i], ..., nums[n - 1] 可以等概率的出…

Redis - 5 ( 18000 字 Redis 入门级教程 )

一&#xff1a; 补充知识 1.1 渐进式遍历 Redis 使用 scan 命令以渐进式方式遍历键&#xff0c;避免了直接使用 keys 命令可能引发的阻塞问题。scan 的时间复杂度为 O(1)&#xff0c;但需要多次执行才能完成对所有键的遍历&#xff0c;整个过程分步进行&#xff0c;有效减少阻…

22408操作系统期末速成/复习(考研0基础上手)

第一部分:计算题&#xff1a; 考察范围&#xff1a;&#xff08;标红的是重点考&#xff09; 第一章&#xff1a;CPU利用率&#xff1a; 第二章&#xff1a; 进程调度算法&#xff08;需要注意不同调度算法的优先级和题目中给出的是否可以抢占【分为可抢占和不可抢占&#xff…

AI在电子制造中的应用:预测质量控制

一、 电子制造中存在的质量问题 电子制造过程中&#xff0c;由于生产工艺复杂、材料种类繁多、生产环境要求高等因素&#xff0c;可能会出现各种质量问题。 常见质量问题如下&#xff1a; 1. 空焊 原因&#xff1a;锡膏活性较弱、钢网开孔不佳、铜铂间距过大或大铜贴小元件、…

如何通过API实现淘宝商品评论数据抓取?item_review获取淘宝商品评论

前几天一个好朋友要我帮忙抓一下淘宝商品的评论数据&#xff0c;获取淘宝评论数据可以帮忙商家们做好市场调研&#xff0c;对自己的产品进行升级&#xff0c;从而更好地获取市场。我将详细爬取方法封装成API&#xff0c;以供方便调用。 item_review-获得淘宝商品评论 响应示例…

springboot550乐乐农产品销售系统(论文+源码)_kaic

摘 要 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统乐乐农产品销售系统信息管理难度大&#xff0c;容错率低&…

百度贴吧的ip属地什么意思?怎么看ip属地

在数字化时代&#xff0c;IP地址不仅是网络设备的唯一标识符&#xff0c;更承载着用户的网络身份与位置信息。百度贴吧作为广受欢迎的社交平台&#xff0c;也遵循相关规定&#xff0c;在用户个人主页等位置展示账号IP属地信息。那么&#xff0c;百度贴吧的IP属地究竟意味着什么…

[读书日志]从零开始学习Chisel 第一篇:书籍介绍,Scala与Chisel概述,Scala安装运行(敏捷硬件开发语言Chisel与数字系统设计)

简介&#xff1a;从20世纪90年代开始&#xff0c;利用硬件描述语言和综合技术设计实现复杂数字系统的方法已经在集成电路设计领域得到普及。随着集成电路集成度的不断提高&#xff0c;传统硬件描述语言和设计方法的开发效率低下的问题越来越明显。近年来逐渐崭露头角的敏捷化设…

element-plus大版本一样,但是小版本不一样导致页面出bug

npm 的版本 node的版本 npm的源这些都一样&#xff0c;但是效果不一样 发现是element的包版本不一样导致的 2.9.1与2.8.1的源是不一样的&#xff0c;导致页面出bug;

【网络协议】开放式最短路径优先协议OSPF详解(一)

OSPF 是为取代 RIP 而开发的一种无类别的链路状态路由协议&#xff0c;它通过使用区域划分以实现更好的可扩展性。 文章目录 链路状态路由协议OSPF 的工作原理OSPF 数据包类型Dijkstra算法、管理距离与度量值OSPF的管理距离OSPF的度量值 链路状态路由协议的优势拓扑结构路由器O…

《数据结构》期末考试测试题【中】

《数据结构》期末考试测试题【中】 21.循环队列队空的判断条件为&#xff1f;22. 单链表的存储密度比1&#xff1f;23.单链表的那些操作的效率受链表长度的影响&#xff1f;24.顺序表中某元素的地址为&#xff1f;25.m叉树第K层的结点数为&#xff1f;26. 在双向循环链表某节点…

华为数通考试模拟真题(附带答案解析)题库领取

【多选题】 管理员想要更新华为路由器的VRP版本&#xff0c;则正确的方法有? A管理员把路由器配置为FTP服务器&#xff0c;通过FTP来传输VRP软件 B:管理员把路由器置为FTP客户端&#xff0c;通过FTP来传输VRP软件 C:管理员把路由器配置为TFTP客户端&#xff0c;通过TFTP来传…

Linux:操作系统不朽的传说

操作系统是计算机的灵魂&#xff0c;它掌控着计算机的硬件和软件资源&#xff0c;为用户和应用程序提供了一个稳定、高效、安全的运行环境。 在众多操作系统中&#xff0c;Linux 的地位举足轻重。它被广泛应用于服务器、云计算、物联网、嵌入式设备等领域。Linux 的成功离不开…

前端(API)学习笔记(CLASS 4):进阶

1、日期对象 日期对象&#xff1a;用来表示事件的对象 作用&#xff1a;可以得到当前系统时间 1、实例化 在代码中发现了new关键字&#xff0c;一般将这个操作称为实例化 创建一个时间对象并获取时间 获得当前时间 const datenew Date() 使用日志查看&#xff0c;得到的…

【USRP】教程:在Macos M1(Apple芯片)上安装UHD驱动(最正确的安装方法)

Apple芯片 前言安装Homebrew安装uhd安装gnuradio使用b200mini安装好的路径下载固件后续启动频谱仪功能启动 gnu radio关于博主 前言 请参考本文进行安装&#xff0c;好多人买了Apple芯片的电脑&#xff0c;这种情况下&#xff0c;可以使用UHD吗&#xff1f;答案是肯定的&#…

SAP 01-初识AMDP(ABAP-Managed Database Procedure)

1. 什么是AMDP(ABAP-Managed Database Procedure) 1.&#xff09;AMDP - ABAP管理数据库程序&#xff0c;是一种程序&#xff0c;我们可以使用SQLSCRIPT在AMDP内部编写代码&#xff0c;SQLSCRIPT是一种与SQL脚本相同的数据库语言&#xff0c;这种语言易于理解和编码。 将AM…

智能客户服务:科技如何重塑客户服务体验

在数字化时代&#xff0c;客户对于服务的需求和期望在不断演变。传统的客户服务模式已经难以满足现代消费者对于即时性、个性化和高效性的追求。随着人工智能、大数据、云计算等先进技术的蓬勃发展&#xff0c;智能客户服务应运而生&#xff0c;不仅重塑了客户服务的体验&#…