整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

网站和应用气质倍增,中国风古典颜色手册,淡雅优美的色彩

本文介绍的是一个非常漂亮的在线古典颜色手册,为程序员和设计师提供中国古典颜色设计提供色彩和灵感,特别是对于一些古典项目非常适合使用它,有了它能为你的网站或者应用提供卓然的气质,对热爱古风的程序员和设计师尤为有用!



Github

https://github.com/zerosoul/chinese-colors



特性

  • 使用 React 构建
  • 支持 PWA


  • 适配移动端展现 (Mobile First)


  • 颜色选中高亮
  • 颜色分类
  • 可复制 HEX
  • 可收藏喜欢的颜色
  • 搭配显示诗词
  • 可生成壁纸/图片卡片,屏幕多大,截图就有多大


涉及技术栈和其他开源项目

  • create-react-app: 大家都在用的 react 项目构建架子
  • react: 最流行的前端 UI 构建语言
  • styled-components: react 中 css 解决方案,CSS-IN-JS 最佳实践
  • eslint + prettier: 为了更好地编码
  • husky + commitlint: 为了更好地 GIT 提交
  • html2canvas
  • pinyin: 汉字转拼音
  • react-copy-to-clipboard: 开启复制功能
  • iconfont.cn: 阿里系的图标库,很丰富,很方便
  • https://www.transparenttextures.com/: 非常好看的纹理背景图
  • 今日诗词

本地开发

常规操作:

克隆到本地:git clone https://github.com/zerosoul/chinese-colors.git
初始化:cd chinese-colors && npm install
运行:npm run start
访问: http://localhost:8099/

截图欣赏

  • 苍色

本类颜色包括苍色、苍翠色、苍黄色、苍青色、苍黑色、苍白色(以下按顺序截图,后续相同)


红色包括粉红色、妃色、品红色、桃红色、海棠红、石榴红、樱桃红、银红色、大红色、绛紫等几十种颜色,此处展示这十色,感兴趣的直达手册


  • 蓝色

蓝色有靛蓝、靛青、碧蓝、蔚蓝、宝蓝、蓝灰、藏青藏蓝等


水色、水红色、水绿色、水蓝色、淡青色、湖蓝、湖绿


  • 黑色

玄色、玄青、乌色、乌黑、漆黑、、墨色、墨灰色、黑色、缁色等


赤金、金色、银白色、老银、乌金、铜绿

总结

以上有你喜欢的颜色么,中国古典颜色确实很漂亮,不管是你的网站主题还是应用主题,配上中国风会很美观、耐看、有气质,有你喜欢的颜色么?

在线体验地址

https://colors.ichuantong.cn/

SS 是自定义网页呈现的语言。它用于添加颜色、背景图像和纹理,以及在页面上排列元素。然而,CSS 不仅仅是绘制漂亮的图片。它还能增强网站的可用性。下图显示了 YouTube 的首页。左边是页面的常规渲染,右边是没有 CSS 的页面。

右侧的图像不仅不那么有趣,而且使用起来也更加困难

在这个简短的指南中,我们将介绍 CSS、演示 CSS 语法、解释 CSS 的工作原理、向您展示如何将 CSS 标记添加到 HTML 文档中,并为您提供来自网络的大量资源,您可以在其中了解有关 CSS 的更多信息。

什么是 CSS?

CSS 代表层叠样式表,它是用于设置网页视觉呈现样式的语言。CSS 是告诉 Web 浏览器如何呈现网页的不同部分的语言。

网页上的每个项目或元素都是以标记语言编写的文档的一部分。在大多数情况下,HTML 虽然是标记语言,但也有其他语言在使用,例如 XML。在本指南中,我们将使用 HTML 来演示 CSS 的实际应用,请记住,如果您使用 XML或不同的标记语言,同样的原则和技术也适用。

CSS 与 HTML 有何不同?

谈到 CSS 提问题时,首先要了解的是何时使用 CSS 等样式语言以及何时使用 HTML 等标记语言。

  • 所有重要的网站内容都应使用 HTML 等标记语言添加到网站。
  • 网站内容的呈现应该由样式语言定义,例如 CSS。

不属于网页演示的博客文章、页面标题、视频、音频和图片都应使用 HTML 添加到网页中。背景图像和颜色、边框、字体大小、排版以及网页上项目的位置都应该由 CSS 定义。

做出这种区分很重要,因为未能使用正确的语言可能会导致将来难以对网站进行更改,并为使用纯文本浏览器或屏幕阅读器的网站访问者造成可访问性和可用性问题。

CSS 语法

