HTML5与CSS3-程序员宅基地

技术标签: html5  HTML5  前端  css3  

不会大量的详解,因为写出来完全没办法跟W3C和MDN进行对比,所以具体的语法属性还是需要去这两个网站查阅,还可以在网站上编写实时效果

MDN Web Docs (mozilla.org)

CSS前置知识

元素的语义化

  • 元素的语义化:用正确的元素做正确的事情
  • 标签语义化的好处
    • 方便代码维护
    • 减少让开发者之间的沟通成本
    • 能让语音合成工具正确识别网页元素的用途,以便作出正确的反应
    • 有利于SEO

什么是SEO?

  • 搜索引擎优化(英语:search engine optimization,缩写为SEO)是通过了解搜索引擎的运作规则来调整网站,以及提高网站在有关搜索引擎内排名的方式

在这里插入图片描述

认识字符编码

  • 计算机是干什么的?
    • 计算机一开始发明出来时是用来解决数字计算问题的,后来人们发现,计算机还可以做更多的事,例如文本处理。
    • 但计算机其实挺笨的,它只“认识”010110111000…这样由0和1两个数字组成的二进制数字
    • 这是因为计算机的底层硬件实现就是用电路的开和闭两种状态来表示0和1两个数字的
    • 因此,计算机只可以直接存储和处理二进制数字
  • 为了在计算机上也能表示、存储和处理像文字、符号等等之类的字符,就必须将这些字符转换成二进制数字
    • 当然,肯定不是我们想怎么转换就怎么转换,否则就会造成同一段二进制数字在不同计算机上显示出来的字符不一样的情况,因此必须得定一个统一的、标准的转换规则

在这里插入图片描述

  • 字符编码的发展历史可以阅读coderwhy的简书一篇文章:https://www.jianshu.com/p/899e749be47c

邂逅CSS

认识CSS

  • CSS表示层叠样式表(Cascading Style Sheet,简称:CSS,又称为又称串样式列表、级联样式表、串接样式表、阶层式样式表)
    是为网页添加样式的代码

CSS如何编写呢?

在这里插入图片描述

  • 声明(Declaration)一个单独的CSS规则,如 color: red; 用来指定添加的CSS样式。
    • 属性名(Property name):要添加的css规则的名称
    • 属性值(Property value):要添加的css规则的值;

如何将CSS样式应用到元素上?

  • CSS提供了3种方法,可以将CSS样式应用到元素上:
    • 内联样式(inline style)
    • 内部样式表(internal style sheet)、文档样式表(document style sheet)、内嵌样式表(embed style sheet)
    • 外部样式表(external style sheet)

内联样式(inline style)

  • 内联样式(inline style),也有人翻译成行内样式

    • 内联样式表存在于HTML元素的style属性之中

    在这里插入图片描述

  • CSS样式之间用分号;隔开,建议每条CSS样式后面都加上分号;

  • 很多资料不推荐这种写法:

  • 在原生的HTML编写过程中确实这种写法是不推荐的

  • 在Vue的template中某些动态的样式是会使用内联样式的

  • 所以,内联样式的写法依然需要掌握

内部样式表(internal style sheet)

将CSS放在HTML文件元素里的

在这里插入图片描述

  • 在Vue的开发过程中,每个组件也会有一个style元素,和内部样式表非常的相似(原理并不相同)

外部样式表(external style sheet)

  • 外部样式表(external style sheet) 是将css编写一个独立的文件中,并且通过元素引入进来;
  • 使用外部样式表主要分成两个步骤:
    • 第一步:将css样式在一个独立的css文件中编写(后缀名为.css)
    • 第二步:通过元素引入进来

在这里插入图片描述

@import

可以在style元素或者CSS文件中使用@import导入其他的CSS文件

在这里插入图片描述

必须掌握的CSS属性

在这里插入图片描述

CSS属性的官方文档

  • CSS官方文档地址

    • https://www.w3.org/TR/?tag=css
  • CSS推荐文档地址:

  • 由于浏览器版本、CSS版本等问题,查询某些CSS是否可用:

    • 可以到https://caniuse.com/查询CSS属性的可用性;

