前端速通(CSS)

1.CSS介绍

1.什么是CSS?

CSS(Cascading Style Sheets,层叠样式表)是一种用于控制网页的外观和布局的样式表语言。它与HTML(超文本标记语言)紧密配合,负责页面元素的样式定义,如字体、颜色、尺寸、排版和布局等。

总之,HTML负责网页的结构和内容,而CSS则负责网页的视觉展示,使网页更加美观和易于使用。

CSS的基本功能:
  1. 定义样式:CSS通过定义样式规则,控制网页上各个HTML元素的外观。样式规则可以包括颜色、字体、边距、相似、背景、位置、大小等属性。

  2. 布局管理:CSS可以控制元素在页面上的位置和布局,包括使用传统的盒模型(box model)、弹性布局(flexbox)和网格布局(grid)等技术。

  3. 响应式设计:通过CSS媒体查询(媒体查询),可以根据不同设备的屏幕大小、分辨率等条件,调整网页布局和样式,以实现适应各种设备(如手机、平板、桌面)的响应式设计。

  4. 视觉效果:CSS支持多种动画效果和过渡效果,可以为网页元素添加动态效果,提高用户体验。

CSS的核心概念:
  • 选择器:用于选择要应用样式的HTML元素。常见的选择器有标签选择器(如h1p)、类选择器(如.class-name)和ID选择器(如#id-name)。

  • 属性和属性值:CSS规则由属性和属性值组成。属性指定要应用的样式效果,而属性值则定义具体的样式(如颜色、大小等)。例如,color: red;就是一个CSS属性值对,表示文本颜色为红色。

  • 继承规则:当多个样式规则作用于同一个元素时,CSS会根据一定的优先级规则(优先顺序)来决定最终的样式。优先级规则通常由选择器的具体性(speciality)和声明的来源(如内部联样式、外部样式表等)来决定。

为什么要使用CSS?
  • 分离结构和样式:利用CSS将网页的内容(HTML)和样式(CSS)分离,使得网页的结构更清晰、维护更方便。
  • 提高页面加载速度:CSS文件通常是外部链接的,通过缓存技术,减少每次页面加载速度重复下载样式,提升页面加载。
  • 增强可维护性和可复用性:通过集中管理样式,简化代码,使得样式的维护更加方便,多个页面可以共享同一个CSS文件,达到代码复用的效果。

2.CSS基本语法规范

1. CSS规则架构

CSS的核心构成是选择器声明,一个CSS规则由这几个部分组成:

  • 选择器selector):指定要应用样式的HTML元素。
  • 声明declaration):指定该元素的样式。每个声明由一个属性和一个属性值组成。

注意:

• CSS要写到style标签中(后⾯还会介绍其他写法)

• style标签可以放到⻚⾯任意位置.⼀般放到head标签内.

• CSS使⽤/**/作为注释.(使⽤ctrl+/快速切换).

•CSS中,空格和换行字符的使用不会影响规则的解析,但为了提高代码的可执行性,通常会使用适当的缩进和换行。

2 引⼊⽅式

CSS有3种引⼊⽅式,语法如下表格所⽰:

3种引⼊⽅式对⽐:

1. 行内样式(Inline CSS)

内联样式等于CSS规则直接写在HTML元素的style属性中。这种方式的优先级最高,但不推荐大规模项目,因为它使得HTML和CSS代码混杂,不易维护。

2. 内部样式表(Internal CSS)

内部修改样式表只需将CSS规则写在HTML文档的<style>标签中,通常放在<head>部分。这种方式适用于单个HTML页面,需要多个元素样式时比较方便。

3.外部样式表(External CSS)

外部样式表将CSS代码写在单独的.css文件中,并通过<link>标签将其引入到HTML文件中。外部样式表是最常用的方式,特别是当你需要多个HTML页面共享同一个样式时。一种具有良好的可维护性的方式,可以由团队协作开发。

3.CSS样式书写规范

1.缩进与格式

  • 使用空格符号制表符(Tab)进行缩进。通常建议使用两个空格进行缩进。
  • 每个声明块的开头和结尾都要使用大逗号{}
  • 声明和属性值之间用冒号:分隔,属性值后面空白。
  • 每条声明以分号;结束,即使是最后一条声明。