CSS 语法包括选择器、属性、值、声明、声明块、规则集、at 规则和语句。

  • 选择器是一个代码片段,用于标识受样式影响的网页元素或元素。
  • 属性是要受影响的元素的方面。例如,颜色、内边距、边距和背景是一些最常用的颜色 CSS 属性。
  • 值用于定义属性。例如,属性颜色可能被赋予红色值,如下所示color: red;
  • 属性的组合称为声明。
  • 在许多情况下,多个声明应用于单个选择器。声明块是用于指代应用于单个选择器的所有声明的术语。
  • 单个选择器和紧随其后的声明块组合称为规则集。
  • At-rules类似于规则集,但以**@符号而不是selector开头。最常见的@media规则是通常用于创建基于查看网页的设备大小应用的 CSS 规则块的规则。
  • 规则集at-rules都是CSS语句。

CSS 语法示例

让我们使用一段 CSS 来阐明这些项目是什么。

h1 { 
    color: red; 
    font-size: 3em; 
    text-decoration: underline; 
    }

在本例中,h1是选择器。选择器后跟一个包含三个声明的声明块。每个声明与下一个声明之间用分号分隔。制表符和换行符是可选的,但大多数开发人员使用它来使 CSS 代码更易于阅读。

通过h1用作选择器,我们是说网页上的每个 1 级标题都应遵循此规则集中包含的声明。

规则集包含三个声明:

  • color:red;
  • font-size: 3em;
  • text-decoration: underline;

colorfont-sizetext-decoration都是性质。您可以使用数百个 CSS 属性,但常用的只有几十个。

我们将值red3emunderline应用于我们使用的属性。每个 CSS 属性都被定义为接受以特定方式格式化的存在。

对于color属性,我们可以使用颜色关键字或 HexRGBHSL 格式的颜色公式。在这种情况下,我们使用了 color 关键字red。CSS3 中有几十个颜色关键字可用,但其他颜色模型可以访问数百万种颜色。

我们将 的值应用于3em属性font-size。我们可以使用多种尺寸单位,包括像素、百分比等

最后,我们将值添加underline到属性text-decoration中。我们也可以使用overlineorline-through作为 的值text-decoration。此外,CSS3 允许使用纯线、双线、点线、虚线和波浪线样式,这些都是文本装饰颜色的规范。我们可以通过使用这样的声明一次应用所有三个值:

text-decoration: blue double underline;

该规则将导致h1我们最初示例中的 用蓝色双线下划线。color文本本身将保持为我们属性中定义的红色。

为样式准备 HTML 标记

CSS 应该用于向网页添加内容。该任务最好由 HTMLXML等标记语言处理。相反,CSS 用于选择网页上已经存在的项目并定义每个项目的显示方式。

为了尽可能容易地选择网页上的项目,应将标识符添加到网页上的元素中。这些标识符,在 CSS 上下文中通常称为钩子,可以更容易地识别应该受 CSS 规则影响的项目。

类和 ID 用作 CSS 样式的挂钩。虽然 CSS 的呈现方式不受使用类和钩子的影响,但它们使开发人员能够精确定位他们希望设置样式的 HTML 元素。

类和 ID 不可互换。知道何时使用它们很重要。

何时使用类

当单个网页上有多个元素需要设置样式时,请使用类。例如,假设您希望页面页眉和页脚中的链接以一致的方式设置样式,但与页面正文中的链接不同。要查明这些链接,您可以为每个链接或包含链接的容器添加一个类。然后,您可以使用该类指定样式,并确保它们仅应用于具有该类属性的链接。

何时使用 ID

对仅在网页上出现一次的元素使用 ID。例如,如果您使用 HTML 无序列表进行站点导航,则可以使用nav等 ID为该列表创建唯一的挂钩。

这是一个用于基本电子商务网站的简单导航栏的 HTMLCSS 代码示例。

<style>
    #nav { 
         background: lightgray; 
         overflow: auto; 
         } 
     #nav li {
         float: left; 
         padding: 10px;
         } 
      #nav li:hover {
         background: gray; 
         } 
  </style> 
  <ul id="nav"> 
      <li><a href="">Home</a></li>
      <li><a href="">Shop</a></li>
      <li><a href="">About Us</a></li>
      <li><a href="">Contact Us</a></li> 
  </ul>

该代码将生成一个从页面左侧开始的浅灰色背景的水平导航菜单。每个导航项目的四周都有 10 像素的间距,当您将鼠标悬停在每个项目的背景上时,它的背景会变暗。

同一网页上的任何其他列表都不会受到该代码的影响。

#example-nav {
background: lightgray;
overflow: auto;
}
#example-nav li {
float: left;
padding: 10px;
}
#example-nav li:hover {
background: gray;
}

何时不使用 Hooks

您不必为 HTML元素添加类或 ID 即可使用 CSS对其进行样式设置。如果您知道要为网页上特定元素的每个实例设置样式,则可以使用元素标签本身。

例如,假设您要创建一致的标题样式。与向每个标题添加类或 ID 相比,使用标题标签简单地设置所有标题元素的样式会容易得多。

