整合营销服务商

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

免费咨询热线:

css初识

、初识CSS3

本章目标:

  • 会使用行内样式、内部样式表和外部样式表三种方式为HTML5文档添加CSS样式
  • 会使用CSS3的基本选择器设置字体大小和颜色
  • 会使用复合选择器为特定的网页元素添加CSS样式
  • 会使用CSS3高级选择器为网页元素添加CSS样式

1.1、什么是CSS

Cascading Style Sheet 级联样式表。 表现HTML或XHTML文件样式的计算机语言。 包括对字体、颜色、边距、高度、宽度、背景图片、网页定位等设定

在这里插入图片描述

说明:

  • 首先介绍什么是CSS
  • 然后对比讲解使用CSS和没有使用CSS的两个相同的HTML代码页面显示效果,说明CSS的重要性
  • 最后根据图说明CSS在网页中的应用

1.2、CSS的发展史

在这里插入图片描述


CSS1.0 读者可以从其他地方去使用自己喜欢的设计样式去继承性地使用样式;

CSS2.0 融入了DIV+CSS的概念,提出了HTML结构与CSS样式表的分离

CSS2.1 融入了更多高级的用法,如浮动,定位等。

CSS3.0 它包括了CSS2.1下的所有功能,是目前最新的版本,它向着模块化的趋势发展,又加了很多使用的新技术,如字体、多背景、圆角、阴影、动画等高级属性,但是它需要高级浏览器的支持。

由于现在IE 6、IE 7使用比例已经很少,对市场企业进行调研发现使用CSS3的频率大幅增加,学习CSS3已经成为一种趋势,因此本书会讲解最新的CSS3版本

本课程中主要讲解css2.1和css3

CSS的优势


  • 内容与表现分离
  • 网页的表现统一,容易修改
  • 丰富的样式,使得页面布局更加灵活
  • 减少网页的代码量,增加网页的浏览速度,节省网络带宽
  • 运用独立于页面的CSS,有利于网页被搜索引擎收录

1.3、CSS的基本语法

  • 首先讲解CSS的基本语法结构,由选择器和声明构成
  • 然后对照具体的样式详细讲解语法,强调声明必须在 { }
  • 最后说明基本W3C的规范,每条声明后的 ; 都要写上

在这里插入图片描述

Style标签

  • 讲解CSS样式如何在HTML中应用,引入style标签的应用
  • 讲解style标签,说明type=“text/css的用法
  • 说明style标签在HTML文档中的位置,在与之间

在这里插入图片描述

1.4、引入CSS方式

  • 行内样式 使用style属性引入CSS样式 <h1 style="color:red;">style属性的应用</h1> <p style="font-size:14px; color:green;">直接在HTML标签中设置的样式</p> 使用style属性设置CSS样式仅对当前的HTML标签起作为,并且是写在HTML标签中的 这种方式不能起到内容与表现相分离,本质上没有体现出CSS的优势,因此不推荐使用。
  • 内部样式表 CSS代码写在 <head><style> 标签中 <style> h1{color: green; } </style> 优点:方便在同页面中修改样式 缺点:不利于在多页面间共享复用代码及维护,对内容与样式的分离也不够彻底 引出外部样式表
  • 外部样式表 CSS代码保存在扩展名为.css的样式表中 HTML文件引用扩展名为.css的样式表,有两种方式
  • 链接式(使用的最多,记住这个就可以了) 使用 标签链接外部样式表,并讲解各参数的含义, 标签必须放在 标签中

在这里插入图片描述


  • 导入式 使用@import导入外部样式表

在这里插入图片描述



链接式与导入式的区别

  1. 标签是属于XHTML范畴的,@import是属于CSS2.1中特有的。
  2. 使用 链接的CSS是客户端浏览网页时先将外部CSS文件加载到网页当中,然后再进行编译显示,所以这种情况下显示出来的网页与用户预期的效果一样,即使网速再慢也一样的效果。
  3. 使用@import导入的CSS文件,客户端在浏览网页时是先将HTML结构呈现出来,再把外部CSS文件加载到网页当中,当然最终的效果也与使用 链接文件效果一样,只是当网速较慢时会先显示没有CSS统一布局的HTML网页,这样就会给用户很不好的感觉。这个也是现在目前大多少网站采用链接外部样式表的主要原因。
  4. 由于@import是属于CSS2.1中特有的,因此对于不兼容CSS2.1的浏览器来说就是无效的。

CSS样式优先级

行内样式>内部样式表>外部样式表
就近原则:越接近标签的样式优先级越高

【学员练习】 使用标题标签和段落标签制作李白的诗《望庐山瀑布》,诗正文字体颜色为绿色,字体大小为14p

在这里插入图片描述

1.5、CSS基本选择器

  • 标签选择器 HTML标签作为标签选择器的名称 <h1>…<h6>、<p>、<img/>

在这里插入图片描述

  • 类选择器 一些特殊的实现效果,单纯使用标签选择器不能实现,从而引出类选择器

在这里插入图片描述

  • ID选择器 ID选择器的名称就是HTML中标签的ID名称,ID全局唯一

在这里插入图片描述