2.命名约定

  • 选择器命名:采用有意义且描述性的名称,避免使用过少或模糊的类名或ID名。
    • 类名通常使用小写字母,多个单词之间使用连字符-分隔(如.button-primary)。
    • ID名通常也使用小写字母,但由于ID的唯一性,适当的简短命名也可以接受的(如#header#footer)。
    • 避免使用过多的警告类别,保持选择器的疑虑很简单。

3.声明顺序

  • 布局相关的属性放在一起,通常先设置displaypositiontopleftwidthheight等布局属性。
  • 窗体的相关属性放在一起,如colorbackgroundborderfonttext等。
  • 其他的辅助属性,如transitionbox-shadowopacity等放在最后。

4.避免使用!important

尽量避免使用!important,它会打破CSS的覆盖规则,降低代码的可性。只有在极特殊的情况下,才可以使用维护!important来覆盖特定样式。


5.使用空格和换行

  • 在大逗号{}内部使用空格来增加区别性,避免写成一行。
  • 在规则之间使用换行,使每个选择器/规则块之间有适当的间隔。

6..代码

  • 避免不必要的选择器和样式,避免重复定义相同的样式。
  • 如果多个元素的样式相同,使用组合选择器来简化代码。

4 CSS选择器

CSS选择器的主要功能就是选中⻚⾯指定的标签元素.选中了元素,才可以设置元素的属性

. 就好⽐SC2,War3这样的游戏,需要先选中单位,再指挥该单位⾏动.

CSS选择器主要分以下⼏种:

1. 标签选择器

2. class选择器

3. id选择器

4. 复合选择器

5. 通配符选择器

1.元素选择器(标签选择器)

首表:

元素选择器直接通过HTML标签名称来选择元素。

这个规则将所有<p>元素的文本颜色设置为绿色。

2.类选择器(Class Selector)

类选择器通过HTML选择元素的class属性来选择元素,类选择器以.开始。

• ⼀个类可以被多个标签使⽤,⼀个标签也能使⽤多个类(多个类名要使⽤空格分割,这种做法可以让 代码更好复⽤)

3. ID选择器(ID Selector)

ID选择器通过HTML元素的id属性来选择元素,ID选择器以#开始。每个页面的ID应该是唯一的。


• id是唯⼀的,不能被多个标签使⽤(是和类选择器最⼤的区别)

4.后代选择器(Descendant Selector)

子代选择器通过空格来选中一个元素内部的所有子元素(不管深度)。

所有在<div>元素内部的<p>元素都会变成红色。

1. 以上三个标签选择器ul li a 中的任意,都可以替换成类选择器,或者id选择器,可以是任意选 择器的组合,也可以是任意数量选择器的组合

2. 不⼀定是相邻的标签,也可以是"孙⼦"标签

3. 如果需要选择多种标签,可以使⽤ , 分割,如p, div { } 表⽰同时选中p标签和div标签. 逗号前后可以是以上任意选择器,也可以是选择器的组合.

5.通配符选择器(Universal Selector)

通配符选择器*选择页面上的所有元素。

3 常用的CSS样式介绍

1.颜色和背景:colorbackground-color

color用于设置文本的颜色的属性

background-color属性用于设置元素的背景颜色,常见于设置网页或特定元素的背景颜色。

常见单位:

  • 颜色名称:如redbluegreenblack等。
  • 十六(HEX):如#FF5733#000000(表示黑色)。
  • RGB:如rgb(255, 0, 0),表示红色。
  • RGBA:如rgba(255, 0, 0, 0.5),红色,且间隙为50%。
  • HSL:如hsl(0, 100%, 50%),表示红色。
  • HSLA:如hsla(0, 100%, 50%, 0.5),红色,且间隙为50%。

2 字体大小(font-size

font-size属性用于设置文本的大小。可以使用多种单位来表示字体大小。

常见单位:
  • px(像素):绝对单位
  • em:相对于父元素的字体大小
  • rem:相对于根元素的字体大小
  • %:相对于父元素的字体大小
  • vwvh:相对于视窗宽度和高度的百分比

3.边框(border)

border是一个简写属性,用于设置元素的所有已知(上、右、下、左)的宽度样式颜色

边框 ( border-width)

border-width用于设置身高的宽度,通常使用以下单位:

  • px:像素(常见的单位)
  • em:相对于元素字体的宽度
  • rem:相对于根元素的字体宽度
2.边框样式 ( border-style)

border-style用于定义未知的样式。常见的未知样式包括:

  • solid:实线边框
  • dashed:虚线边框
  • dotted:点状线边框
  • double:双线边框
  • none:没有边框
  • hidden:隐藏未知(仅用于表格元素)

4.宽度和高度(widthheight

width属性定义了元素的宽度,它可以概括所有可见元素(如divimgbutton等)

height属性定义了元素的高度。分子widthheight也可以使用像素、粒子、视口单位等单位来设置。

5. 内边距(padding)

padding常见的单位解释如下:

  • px:像素单位,用于精确控制内边距的大小。
  • %:百分比,通常相对于元素的宽度计算内边距的大小。例如,padding: 10%令内边距占元素宽度的10%。
  • em:相对于元素的字体大小。例如,如果字体大小是16px,则1em等于16px。
  • rem:相对于根元素(通常是<html>标签)的字体大小。
2.padding的简写和下一步设置
初始值:

当只设置一个值时,表示四个方向的内边距都相同:

div { padding: 20px; /* 四个方向的内边距都是 20px */ }
两个值:

当设置两个值时,第一个值表示垂直方向(上和下)的内边距,第二个值表示水平方向(左和右)的内边距:

div { padding: 10px 20px; /* 上下内边距为 10px,左右内边距为 20px */ }
三个值:

当设置三个值时,第一个值表示上边的内边距,第二个值表示左右方向的第三个内边距,第一个值表示下边的内边距:

div { padding: 10px 20px 30px; /* 上 10px,左右 20px,下 30px */ }
四个值:

当设置四个值时,分别表示上、右、下、左四个方向的内边距:

div { padding: 10px 20px 30px 40px; /* 上 10px,右 20px,下 30px,左 40px */ }
3.设置每个方向的内边距

你也可以单独为每个边设置内边距,使用padding-toppadding-rightpadding-bottompadding-left来分别指定方向的内边距:

div {
    padding-top: 10px;
    padding-right: 20px;
    padding-bottom: 30px;
    padding-left: 40px;
}

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

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

相关文章

Android 13 编译Android Studio版本的Launcher3

Android 13 Aosp源码 源码版本 Android Studio版本 Launcher3QuickStepLib (主要代码) Launcher3ResLib(主要资源) Launcher3IconLoaderLib(图片加载&#xff0c;冲突资源单独新建) 需要值得注意的是&#xff1a; SystemUISharedLib.jar 有kotlin和java下的&#xff0c;在 Lau…

idea添加版权信息

1、添加Copyright Profiles 打开Settings -> Editor -> Copyright -> Copyright Profiles -> 新增 Copyright (c) 【你的版权信息】 【开始年份】-${today.year}. All rights reserved.如&#xff1a; Copyright (c) by cwp 2024-${today.year}. All rights rese…

【计算机网络】多路转接之poll

poll也是一种linux中的多路转接方案(poll也是只负责IO过程中的"等") 解决&#xff1a;1.select的fd有上限的问题&#xff1b;2.每次调用都要重新设置关心的fd 一、poll的使用 int poll(struct pollfd *fds, nfds_t nfds, int timeout); ① struct pollfd *fds&…

【C语言】深入剖析 C 语言中数组与指针的紧密联系及高效应用

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C语言 文章目录 &#x1f4af;前言&#x1f4af;例一&#xff1a;指针偏移遍历数组1.1 代码回顾1.2 代码分析1.3 理论扩展&#xff1a;数组与指针的关系1.4 数组与指针的应用场景 &#x1f4af;例二&#xff1a;自定义…

基于SpringBoot的数据结构系统设计与实现(源码+定制+开发)

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…

算法训练-双指针

双指针 leetcode392. 判断子序列 法一&#xff1a;动态规划 法二&#xff1a;双指针 leetcode876. 链表的中间结点 法一&#xff1a;链表数组 法二&#xff1a;快慢指针 leetcode160. 相交链表 法一&#xff1a;双指针 leetcode167. 两数之和 II - 输入有序数组 法一&…

零基础学指针(上)

系列文章目录 &#x1f388; &#x1f388; 我的CSDN主页:OTWOL的主页&#xff0c;欢迎&#xff01;&#xff01;&#xff01;&#x1f44b;&#x1f3fc;&#x1f44b;&#x1f3fc; &#x1f389;&#x1f389;我的C语言初阶合集&#xff1a;C语言初阶合集&#xff0c;希望能…

shell编程之sed

sed 是一种流编辑器&#xff0c;它是文本处理中非常有用的工具&#xff0c;能够完美的配合正则表达式使用&#xff0c;处理时&#xff0c;把当前处理的行存储在临时缓冲区中&#xff0c;称为模式空间&#xff0c;接着用sed 命令处理缓冲区中的内容&#xff0c;处理完成 后&…

一文学习开源框架OkHttp

OkHttp 是一个开源项目。它由 Square 开发并维护&#xff0c;是一个现代化、功能强大的网络请求库&#xff0c;主要用于与 RESTful API 交互或执行网络通信操作。它是 Android 和 Java 开发中非常流行的 HTTP 客户端&#xff0c;具有高效、可靠、可扩展的特点。 核心特点 高效…

多目标优化算法:多目标极光优化算法(MOPLO)求解ZDT1、ZDT2、ZDT3、ZDT4、ZDT6,提供完整MATLAB代码

一、极光优化算法 极光优化算法&#xff08;Polar Lights Optimization, PLO&#xff09;是2024年提出的一种新型的元启发式优化算法&#xff0c;它从极光这一自然现象中汲取灵感。极光是由太阳风中的带电粒子在地球磁场的作用下&#xff0c;与地球大气层中的气体分子碰撞而产…

【贪心算法第二弹——2208.将数组和减半的最小操作数】

1.题目解析 题目来源 2208.将数组和减半的最小操作数——力扣 测试用例 2.算法原理(贪心策略) 3.实战代码 class Solution { public:int halveArray(vector<int>& nums) {priority_queue<double> hash;double sum 0.0;for(auto e : nums){hash.push(e);sum …

2024最新python使用yt-dlp

2024最新python使用yt-dlp下载YT视频 1.获取yt的cookie1&#xff09;google浏览器下载Get cookies.txt LOCALLY插件2&#xff09;导出cookie 2.yt-dlp下载[yt-dlp的GitHub地址](https://github.com/yt-dlp/yt-dlp?tabreadme-ov-file)1&#xff09;使用Pycharm(2024.3)进行代码…

深入理解下oracle 11g block组成

深层次说&#xff0c;oracle数据库的最少组成单位应该是块&#xff0c;一般默认情况下&#xff0c;oracle数据库的块大小是8kb&#xff0c;其中存储着我们平常所需的数据。我们在使用过程中&#xff0c;难免会疑问道&#xff1a;“oracle数据块中到底是怎样组成的&#xff0c;平…

2024年12月Gesp七级备考知识点拾遗第一期(图的定义及遍历)

目录 总序言 知识点拾遗​编辑 度数 环 二叉树 图的遍历 深度优先 广度优先 连通与强连通 有什么不同 构成分别至少需要几条边&#xff08;易错题&#xff09;&#xff1f; 无向连通图 有向强连通图 完全图 什么是完全图 无向完全图最少边数 有向完全图最少边…

家庭智慧工程师:如何通过科技提升家居生活质量

在今天的数字化时代&#xff0c;家居生活已经不再只是简单的“住”的地方。随着物联网&#xff08;IoT&#xff09;、人工智能&#xff08;AI&#xff09;以及自动化技术的快速发展&#xff0c;越来越多的家庭开始拥抱智慧家居技术&#xff0c;将他们的家变得更加智能化、便捷和…

图像处理实验报告

实验一 图像处理的MATLAB基础 实验目的&#xff1a;熟悉数字图象处理的基本软件工具和操作 实验内容&#xff1a;Matlab应用复习&#xff0c;矩阵产生、操作&#xff1b;矩阵运算以及字符运算。 1.利用增量产生向量[0,2,4,6,8,10]。 2.利用magic(n)函数产生7维魔鬼矩阵A&am…

SpringBoot+SpringCloud面试题整理附答案

什么是SpringBoot&#xff1f; 1、用来简化spring初始搭建和开发过程使用特定的方式进行配置(properties或者yml文件) 2、创建独立的spring引用程序main方法运行 3、嵌入Tomcat无需部署war包&#xff0c;直接打成jar包nohup java -jar – & 启动就好 4、简化了maven的配置 …

Linux之管道,system V的共享内存,消息队列和信号量

Linux之管道&#xff0c;systemV共享内存和信号量 一.进程间通信1.1进程间通信的目的1.2进程间通信的方式 二.管道2.1管道的概念2.2匿名管道2.3命名管道 三.system V3.1共享内存3.2消息队列3.3信号量 一.进程间通信 在我们之前有关Linux指令的学习时我们使用过“|”这个命令&a…

Figma入门-基本操作制作登录页

Figma入门-基本操作制作登录页 前言 在之前的工作中&#xff0c;大家的原型图都是使用 Axure 制作的&#xff0c;印象中 Figma 一直是个专业设计软件。 最近&#xff0c;很多产品朋友告诉我&#xff0c;很多原型图都开始用Figma制作了&#xff0c;并且很多组件都是内置的&am…

Django实现智能问答助手-数据库方式读取问题和答案

扩展 增加问答数据库&#xff0c;通过 Django Admin 添加问题和答案。实现更复杂的问答逻辑&#xff0c;比如使用自然语言处理&#xff08;NLP&#xff09;库。使用前端框架&#xff08;如 Bootstrap&#xff09;增强用户界面 1.注册模型到 Django Admin&#xff08;admin.py…