<style> 
   ul { 
       list-style-type: upper-roman; 
       margin-left: 50px; 
       } 
     p { 
       color: darkblue 
       } 
 </style> 
 <p>Some paragraph text here. Two short sentences.</p> 
 <ul> 
 <li>A quick list</li>
 <li>Just two items</li> 
 </ul> 
 <p>Additional paragraph text here. This time let's go for three sentences. Like this.
 </p>

该代码显示的效果如下:

.code_sample ul {
list-style-type: upper-roman;
左边距:50px;
}
.code_sample p {
颜色:深蓝色
}

这里有一些段落文本。两个短句。

快速列表
只有两个项目
此处附加段落文本。这次让我们来三句话。像这样。

另一个清单
仍然只有两个项目

在这种情况下,即使我们只为ulp元素编写了一次样式规则,但会影响多个项目。通过在网站的每个页面上创建一致的标题、列表和段落文本样式,使用元素选择器是创建有吸引力、可读性和一致的网站体验的好方法。

为样式准备标记的最佳实践

既然您知道如何将类、ID 和元素标签用作 CSS 规则集的钩子,那么您如何才能最好地利用这些知识来编写标记,以便轻松定位特定元素?

  • 自由而一致地应用课程。对应该在一个方向或另一个方向对齐的项目以及在单个网页上重复出现的任何元素使用类。
  • 将 ID 应用于在网页上仅出现一次的项目。例如,在div包含您的网页内容的ul、包含导航菜单的 以及div包含您的网页标题的 上使用 ID。

将 CSS 规则链接到 HTML 文档的方法

向网页添加 CSS 规则的方法有以下三种:

  • 内联样式
  • 内部样式表
  • 外部样式表

在绝大多数情况下,应该使用外部样式表。但是,在某些情况下可以使用内联样式或内部样式表。

内联样式

内联样式应用于特定的 HTML 元素。HTML 属性style用于定义仅适用于该特定元素的规则。下面看一下编写内联样式的语法。

<h1 style="color:red; padding:10px; text-decoration:underline;">Example Heading</h1>

该代码将导致该标题以红色下划线文本和所有边的 10 像素填充呈现。在极少数情况下应该使用内联样式。在几乎所有情况下,都应该避免它们并将样式添加到样式表中。

内部样式表

前面的示例使用了内部样式表。内部样式表是添加到 HTML 文档head元素的 CSS 块。style元素用于开始和结束标签之间,head所有的 CSS 声明都添加在style标签之间。

我们可以使用这种语法在内部样式表中复制上面代码中的内联样式。

<head> 
     <style> 
         h1 { 
              color: red; 
              padding: 10px; 
              text-decoration: underline;
             } 
      </style> 
   </head> 
<body> 
       <h1>Example Heading</h1>
</body>

该代码将产生与内联样式相同的结果。但是,使用内部样式表而不是内联样式的好处是h1页面上的所有元素都会受到样式的影响。

外部样式表

外部样式表是只包含 CSS 语句的文档。文档中定义的规则通过使用 HTML 文档元素中的link标记链接到一个或多个 HTML文档。head

要使用外部样式表,首先要创建 CSS 文档

/************************************************* 
Save with a name ending in .css such as styles.css 
*************************************************/
h1 { 
    color: red; 
    padding: 10px; 
    text-decoration: underline;
    }

现在我们有了一个带有一些样式的外部样式表,我们可以使用该link元素将它链接到一个 HTML 文档。

<head>
     <link rel="stylesheet" type="text/css" href="styles.css">
</head> 
<body> 
    <h1>Example Heading</h1>
</body>

加载此 HTML 文档时,该link标记将导致将文件styles.css中*的样式加载到网页中。因此,所有 1 级标题元素都将显示为红色文本、带下划线,并且每边都应用了 10 像素的填充。

何时使用每种方法

在几乎所有情况下,外部样式表都是设置网页样式的正确方法。使用外部样式表的主要好处是它们可以链接到任意数量的 HTML 文档。因此,可以使用单个外部样式表来定义整个网站的呈现方式。

设计简单的单页网站时可以使用内部样式表。如果网站永远不会超出使用内部样式表的单个初始页面是可以接受的。

内联样式可以在两种情况下使用:

  1. 编写仅应用于单个网页上的单个元素的 CSS 规则时。
  2. 当被集成到内容管理系统(如 WordPress)中的 tinyMCE 编辑器等所见即所得编辑器应用时。

在所有其他情况下,应避免使用内联样式以支持外部样式表。

CSS 是如何工作的

在编写 CSS 时,很多时候编写的规则相互冲突。例如,在设置标题样式时,以下所有规则都可能适用于h1元素。

  • h1在网站的所有页面上创建一致呈现的元素级规则。
  • 定义在特定位置呈现的元素的类级别规则h1——例如博客文章的标题。
  • 一个 id 级别的元素,定义了一个h1元素在一个或多个网页上的一个地方的渲染——例如网站名称。