小结

  • 标签选择器直接应用于HTML标签
  • 类选择器可在页面中多次使用
  • ID选择器在同一个页面中只能使用一次

基本选择器的优先级

ID选择器>类选择器>标签选择

标签选择器是否也遵循“就近原则”? 不遵循,无论是哪种方式引入CSS样式,一般都遵循ID选择器 > class类选择器 > 标签选择器的优先级

1.6、CSS高级选择器

1、层次选择器

在这里插入图片描述

  • 后代选择器 body p{ background: red; }

在这里插入图片描述

后代选择器两个选择符之间必须要以空格隔开,中间不能有任何其他的符号插入

  • 子选择器 body>p{ background: pink; }

在这里插入图片描述


  • 相邻兄弟选择器 .active+p { background: green; }

在这里插入图片描述


  • 通用兄弟选择器 .active~p{ background: yellow; }

添加图片注释,不超过 140 字(可选)

码规范

CSS样式表是一个序列通用字符集,传输和存储过程中,这些字符必须由支持 US-ASCII(例如 UTF-8, ISO 8859-x, SHIFT JIS 等)字符编码方式编译

文档内嵌样式表编码

When a style sheet is embedded in another document, such as in the STYLE element or "style" attribute of HTML, the style sheet shares the character encoding of the whole document.

当样式出现在其它文档,如 HTML 的 STYLE 标签或标签属性 "style",样式的编码由文档的决定。

文档外链样式表编码

When a style sheet resides in a separate file, user agents must observe the following priorities when determining a style sheet's character encoding (from highest priority to lowest):

An HTTP "charset" parameter in a "Content-Type" field (or similar parameters in other protocols)BOM and/or [@charset ]()or other metadata from the linking mechanism (if any)charset of referring style sheet or document (if any)Assume UTF-8

文档外链样式表的编码可以由以下各项按照由高到低的优先级顺序决定:

  1. HTTP “Content-Type” 字段参数 “charset”(或其它协议相似的参数)
  2. BOM(byte-order mark)和(或)[@charset ]()
  3. Link 中的元数据设置(如果有的话)
  4. 引用样式表字符集或文档编码(如果有的话)
  5. 假定为 UTF-8 编码

样式表编码

Authors using an [@charset ]() rule must place the rule at the very beginning of the style sheet, preceded by no characters. (If a byte order mark is appropriate for the encoding used, it may precede the [@charset ]() rule.)

[@charset ]() must be written literally, i.e., the 10 characters '[@charset ]() "' (lowercase, no backslash escapes), followed by the encoding name, followed by '";'.

  • @charset规则一定要在样式文件的第一行首个字符位置开始,否则的话就会有机会让 BOM 设置生效(如果有设置 BOM 的话)而优于 [@charset ]() 作为样式表的编码
  • @charset ""; 一定要写上,并且用小写字母,不能出现转义符

团队约定

  • 样式文件必须写上 [@charset ]() 规则,并且一定要在样式文件的第一行首个字符位置开始写,编码名用 “UTF-8”
  • 字符 [@charset ]() ""; 都用小写字母,不能出现转义符,编码名允许大小混写
  • 考虑到在使用“UTF-8”编码情况下 BOM 对代码的污染和编码显示的问题,在可控范围下,坚决不使用 BOM。(更多关于 BOM 可参考 BOM的介绍 和 「带 BOM 的 UTF-8」和「无 BOM 的 UTF-8」有什么区别? )

推荐:

@charset "UTF-8";

.jdc{}

不推荐:

/**
 * @desc File Info
 * @author Author Name
 * @date 2015-10-10
 */
 
/* @charset规则不在文件首行首个字符开始 */
@charset "UTF-8";

.jdc{}
@CHARSET "UTF-8";
/* @charset规则没有用小写 */

.jdc{}
/* 无@charset规则 */
.jdc{}

更多关于样式编码:CSS style sheet representation

代码风格

代码格式化

样式书写一般有两种:一种是紧凑格式 (Compact)

.jdc{ display: block;width: 50px;}

一种是展开格式(Expanded)

.jdc{
    display: block;
    width: 50px;
}

团队约定

统一使用展开格式书写样式

代码大小写

样式选择器,属性名,属性值关键字全部使用小写字母书写,属性字符串允许使用大小写。

/* 推荐 */
.jdc{
    display:block;
}
    
/* 不推荐 */
.JDC{
    DISPLAY:BLOCK;
}

选择器

  • 尽量少用通用选择器 *
  • 不使用 ID 选择器
  • 不使用无具体语义定义的标签选择器
/* 推荐 */
.jdc {}
.jdc li {}
.jdc li p{}

/* 不推荐 */
*{}
#jdc {}
.jdc div{}

代码缩进

统一使用四个空格进行代码缩进,使得各编辑器表现一致(各编辑器有相关配置)

.jdc {
    width: 100%;
    height: 100%;
}

分号

每个属性声明末尾都要加分号;

.jdc {
    width: 100%;
    height: 100%;
}

代码易读性

左括号与类名之间一个空格,冒号与属性值之间一个空格

推荐:

.jdc { 
    width: 100%; 
}

