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.mzph.cn/pingmian/66298.shtml

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

相关文章

pycharm完成git项目的拉取及修改,并保存为自己的项目,以cosyvoice为例

1.新建一个项目&#xff0c;如图 等待几分钟。因为还要虚拟环境的建立等。 2.克隆项目源码及提前准备&#xff08;备&#xff09; a.git的路径。 b.githube相关设置 左角。查看。 在对话框中&#xff0c;填写要摘取的仓库&#xff0c;提示非空目录。我给加了一个main 完成后&a…

Appium(一)--- 环境搭建

一、Android自动化环境搭建 1、JDK 必须1.8及以上(1) 安装&#xff1a;默认安装(2) 环境变量配置新建JAVA_HOME:安装路径新建CLASSPath%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar在path中增加&#xff1a;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin&#xff1b;(3) 验证…

Ant Design中Flex布局、Grid布局和Layout布局详解

好的&#xff0c;我们来更详细地探讨 Ant Design 中的 Flex布局、Grid布局 和 Layout布局 的特点、用法、适用场景&#xff0c;以及如何灵活运用它们来构建页面。下面将从各个方面进行更深入的分析&#xff0c;并提供具体的实例。 VueFlex布局实现响应式布局 1. Flex布局 概念…

Redis两种主要的持久化方式是什么?

Redis支持两种主要的持久化方式&#xff0c;它们分别是RDB&#xff08;Redis Database Snapshotting&#xff09;和AOF&#xff08;Append Only File&#xff09;。以下是这两种持久化方式的详细介绍&#xff1a; 一、RDB&#xff08;Redis Database Snapshotting&#xff09; …

flink cdc oceanbase(binlog模式)

接上文&#xff1a;一文说清flink从编码到部署上线 环境&#xff1a;①操作系统&#xff1a;阿里龙蜥 7.9&#xff08;平替CentOS7.9&#xff09;&#xff1b;②CPU&#xff1a;x86&#xff1b;③用户&#xff1a;root。 预研初衷&#xff1a;现在很多项目有国产化的要求&#…

C++文件流 例题

问题&#xff1a; 设计一个留言类&#xff0c;实现以下的功能&#xff1a; 1) 程序第一次运行时&#xff0c;建立一个 message.txt 文本文件&#xff0c;并把用户输入的信息存入该文件&#xff1b; 2) 以后每次运行时&#xff0c;都先读取该文件的内容并显示给用户&#xff…

遮挡半透明效果

1、遮挡半透明效果是什么 在游戏开发中&#xff0c;遮挡半透明效果就是物体被挡住的部分&#xff0c;也能呈现出一种半透明效果而被看到&#xff08;具体效果可以自定义&#xff09;比如 当角色在建筑物之间穿行时&#xff0c;被遮挡部分能够呈现出半透明效果而被我们看到。遮…

大模型高效推理综述

大模型高效推理综述 1 Introduction2 Preliminaries2.1 transformer架构的LLM2.2 大模型推理过程2.3 推理效率分析 3 TAXONOMY(分类)4.数据级别优化4.1输入压缩4.1.1 提示词裁剪&#xff08;prompt pruning&#xff09;4.1.2 提示词总结&#xff08;prompt summary&#xff09;…

计算机网络--UDP和TCP课后习题

【5-05】 试举例说明有些应用程序愿意采用不可靠的UDP, 而不愿意采用可靠的TCP。 解答&#xff1a; 这可能有以下几种情况。 首先&#xff0c;在互联网上传输实时数据的分组时&#xff0c;有可能会出现差错甚至丢失。如果利用 TCP 协议对这些出错或丢失的分组进行重传&…

Go语言的基础知识

1, Go 语言介绍 Go 即 Golang,是 Google公司2009年11月正式对外公开的一门编程语言。 根据 Go 语言开发者自述&#xff0c;近10多年&#xff0c;从单机时代的C语言到现在互联网时代的Java,都没有令人满意的开发语言&#xff0c;而C往往给人的感觉是&#xff0c;花了100%的经历…

【UE5 C++课程系列笔记】20——共享指针的简单使用