开发人员如何编写足够通用的规则以涵盖每一个h1又足够具体的规则,以定义只应出现在给定元素的特定实例上的样式?

CSS 样式遵循两个规则,您需要了解这些规则才能编写有效的 CSS。了解这些规则将帮助您编写在需要时可以广泛使用的 CSS,但在需要时却可以非常具体。

控制 CSS 行为方式的两个规则是继承和特异性。

级联继承

为什么CSS 样式被称为级联?当编写多个相互冲突的规则时,将执行最后编写的规则。通过这种方式,样式向下级联并应用最后写入的规则。

让我们看一个例子。让我们在一个内部样式表中编写两个直接相互矛盾的 CSS 规则

<head>
     <style> 
         p {color: red;} 
         p {color: blue;} 
      </style> 
</head> 
<body> 
<p>What color will the text of this paragraph be?</p> 
</body>

浏览器将级联样式并应用遇到的最后一个样式,推翻所有以前的样式。结果,标题是蓝色的。

.code_sample_p {颜色:红色;}
.code_sample_p {颜色:蓝色;}

这一段的文字是什么颜色的?

当使用外部样式表时,同样的级联效应也会发挥作用。使用多个外部样式表是很常见的。head发生这种情况时,样式表会按照它们在 HTML 文档元素中出现的顺序加载。如果样式表规则之间发生冲突,则每个样式表中包含的 CSS 规则将覆盖先前加载的样式表中包含的那些规则。以下面的代码为例:

<head>
<link rel="stylesheet" type="text/css" href="styles_1.css">
<link rel="stylesheet" type="text/css" href="styles_2.css">
</head>

如果这两个样式表中包含的样式之间存在冲突,则将应用styles_2.css中的规则。

样式的继承是 CSS 样式级联行为的另一个例子。

当您为父元素定义样式时,子元素会收到相同的样式。例如,如果我们将颜色样式应用于无序列表,则子列表项将显示相同的样式。

<head>
    <style>
        ul {color: red;} 
    </style>
 </head> 
 <body> 
   <ul> 
 <li>Item 1</li> 
 <li>Item 2</li>
   </ul> 
 </body>

以下是该代码的呈现方式。

.code-sample-ul {颜色:红色;}
项目 1
第 2 项

并非每个属性都从父元素传递到其子元素。浏览器将某些属性视为非继承属性。边距是不从父元素传递到子元素的属性的一个示例。

特异性

确定对每个 HTML 元素应用哪些规则的第二个规则是[特异性规则。

具有更多特定选择器的CSS 规则将覆盖具有较少特定选择器CSS 规则,无论哪个先出现。正如我们所讨论的,三个最常见的选择器是元素标签、类和 ID。

  • 最不具体的选择器类型是元素级别选择器。
  • 当一个类被用作选择器时,它会否决使用元素标签作为选择器编写的 CSS 规则。
  • 当一个 ID 用作选择器时,它会否决使用元素或类选择器编写的 CSS 规则。

影响特异性的另一个因素是编写 CSS 样式的位置。与属性内联style编写的样式会覆盖在内部或外部样式表中编写的样式。

增加选择器特异性的另一种方法是使用一系列元素、类和 ID 来精确定位您要处理的元素。例如,如果您想精确定位列表上的无序列表项目,其中包含divid 为“example-div”的类“example-list”,您可以使用以下选择器来创建具有高度特异性的选择器。

div#example-div > ul.example-list > li {styles here}

虽然这是创建非常具体的选择器的一种方法,但建议限制使用这些类型的选择器,因为它们比简单的选择器需要更多的时间来处理。

一旦您了解了继承和特异性的工作原理,您将能够高度准确地定位网页上的元素。

CSS 能做什么?

一个更好的问题可能是:“CSS 不能做什么?”

CSS 可用于将 HTML 文档转换为专业、精美的设计。下面是一些你可以通过 CSS 完成的事情:

  • 创建一个灵活的网格,用于设计在任何设备上都能呈现精美的完全响应式网站。
  • 从排版到表格,再到表格等,应有尽有。
  • float使用诸如、positionoverflowflex和等属性将网页上的元素相对于彼此定位box-sizing
  • 将背景图像添加到任何元素。
  • 创建形状、交互和动画。

这些概念和技术超出了本入门指南的范围,但以下资源将帮助您解决这些更高级的主题。

盒子模型

如果您打算使用 CSS 来构建网页布局,那么首先要掌握的主题之一就是盒子模型。盒子模型是一种可视化和理解网页上每个项目如何组合内容、填充、边框和边距的方法。

了解这四个部分如何组合在一起是一个基本概念,在继续讨论其他 CSS 布局主题之前必须掌握它。

了解盒子模型的两个好地方包括:

  • 来自万维网联盟的盒子模型的解释。
  • 来自 Mozilla 开发者网络的CSS 盒子模型介绍。

创建布局

有许多技术和策略用于使用 CSS 创建布局,理解盒子模型是每个策略的先决条件。掌握了盒子模型后,您将准备好学习如何操作网页上的内容盒子。

Mozilla 开发者网络对 CSS 布局进行了很好的介绍]。这篇简短的阅读涵盖了 CSS 布局背后的基本概念,并快速介绍了诸如text-alignfloatposition.