不推荐:

.jdc{ 
    width:100%;
}

逗号分隔的取值,逗号之后一个空格

推荐:

.jdc {
    box-shadow: 1px 1px 1px #333, 2px 2px 2px #ccc;
}

不推荐:

.jdc {
    box-shadow: 1px 1px 1px #333,2px 2px 2px #ccc;
}

为单个css选择器或新申明开启新行

推荐:

.jdc, 
.jdc_logo, 
.jdc_hd {
    color: #ff0;
}
.nav{
    color: #fff;
}

不推荐:

.jdc,jdc_logo,.jdc_hd {
    color: #ff0;
}.nav{
    color: #fff;
}

颜色值 rgb() rgba() hsl() hsla() rect() 中不需有空格,且取值不要带有不必要的 0

推荐:

.jdc {
    color: rgba(255,255,255,.5);
}

不推荐:

.jdc {
    color: rgba( 255, 255, 255, 0.5 );
}

属性值十六进制数值能用简写的尽量用简写

推荐:

.jdc {
    color: #fff;
}

不推荐:

.jdc {
    color: #ffffff;
}

不要为 0 指明单位

推荐:

.jdc {
    margin: 0 10px;
}

不推荐:

.jdc {
    margin: 0px 10px;
}

属性值引号

css属性值需要用到引号时,统一使用单引号

/* 推荐 */
.jdc { 
    font-family: 'Hiragino Sans GB';
}

/* 不推荐 */
.jdc { 
    font-family: "Hiragino Sans GB";
}

属性书写顺序

建议遵循以下顺序:

  1. 布局定位属性:display / position / float / clear / visibility / overflow
  2. 自身属性:width / height / margin / padding / border / background
  3. 文本属性:color / font / text-decoration / text-align / vertical-align / white- space / break-word
  4. 其他属性(CSS3):content / cursor / border-radius / box-shadow / text-shadow / background:linear-gradient ...
.jdc {
    display: block;
    position: relative;
    float: left;
    width: 100px;
    height: 100px;
    margin: 0 10px;
    padding: 20px 0;
    font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;
    color: #333;
    background: rgba(0,0,0,.5);
    -webkit-border-radius: 10px;
    -moz-border-radius: 10px;
    -o-border-radius: 10px;
    -ms-border-radius: 10px;
    border-radius: 10px;
}

mozilla官方属性顺序推荐

CSS3浏览器私有前缀写法

CSS3 浏览器私有前缀在前,标准前缀在后

.jdc {
    -webkit-border-radius: 10px;
    -moz-border-radius: 10px;
    -o-border-radius: 10px;
    -ms-border-radius: 10px;
    border-radius: 10px;
}

更多关于浏览器私有前辍写法:#Vendor-specific extensions

参考阅读

Google Code Guide

SS(层叠样式表)是一种用于描述HTML或XML(包括各种XML方言,如SVG或XHTML)文档的视觉表现的样式语言。CSS描述了元素应该如何在屏幕、纸张、语音或其他媒体上显示。本文将深入探讨CSS的核心概念和语法,为初学者和有经验的开发者提供一个参考。

选择器

选择器是CSS中的基础概念,它们用于指定我们想要样式化的HTML元素。

元素选择器

p {
  color: black;
}

类选择器

.error {
  color: red;
}

ID选择器

#unique-element {
  color: blue;
}

属性选择器

input[type="text"] {
  background-color: #f0f0f0;
}

伪类选择器

a:hover {
  text-decoration: underline;
}

组合器

组合器描述了不同选择器之间的关系。

后代组合器

article p {
  line-height: 1.6;
}

子元素组合器

ul > li {
  list-style-type: square;
}

相邻兄弟组合器

h2 + p {
  margin-top: 0;
}

通用兄弟组合器

h2 ~ p {
  color: #333;
}

伪元素

伪元素用于样式化元素的特定部分。

p::first-line {
  font-weight: bold;
}

属性和值

CSS属性定义了如何对元素进行样式化,而值则指定了属性的外观或行为。

尺寸

width: 100px;
height: 50vh; /* 视口高度的50% */

颜色

background-color: #ff0000;
color: rgb(0, 255, 0);
border-color: rgba(0, 0, 255, 0.5);

文本

font-family: 'Arial', sans-serif;
text-align: center;
text-decoration: underline;

边距和填充

margin: 10px 5px;
padding: 20px;

边框

border-style: solid;
border-width: 1px;
border-color: #000;

CSS布局

Flexbox

.container {
  display: flex;
  justify-content: space-between;
}

Grid

.container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

定位

.absolute-element {
  position: absolute;
  top: 10px;
  right: 10px;
}

响应式设计

使用媒体查询可以创建响应不同屏幕尺寸的样式。

@media (max-width: 600px) {
  .container {
    flex-direction: column;
  }
}

结论

CSS是一个强大的样式语言,它使得开发者能够创建精美、响应式的网页。通过理解并掌握CSS的选择器、属性、布局等核心概念和语法,前端工程师可以有效地设计和实现用户界面。随着CSS3和后续版本的不断发展,CSS的能力也在不断增强,为前端开发带来了更多的可能性。