CSS颜色的表示方法

  • 在CSS中,颜色,有以下几种表示方法:

  • 颜色关键字(color keywords):

    • 是不区分大小写的标识符,它表示一个具体的颜色
    • 可以表示哪些颜色呢?
    • https://developer.mozilla.org/zh-CN/docs/Web/CSS/color_value#%E8%AF%AD%E6%B3%95
  • RGB颜色:

    • RGB是一种色彩空间,通过R(red,红色)、G(green,绿色)、B(blue,蓝色)三原色来组成了不同的颜色

    也就是通过调整这三个颜色不同的比例,可以组合成其他的颜色;

    • RGB各个原色的取值范围是 0~255

RGB的表示方法

  • RGB颜色可以通过以#为前缀的十六进制字符和函数(rgb()、rgba())标记表示

  • 方式一:十六进制符号:#RRGGBB[AA]

    • R(红)、G(绿)、B (蓝)和A (alpha)是十六进制字符(0–9、A–F);A是可选的
    • 比如,#ff0000等价于#ff0000ff
  • 方式二:十六进制符号:#RGB[A]

    • R(红)、G(绿)、B (蓝)和A (alpha)是十六进制字符(0–9、A–F)

    • 三位数符号(#RGB)是六位数形式(#RRGGBB)的减缩版

      比如,#f09和#ff0099表示同一颜色

    • 四位数符号(#RGBA)是八位数形式(#RRGGBBAA)的减缩版

      比如,#0f38和#00ff3388表示相同颜色

在这里插入图片描述

  • 方式三:函数符: rgb[a](R, G, B[, A])
  • R(红)、G(绿)、B (蓝)可以是(数字),或者(百分比),255相当于100%
  • A(alpha)可以是0到1之间的数字,或者百分比,数字1相当于100%(完全不透明)

CSS属性-文本

CSS属性 – text-decoration(常用)

  • text-decoration用于设置文字的装饰线

    • decoration是装饰/装饰品的意思;
  • text-decoration有如下常见取值:

    • none:无任何装饰线

      可以去除a元素默认的下划线

    • underline:下划线

    • overline:上划线

    • line-through:中划线(删除线)

text-transform(一般)

在这里插入图片描述

text-indent(一般)

在这里插入图片描述

text-align(重要)

  • text-align: 直接翻译过来设置文本的对齐方式
  • MDN: 定义行内内容(例如文字)如何相对它的块父元素对齐(但也不是完全准确,如果div里面还有div,对内部块级元素居中不了)

如何解决这个问题:

  • 加上display:inline-block将元素呈递为行内块状元素,同时又保留了块状元素可以设置宽高的特性

  • 既能够设置宽高,又不独自占据一行。

  • 保留上下外边距/内边距。

  • 不添加换行符,因此该元素可以位于其他元素旁边。

  • 内容撑开宽度。

  • 使用margin:0 auto

  • 常用的值

    • left:左对齐
    • right:右对齐
    • center:正中间显示
    • justify:两端对齐
  • W3C中的解释:

    在这里插入图片描述

  • letter-spacing、word-spacing(一般)

    • letter-spacing、word-spacing分别用于设置字母、单词之间的间距。默认是0,可以设置为负数

CSS属性-字体

font-size(重要)

  • font-size决定文字的大小

  • 常用的设置

    • 具体数值+单位(比如100px)

      也可以使用em单位(不推荐):1em代表100%,2em代表200%,0.5em代表50%

    • 百分比

      基于父元素的font-size计算,比如50%表示等于父元素font-size的一半

font-family (重要, 不过一般仅设置一次)

  • font-family用于设置文字的字体名称

    • 可以设置1个或者多个字体名称;

    • 浏览器会选择列表中第一个该计算机上有安装的字体;

    • 或者是通过 @font-face 指定的可以直接下载的字体

      比如你们公司设置了字体,但是用户的电脑上是没有这个字体,显示不了的,那就可以通过加载网页的时候直接将字体一起从网上下载下来使用

font-weight(重要)

  • font-weight用于设置文字的粗细(重量)

  • 常见的取值:

    • **100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 :**每一个数字表示一个重量
    • normal:等于400
    • bold:等于700
  • strong、b、h1~h6等标签的font-weight默认就是bold

font-style(一般)

在这里插入图片描述

font-variant(了解)

在这里插入图片描述

font-variant(了解)

在这里插入图片描述

line-height(常用)

  • line-height用于设置文本的行高
    • 行高可以先简单理解为一行文字所占据的高度

在这里插入图片描述

  • 行高的严格定义是:两行文字基线(baseline)之间的间距
  • 基线(baseline):与小写字母x最底部对齐的线

在这里插入图片描述

  • 注意区分height和line-height的区别
    • height:元素的整体高度
    • line-height:元素中每一行文字所占据的高度
  • 应用实例:假设div中只有一行文字,如何让这行文字在div内部垂直居中
    • 让line-height等同于div的height

在这里插入图片描述

font

  • font是一个缩写属性
    • font 属性可以用来作为 font-style, font-variant, font-weight, font-size, line-height 和 font-family 属性的简写
    • font-style font-variant font-weight font-size/line-height font-family
  • 规则:
    • font-style、font-variant、font-weight可以随意调换顺序,也可以省略
    • /line-height可以省略,如果不省略,必须跟在font-size后面
    • font-size、font-family不可以调换顺序,不可以省略

在这里插入图片描述

CSS常见选择器

CSS选择器(selector)

  • 开发中经常需要找到特定的网页元素进行设置样式
    • 思考:如何找到特定的那个元素?
  • 什么是CSS选择器
    • 按照一定的规则选出符合条件的元素,为之添加CSS样式
  • 选择器的种类繁多,大概可以这么归类
    • 通用选择器(universal selector)
    • 元素选择器(type selectors)
    • 类选择器(class selectors)
    • id选择器(id selectors)
    • 属性选择器(attribute selectors)
    • 组合(combinators)
    • 伪类(pseudo-classes)
    • 伪元素(pseudo-elements)

通用选择器

  • 通用选择器(universal selector)
    • 所有的元素都会被选中;使用*
  • 一般用来给所有元素作一些通用性的设置
    • 比如内边距、外边距;
    • 比如重置一些内容
  • 效率比较低,尽量不要使用

简单选择器

  • 简单选择器是开发中用的最多的选择器:
    • 元素选择器(type selectors), 使用元素的名称;
    • 类选择器(class selectors), 使用 .类名
    • id选择器(id selectors), 使用 #id;

在这里插入图片描述

id注意事项

  • 一个HTML文档里面的id值是唯一的,不能重复
    • id值如果由多个单词组成,单词之间可以用中划线-、下划线_连接,也可以使用驼峰标识
    • 最好不要用标签名作为id值
  • 中划线又叫连字符(hyphen)

在这里插入图片描述

属性选择器(attribute selectors)

  • 拥有某一个属性 [att]
  • 属性等于某个值 [att=val]

在这里插入图片描述
在这里插入图片描述

后代选择器(descendant combinator)

  • 后代选择器一: 所有的后代(直接/间接的后代)
    • 选择器之间以空格分割

在这里插入图片描述

  • 后代选择器二: 直接子代选择器(必须是直接子代)
    • 选择器之间以 > 分割;

在这里插入图片描述

兄弟选择器(sibling combinator)

  • 兄弟选择器一:相邻兄弟选择器
    • 使用符号 + 连接

在这里插入图片描述

  • 兄弟选择器二: 普遍兄弟选择器 ~
    • 使用符号 ~ 连接

在这里插入图片描述

选择器组 – 交集选择器

  • 交集选择器: 需要同时符合两个选择器条件(两个选择器紧密连接)

  • 在开发中通常为了精准的选择某一个元素

如下的div.one,既是一个div也得是一个类名为one的(div和.one之间没有空格,是连着写的)。而不是说div下的one

在这里插入图片描述

  • 并集选择器: 符合一个选择器条件即可(两个选择器以,号分割)
    • 在开发中通常为了给多个元素设置相同的样式;

在这里插入图片描述

认识伪类

  • 什么是伪类呢?
    • Pseudo-classes: 翻译过来是伪类
    • 伪类是选择器的一种,它用于选择处于特定状态的元素;
  • 比如我们经常会实现的: 当手指放在一个元素上时, 显示另外一个颜色

伪类(pseudo-classes)

常见的伪类
动态伪类(dynamic pseudo-classes) :link、:visited、:hover、:active、:focus
目标伪类(target pseudo-classes) :target
语言伪类(language pseudo-classes) :lang( )
元素状态伪类(UI element states pseudo-classes) :enabled、:disabled、:checked
结构伪类(structural pseudo-classes)(后续学习) :nth-child( )、:nth-last-child( )、:nth-of-type( )、:nth-last- >of-type( )
:first-child、:last-child、:first-of-type、:last-of-type
:root、:only-child、:only-of-type、:empty
否定伪类(negation pseudo-classes)(后续学习) :not()
  • 所有的伪类: https://developer.mozilla.org/zh-CN/docs/Web/CSS/Pseudo-classes

动态伪类(dynamic pseudo-classes)

  • 使用举例
a:link 未访问的链接(从来没访问过)
a:visited 已访问的链接(之前有访问过)
a:hover 鼠标挪动到链接上(重要)
a:active 激活的链接(鼠标在链接上长按住未松开)
  • 使用注意

    • :hover必须放在:link和:visited后面才能完全生效
    • :active必须放在:hover后面才能完全生效
    • 所以建议的编写顺序是 :link、:visited、:hover、:active
  • 除了a元素,:hover、:active也能用在其他元素上

动态伪类 - :focus

  • :focus指当前拥有输入焦点的元素(能接收键盘输入)
  • 文本输入框一聚焦后,背景就会变红色(例子)
  • 因为链接a元素可以被键盘的Tab键选中聚焦,所以:focus也适用于a元素
  • 动态伪类编写顺序建议为
    • :link、:visited、:focus、:hover、:active
  • 直接给a元素设置样式,相当于给a元素的所有动态伪类都设置了
    • 相当于a:link、a:visited、a:hover、a:active、a:focus的color都是red

伪元素(pseudo-elements)

  • 常用的伪元素有(推荐使用两个冒号,跟伪类进行区分)
    • :first-line、::first-line
    • :first-letter、::first-letter
    • :before、::before
    • :after、::after
  • 为了区分伪元素和伪类,建议伪元素使用2个冒号,比如::first-line

伪元素 - ::first-line - ::first-letter(了解)

  • ::first-line可以针对首行文本设置属性
  • ::first-letter可以针对首字母设置属性

在这里插入图片描述

伪元素 - ::before和::after(常用)

  • ::before和::after用来在一个元素的内容之前或之后插入其他内容(可以是文字、图片)
    • 常通过 content 属性来为一个元素添加修饰性的内容

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_70037637/article/details/137522607

智能推荐

hdu 1229 还是A+B(水)-程序员宅基地

文章浏览阅读122次。还是A+BTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 24568Accepted Submission(s): 11729Problem Description读入两个小于10000的正整数A和B,计算A+B。...

http客户端Feign——日志配置_feign 日志设置-程序员宅基地

文章浏览阅读419次。HEADERS:在BASIC的基础上,额外记录了请求和响应的头信息。FULL:记录所有请求和响应的明细,包括头信息、请求体、元数据。BASIC:仅记录请求的方法,URL以及响应状态码和执行时间。NONE:不记录任何日志信息,这是默认值。配置Feign日志有两种方式;方式二:java代码实现。注解中声明则代表某服务。方式一:配置文件方式。_feign 日志设置

[转载]将容器管理的持久性 Bean 用于面向服务的体系结构-程序员宅基地

文章浏览阅读155次。将容器管理的持久性 Bean 用于面向服务的体系结构本文将介绍如何使用 IBM WebSphere Process Server 对容器管理的持久性 (CMP) Bean的连接和持久性逻辑加以控制,使其可以存储在非关系数据库..._javax.ejb.objectnotfoundexception: no such entity!

基础java练习题(递归)_java 递归例题-程序员宅基地

文章浏览阅读1.5k次。基础java练习题一、递归实现跳台阶从第一级跳到第n级,有多少种跳法一次可跳一级,也可跳两级。还能跳三级import java.math.BigDecimal;import java.util.Scanner;public class Main{ public static void main(String[]args){ Scanner reader=new Scanner(System.in); while(reader.hasNext()){ _java 递归例题

面向对象程序设计(荣誉)实验一 String_对存储在string数组内的所有以字符‘a’开始并以字符‘e’结尾的单词做加密处理。-程序员宅基地

文章浏览阅读1.5k次,点赞6次,收藏6次。目录1.串应用- 计算一个串的最长的真前后缀题目描述输入输出样例输入样例输出题解2.字符串替换(string)题目描述输入输出样例输入样例输出题解3.可重叠子串 (Ver. I)题目描述输入输出样例输入样例输出题解4.字符串操作(string)题目描述输入输出样例输入样例输出题解1.串应用- 计算一个串的最长的真前后缀题目描述给定一个串,如ABCDAB,则ABCDAB的真前缀有:{ A, AB,ABC, ABCD, ABCDA }ABCDAB的真后缀有:{ B, AB,DAB, CDAB, BCDAB_对存储在string数组内的所有以字符‘a’开始并以字符‘e’结尾的单词做加密处理。

算法设计与问题求解/西安交通大学本科课程MOOC/C_算法设计与问题求解西安交通大学-程序员宅基地

文章浏览阅读68次。西安交通大学/算法设计与问题求解/树与二叉树/MOOC_算法设计与问题求解西安交通大学

随便推点

[Vue warn]: Computed property “totalPrice“ was assigned to but it has no setter._computed property "totalprice" was assigned to but-程序员宅基地

文章浏览阅读1.6k次。问题:在Vue项目中出现如下错误提示:[Vue warn]: Computed property "totalPrice" was assigned to but it has no setter. (found in <Anonymous>)代码:<input v-model="totalPrice"/>原因:v-model命令,因Vue 的双向数据绑定原理 , 会自动操作 totalPrice, 对其进行set 操作而 totalPrice 作为计..._computed property "totalprice" was assigned to but it has no setter.

basic1003-我要通过!13行搞定:也许是全网最奇葩解法_basic 1003 case 1-程序员宅基地

文章浏览阅读60次。十分暴力而简洁的解决方式:读取P和T的位置并自动生成唯一正确答案,将题给测点与之对比,不一样就给我爬!_basic 1003 case 1

服务器浏览war文件,详解将Web项目War包部署到Tomcat服务器基本步骤-程序员宅基地

文章浏览阅读422次。原标题:详解将Web项目War包部署到Tomcat服务器基本步骤详解将Web项目War包部署到Tomcat服务器基本步骤1 War包War包一般是在进行Web开发时,通常是一个网站Project下的所有源码的集合,里面包含前台HTML/CSS/JS的代码,也包含Java的代码。当开发人员在自己的开发机器上调试所有代码并通过后,为了交给测试人员测试和未来进行产品发布,都需要将开发人员的源码打包成Wa..._/opt/bosssoft/war/medical-web.war/web-inf/web.xml of module medical-web.war.

python组成三位无重复数字_python组合无重复三位数的实例-程序员宅基地

文章浏览阅读3k次,点赞3次,收藏13次。# -*- coding: utf-8 -*-# 简述:这里有四个数字,分别是:1、2、3、4#提问:能组成多少个互不相同且无重复数字的三位数?各是多少?def f(n):list=[]count=0for i in range(1,n+1):for j in range(1, n+1):for k in range(1, n+1):if i!=j and j!=k and i!=k:list.a..._python求从0到9任意组合成三位数数字不能重复并输出

ElementUl中的el-table怎样吧0和1改变为男和女_elementui table 性别-程序员宅基地

文章浏览阅读1k次,点赞3次,收藏2次。<el-table-column prop="studentSex" label="性别" :formatter="sex"></el-table-column>然后就在vue的methods中写方法就OK了methods: { sex(row,index){ if(row.studentSex == 1){ return '男'; }else{ return '女'; }..._elementui table 性别

java文件操作之移动文件到指定的目录_java中怎么将pro.txt移动到design_mode_code根目录下-程序员宅基地

文章浏览阅读1.1k次。java文件操作之移动文件到指定的目录_java中怎么将pro.txt移动到design_mode_code根目录下

推荐文章

热门文章

相关标签