W3C 提供了更广泛、更深入的 CSS 布局指南:CSS 布局模型。本文档是面向专业开发人员的资源,因此如果您是 CSS 新手,请花点时间查看它。这不是快速阅读。但是,您需要了解的有关创建 CSS 布局的所有信息都包含在本文档中。

多年来,网格布局一直是设计响应式布局的首选策略。CSS 网格已经从零开始创建多年,市场上有许多不同的网格生成网站和开发框架。然而,在几年内,对网格布局的支持将成为 CSS3 规范的一部分。您可以通过阅读 W3C 网站上的主题来了解很多关于网格的知识。有关网格布局的更轻松、更简短的介绍。

几年之内,CSS3灵活框或flexbox有望成为设计网站布局的主导模型。flexbox 规范还没有完全完成和最终确定,并且浏览器之间对 flexbox 的支持并不一致。然而,每个初露头角的 CSS 开发者都需要熟悉flexbox并准备在不久的将来实现它。

网页字体和排版

可以做很多事情来增加个性并提高网站内容的可读性。在我们的字体和网页排版指南中了解有关为网络选择字体和排版的更多信息。

创建一致的跨浏览器体验

每个浏览器对 HTML 规范的解释略有不同。因此,当在两个不同的浏览器中呈现相同的代码时,呈现代码的方式通常会存在细微差别。

以这段简短的代码为例。

<h1>Heading 1</h1> 
<p>A short paragraph of text. Just four sentences. Most of the sentences are quite short. Especially this one.</p> 
<h2>Heading 2</h2>
<ul>
   <li>Just a short list</li>
   <li>Three items on this list</li> 
   <li>We'll make it an unordered list</li>
 </ul>
  <h3>Heading 3</h3>
  <p>One final short paragraph of text. Just four sentences. Most of the sentences are quite short. Especially this one.</p>

如果我们在两个不同的浏览器中渲染该代码,我们会看到细微的差别。以下是 Mozilla Firebox 和 Microsoft Edge 呈现该代码的方式。

你能看出细微的差别吗?左边的 Firefox 在每个标题元素周围增加了一点边距。此外,在 Edge 中渲染时,项目符号点会小一些。虽然这些差异不是必然的,但在某些情况下,浏览器之间的这些微小差异可能会产生问题。

CSS 可用于解决这些跨浏览器兼容性问题。一种流行的方法是实现一个名为normalize.css的样板 CSS 文档。这个免费提供的 CSS 文件可以链接到任何 HTML 文档,以帮助最小化跨浏览器的呈现差异。

在您的设计工作中包含normalize.css的最简单方法是链接到Google 托管的副本。为此,只需将这行代码放入HTML 文档的元素中。head

<link rel="stylesheet" src="//normalize-css.googlecode.com/svn/trunk/normalize.css" />

TML(网页)

Web领域的一些基本概念。

WEB

Web(World Wide Web)叫全球广域网,俗称万维网(www)。

W3C

W3C(World Wide Web Consortium)叫万维网联盟,是国际最著名的标准化组织,制定了web标准。

WEB标准

一个网页包含了html元素 Css JavaScript,Html元素决定了网页结构,Css进行了修饰美化,JavaScript控制了交互行为和动态效果。

web标准包含了下面三个方面:

  • 结构标准(HTML):用于对网页元素进行整理和分类。
  • 表现标准(CSS):用于设置网页元素的版式、颜色、大小等外观样式。
  • 行为标准(JavaScript):用于定义网页的交互和行为。

HTML定义

Html不是一种编程语言,而是描述性的标记语言,主要作用是定义内容的结构。

2014年10月万维网联盟(W3C)完成了HTML5标准制定,是目前最新的HTM版本。

HTML5的出世,标志着web进入一个富客户端(具有很强的交互性和体验的客户端程序)时代,像APP网页,小程序都是HTML5的应用场景。

Html5新特性:

  • 用于绘画的 canvas 元素。
  • 用于媒介回放的 video 和 audio 元素。
  • 对本地离线存储的更好的支持。
  • 新的特殊内容元素,比如 article、footer、header、nav、section。
  • 新的表单控件,比如 calendar、date、time、email、url、search。