目录 概念 创建共享指针示例 重设共享指针 共享指针内容转移 共享指针和共享引用的转换 判断共享指针的相等性 共享指针访问成员函数 自定义删除器 概念 共享指针&#xff08;主要以 TSharedPtr 为例&#xff09;&#xff0c;TSharedPtr 基于引用计数机制来工作&#x…

flux中的缓存

1. cache&#xff0c;onBackpressureBuffer。都是缓存。cache可以将hot流的数据缓存起来。onBackpressureBuffer也是缓存&#xff0c;但是当下游消费者的处理速度比上游生产者慢时&#xff0c;上游生产的数据会被暂时存储在缓冲区中&#xff0c;防止丢失。 2. Flux.range 默认…

Ubuntu网络连接问题(笔记本更换wifi后,虚拟机连不上网络)

1、笔记本更换wifi后&#xff0c;虚拟机的IP地址变了&#xff0c;然后就连不上网络了&#xff08;主机笔记本连接wifi正常上网&#xff09; 2、修改子网地址&#xff08;按照ubutun的ip设置子网掩码&#xff09; 3、Ubuntu已经显示网络连接正常了&#xff0c;但是就是无法上网&…

如何在 Ubuntu 22.04 上安装 Cassandra NoSQL 数据库教程

简介 本教程将向你介绍如何在 Ubuntu 22.04 上安装 Cassandra NoSQL 数据库。 Apache Cassandra 是一个分布式的 NoSQL 数据库&#xff0c;旨在处理跨多个普通服务器的大量数据&#xff0c;并提供高可用性&#xff0c;没有单点故障。Apache Cassandra 是一个高度可扩展的分布…

Spring MVC实战指南:构建高效Web应用的架构与技巧(三)

响应数据和结果视图(7种) 返回值分类 创建web.xml&#xff08;spring、过滤器解决乱码、配置控制器dispatcherServlet、加载springmvc.xml文件、配置启动加载&#xff09;创建springmvc.xml文件 <!--配置了内容&#xff0c;启动Tomcat服务器的时候&#xff0c;就会被加载--…

oscp备考 oscp系列——Kioptix Level 1靶场 古老的 Apache Vuln

目录 前言 1. 主机发现 2. 端口扫描 3. 指纹识别 4. 目录扫描 5. 漏洞搜索和利用 前言 oscp备考&#xff0c;oscp系列——Kioptix Level 1靶场 Kioptix Level 1难度为简单靶场&#xff0c;主要考察 nmap的使用已经是否会看输出&#xff0c;以及是否会通过应用查找对应漏…

Linux下编译安装PETSc

本文记录在Linux下编译安装PETSc的流程。 零、环境 操作系统Ubuntu 22.04.4 LTSVS Code1.92.1Git2.34.1GCC11.4.0CMake3.22.1oneAPI2024.2.1 一、安装依赖 1.1 安装oneAPI 参见&#xff1a;Get the Intel oneAPI Base Toolkit , Get the Intel oneAPI HPC Toolkit 1.2 安…

深入Android架构(从线程到AIDL)_11 线程之间的通信架构

目录 5、 线程之间的通信架构 认识Looper与Handler对象 主线程丢信息给自己 子线程丢信息给主线程 替子线程诞生Looper与MQ 5、 线程之间的通信架构 认识Looper与Handler对象 当主线程诞生时&#xff0c;就会去执行一个代码循环(Looper)&#xff0c;以便持续监视它的信息…

【中间件】docker+kafka单节点部署---zookeeper模式

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言消息中间件介绍1. KRaft模式2. zookeeper模式2.1. 单节点部署安装验证 前言 最近生产环境上准备部署ELFK日志监控&#xff0c;先在测试环境部署单节点kafka验证…

AI-Talk开发板之超拟人

一、说明 运行duomotai_ap sdk下的LLM_chat例程&#xff0c;实现开发板和超拟人大模型进行语音交互&#xff0c;支持单轮和多轮交互。 二、SDK更新 v2.3.0及以上的SDK版本才支持超拟人&#xff0c;如果当前SDK在v2.3.o以下&#xff0c;需要更新SDK。在SDK目录(duomotai_ap)下…