页面基本结构

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8"> <!--字符集-->
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <meta name="Author" content="">
    <meta name="Keywords" content="关键词" />
    <meta name="Description" content="页面描述" />
    <title>页面标题</title>
</head>
<body>

</body>
</html>

关于viewport

viewport用户网页的可视区域,一个针对移动网页优化的页面 viewport meta 标签如下:

<meta name="viewport" content="width=device-width, initial-scale=1.0">
  • width:控制 viewport 的大小,可以指定的一个值,如 600,或者特殊的值,如 device-width 为设备的宽度(单位为缩放为 100% 时的 CSS 的像素)。
  • height:和 width 相对应,指定高度。
  • initial-scale:初始缩放比例,也即是当页面第一次 load 的时候缩放比例。
  • maximum-scale:允许用户缩放到的最大比例。
  • minimum-scale:允许用户缩放到的最小比例。
  • user-scalable:用户是否可以手动缩放。

常见元素

head区域元素:

meta title style link script base。

body区域元素:

  • div、section、article、aside、header、footer
  • p
  • span、em、strong
  • table、thead、tbody、tr、td
  • ul、ol、dl、dt、dd
  • a
  • form、input、select、textarea、button

元素分类

块级元素:每个元素都是独占一行

  • address – 地址
  • blockquote – 块引用
  • center – 举中对齐块
  • dir – 目录列表
  • div – 常用块级容易,也是css layout的主要标签
  • dl – 定义列表
  • fieldset – form控制组
  • form – 交互表单
  • h1-h6 – 标题
  • hr – 水平分隔线
  • isindex – input prompt
  • menu – 菜单列表
  • noframes – frames可选内容,(对于不支持frame的浏览器显示此区块内容)
  • noscript – )可选脚本内容(对于不支持script的浏览器显示此内容)
  • ol – 排序表单
  • p – 段落
  • pre – 格式化文本
  • table – 表格
  • ul – 非排序列表

行内元素:元素在同一行水平排列

  • a – 锚点
  • abbr – 缩写
  • acronym – 首字
  • b – 粗体
  • big – 大字体
  • br – 换行
  • em – 强调
  • font – 字体设定(不推荐)
  • i – 斜体
  • img – 图片
  • input – 输入框
  • label – 表格标签
  • s – 中划线(不推荐)
  • select – 项目选择
  • small – 小字体文本
  • span – 常用内联容器,定义文本内区块
  • strike – 中划线
  • strong – 粗体强调
  • sub – 下标
  • sup – 上标
  • textarea – 多行文本输入框
  • tt – 电传文本
  • u – 下划线
  • var – 定义变量

inline-block:元素可以排列在同一行显示,并且可以设置一些块元素属性

通过Css:display:inline-block 改变元素。

元素默认样式

很多元素都自带了默认样式,不同浏览器下默认样式表现不一致,为了统一或者满足一些需求我们需求将所有默认样式清空,这种处理方式又称为 Css Reset,比如:

*{
    margin: 0;
    padding: 0;
}

另外一种方案使用normalize.css,它将不同浏览器下的默认样式进行了统一,

https://github.com/necolas/normalize.css

CSS(层叠样式表)

Css的单位

html中的单位是像素px

绝对单位

  • in:英寸,1in = 2.54cm = 96px
  • pc:皮卡,1皮卡 = 1/16英寸
  • pt:点,1点 = 1/72英寸
  • px:像素,1点 = 1/96英寸

相对单位

  • em:font-size中相对于父元素的字体大小,在元素属性中使用是相对于自身字体大小
  • rem:根元素的字体大小,在元素属性中使用是相对于根元素字体大小
  • 1h:元素的line-height
  • vw:视窗宽度的1%
  • vh:视窗高度的1%
  • vmin:视窗较小尺寸的1%
  • vmax:视图大尺寸的1%

字体属性

属性:字体、行高、颜色、大小、背景、边框、滚动、换行、修饰属性(粗体、斜体、下划线)

p{
    font-size: 20px;        /*字体大小*/
    line-height: 30px;      /*行高*/
    font-family: PingFang SC;   /*字体类型:显示PingFang SC,没有就显示默认*/
    font-style: italic ;        /*italic表示斜体,normal表示不倾斜*/
    font-weight: bold;  /*粗体或写(400|500|600)*/
    font-variant: small-caps;  /*小写变大写*/
}

行高(line-height)

一般约定行高、字号都是偶数,这样保证它们的差一定偶数除2得到整数,如下图所示:

line-height

文本垂直居中

对于单行文本可以设置行高 = 盒子高度

对于多行元素的垂直对齐,我们可以使用vertical-align: middle属性,不过vertical-align 仅适用inline、inline-block 和 table-cell 元素。

vertical-align

vertical-align: baseline;
vertical-align: sub;
vertical-align: super;
vertical-align: text-top;
vertical-align: text-bottom;
vertical-align: middle;
vertical-align: top;
vertical-align: bottom;
/* 指定长度值 */
vertical-align: 10em;
vertical-align: 4px;
/* 使用百分比 */
vertical-align: 20%;
/* 全局值 */
vertical-align: inherit;
vertical-align: initial;
vertical-align: revert;
vertical-align: unset;

文本属性

  • letter-spacing: 0.5em ; 单个字母之间的间距。
  • word-spacing: 1em; 单词之间的间距。
  • text-decoration: none; none 去掉下划线、underline 下划线、line-through 中划线、overline 上划线。
  • color:red; 字体颜色。
  • text-align: center; 文字对齐方式,属性值可以是:left、right、center、justify。
  • text-transform: lowercase; uppercase(大写)、lowercase(小写)capitalize(首字母大写)。
  • text-indent:10px; 文本首行缩进。
  • text-shadow:2px 2px #ff0000; 文字阴影效果。
  • white-space: normal; 设置元素空白处理,normal,nowrap,break-spaces。

Overflow属性

内容溢出处理

  • visible:默认值,多余的内容会全部显示出来。
  • hidden:超过元素的内容隐藏。
  • auto:内容超出显示滚动条。
  • scroll:Windows总是显示滚动条。Mac和auto 属性相同。

滤镜

filter:gray()

背景属性

  • background-color:#fff; 设置背景颜色。
  • background-image:url(img.png); 设置图像为背景。
  • background-repeat: no-repeat; no-repeat不要平铺,repeat-x横向平铺;repeat-y纵向平铺。
  • background-position:center top; 设置背景图片在容器的位置,top,bottom,left,right,center。
  • background-attachment:scroll; 设置背景图片随滚动条移动,scroll(跟随滚动),fixed(固定)。
  • background-origin:border-box; css3,border-box(背景相对于边框框定位),padding-box(背景相对于填充框定位),content-box(背景相对于内容框定位)。
  • background-clip:border-box; css3,背景裁切。
  • background-size:cover; css3,调整尺寸,contain(在不裁剪或拉伸图像的情况下,在其容器内尽可能大地缩放图像),cover(尽可能大地缩放图像以填充容器,必要时拉伸图像。),auto(在相应的方向上缩放背景图像,以保持其固有比例。)。

优先级

理解优先级很重要,有助于我们排查一些问题。浏览器将优先级分为两部分:HTML的行内样式和选择器的样式。

行内样式

行内样式是直接作用在元素,它的优先级高于选择器样式,使用!important可以提高样式表的优先级。

<div style="font-size:16px">
</div>

选择器样式

<style type="text/css">
    p{
      font-size: 16px;
    }
</style>
<link rel="stylesheet" href="style/app.css">

优先级规则如下:

  • 如果选择器的ID数量最多的胜出。
  • 如果ID数量一致,那么拥有最多类的选择器胜出。
  • 如果以上两次比较都一致,那么拥有最多标签名的选择器胜出。

优先级

我们通过下图这种标记方式,就可以判断出选择器的优先级。

优先级

两条经验法则

  1. 尽量不要使用ID选择器,因为它会大幅提升优先级。当需要覆盖这个选择器时,通常找不到另一个有意义的ID,于是就需要复制原来的选择器加上另一个类来让它区别于想要覆盖的选择器。
  2. 不要使用!important。它比ID更难覆盖,一旦用了它,想要覆盖原先的声明,就需要再加上一个!important,而且依然要处理优先级的问题。

基础选择器

  • 类型或标签选择器,匹配目标元素的标签名,如 :p,input[type=text],优先级(0,0,1)。
  • 类选择器,匹配class属性中有指定类名的元素,如:.box,优先级(0,1,0)。
  • ID选择器,匹配拥有指定ID属性的元素,如:#id, 优先级(1,0,0)。
  • 通用选择器(*),匹配所有元素 ,优先级(0,0,0)。

组合选择器

由多个基础选择器组合成的复杂选择器。

  • 后代组合器(单个空格()表示),比如 .nav li,表示li是一个拥有nav类的元素的后代。
  • 子组合器(>),匹配的元素是直接后代,.parent > .child。
  • 相邻兄弟组合器(+),匹配的元素紧跟在后面其它元素后面,div + p。
  • 通用兄弟组合器(~),匹配所有跟随在指定元素之后的兄弟元素,它不会选中目标元素之前的兄弟元素,li.active ~ li。

复合选择器

多个基础选择器连起来(中间没有空格)组成一个复合选择器(如:ul.nav)。复合选择器选中的元素将匹配其全部基础选择器,.box.nav 可以选中 class="box nav" ,但是不能选中 class="box"。

伪类选择器

用于选中某种特定状态的元素,优先级(0,1,0)。

  • :first-child——匹配的元素是其父元素的第一个子元素。
  • :last-child——匹配的元素是其父元素的最后一个子元素。
  • :only-child——匹配的元素是其父元素的唯一一个子元素(没有兄弟元素)。
  • :nth-child(an+b)——匹配的元素在兄弟元素中间有特定的位置。公式an+b里面的a和b是整数,该公式指定要选中哪个元素。要了解一个公式的工作原理,请从0开始代入n的所有整数值。公式的计算结果指定了目标元素的位置。下表给出了一些例子。

:nth-child(an+b)

  • :nth-last-child(an+b)——类似于:nth-child(),但不是从第一个元素往后数,而是从最后一个元素往前数。括号内的公式与:nth-child()里的公式的规则相同。
  • :first-of-type——类似于:first-child,但不是根据在全部子元素中的位置查找元素,而是根据拥有相同标签名的子元素中的数字顺序查找第一个元素。
  • :last-of-type——匹配每种类型的最后一个子元素。
  • :only-of-type——该选择器匹配的元素是满足该类型的唯一一个子元素。
  • :nth-of-type(an+b)——根据目标元素在特定类型下的数字顺序以及特定公式选择元素,类似于:nth-child。
  • :nth-last-of-type(an+b)——根据元素类型以及特定公式选择元素,从其中最后一个元素往前算,类似于:nth-last-child。
  • :not(<selector>)——匹配的元素不匹配括号内的选择器。括号内的选择器必须是基础选择器,它只能指定元素本身,无法用于排除祖先元素,同时不允许包含另一个排除选择器。
  • :focus——匹配通过鼠标点击、触摸屏幕或者按Tab键导航而获得焦点的元素。
  • :hover——匹配鼠标指针正悬停在其上方的元素。
  • :root——匹配文档根元素。对HTML来说,这是html元素,但是CSS还可以应用到XML或者类似于XML的文档上,比如SVG。在这些情况下,该选择器的选择范围更广。还有一些表单域相关的伪类选择器。
  • :disabled——匹配已禁用的元素,包括input、select以及button元素。
  • :enabled——匹配已启用的元素,即那些能够被激活或者接受焦点的元素。
  • :checked——匹配已经针对选定的复选框、单选按钮或选择框选项。
  • :invalid——根据输入类型中的定义,匹配有非法输入值的元素。例如,当<inputtype="email">的值不是一个合法的邮箱地址时,该元素会被匹配。

更多参考:https://developer.mozilla.org/zh-CN/docs/Web/CSS

伪元素选择器

伪元素选择器可以向HTML标记中未定义的地方插入内容,优先级(0,0,1)。

  • ::before——创建一个伪元素,使其成为匹配元素的第一个子元素。该元素默认是行内元素,可用于插入文字、图片或其他形状。必须指定content属性才能让元素出现,如:.nav::before。
  • ::after——创建一个伪元素,使其成为匹配元素的最后一个子元素。该元素默认是行内元素,可用于插入文字、图片或其他形状。必须指定content属性才能让元素出现,如:.nav::after。
  • ::first-letter——用于指定匹配元素的第一个文本字符的样式,如:h1::first-letter。
  • ::first-line——用于指定匹配元素的第一行文本的样式。
  • ::selection——用于指定用户使用鼠标高亮选择的任意文本的样式。通常用于改变选中文本的background-color。只有少数属性可以使用,包括color、background-color、cursor、text-decoration。

属性选择器

属性选择器用于根据HTML属性进行匹配元素,优先级(0,1,0)。

  • [attr]——匹配的元素拥有指定属性attr,无论属性值是什么,如:input[disabled]。
  • [attr="value"]——匹配的元素拥有指定属性attr,且属性值等于指定的字符串值,如:input[type="radio"]。
  • [attr^="value"] ——“开头”属性选择器。该选择器匹配的元素拥有指定属性attr,且属性值的开头是指定的字符串值,例如:a[href^="https"]。
  • [attr*="value"]——“包含”属性选择器。该选择器匹配的元素拥有指定属性attr,且属性值包含指定的字符串值,如:[class*="sprite-"]。
  • [attr~="value"]——“空格分隔的列表”属性选择器。该选择器匹配的元素拥有指定属性attr,且属性值是一个空格分隔的值列表,列表中的某个值等于指定的字符串值,如:a[rel="author"]。
  • [attr|="value"]——匹配的元素拥有指定属性attr,且属性值要么等于指定的字符串值,要么以该字符串开头且紧跟着一个连字符(-)。

小结

本文要点回顾,欢迎留言交流。

  • Web中的一些基本概念介绍。
  • Html页面结构,元素分类。
  • Css优先级。
  • Css选择器,(基础选择器,组合选择器,复合选择器,伪类选择器,伪元素选择器,属性选择器)。