层叠样式表(Cascading Style Sheet,简称:CSS)是为网页添加样式的代码。
和 HTML 类似,CSS 也不是真正的编程语言,甚至不是标记语言。它是一门样式表语言,这也就是说人们可以用它来选择性地为 HTML 元素添加样式。举例来说,要选择一个 HTML 页面里所有的段落元素,然后将其中的文本改成红色,可以这样写 CSS:

p {color: red;
}

不妨试一下:首先新建一个 styles 文件夹,在其中新建一个 style.css 文件,将这三行 CSS 保存在这个新文件中。
然后再将该 CSS 文件连接至 HTML 文档,否则 CSS 代码不会对 HTML 文档在浏览器里的显示效果有任何影响。(如果你没有完成前几节的实践,请复习 处理文件 和 HTML 基础。)

1.打开 index.html 文件,然后将下面一行粘贴到文档头(也就是 和 标签之间)。

<link href="styles/style.css" rel="stylesheet">

2.保存 index.html 并用浏览器将其打开。应该看到以下页面:

如果段落文字变红,那么祝贺你,你已经成功地迈出了 CSS 学习的第一步。

“CSS 规则集”详解

请仔细看一看 CSS:

整个结构称为 规则集(通常简称“规则”),各部分释义如下:

选择器(Selector)
HTML 元素的名称位于规则集开始。它选择了一个或多个需要添加样式的元素(在这个例子中就是 p 元素)。要给不同元素添加样式只需要更改选择器就行了。
声明(Declaration)
一个单独的规则。如 color: red; 用来指定添加样式元素的属性。
属性(Properties)
改变 HTML 元素样式的途径。(本例中 color 就是

元素的属性。)CSS 编写人员决定修改哪个属性以改变规则。
属性的值(Property value)
在属性的右边,冒号后面即属性的值,它从指定属性的众多外观中选择一个值(我们除了 red 之外还有很多属性值可以用于 color )。
注意其他重要的语法:
每个规则集(除了选择器的部分)都应该包含在成对的大括号里({})。
在每个声明里要用冒号(:)将属性与属性值分隔开。
在每个规则集里要用分号(;)将各个声明分隔开。
如果要同时修改多个属性,只需要将它们用分号隔开,就像这样:

p {color: red;width: 500px;border: 1px solid black;
}

多元素选择
也可以选择多种类型的元素并为它们添加一组相同的样式。将不同的选择器用逗号分开。例如:

p, li, h1 {color: red;
}

不同类型的选择器
选择器有许多不同的类型。上面只介绍了元素选择器,用来选择 HTML 文档中给定的元素。但是选择操作可以更加具体。下面是一些常用的选择器类型:


选择器的种类远不止于此

字体和文本

译注:再一次说明,中文字体文件较大,不适合直接用于 Web Font。

1.在探索了一些 CSS 基础后,我们来把更多规则和信息添加至 style.css 中,从而让示例更美观。首先,让字体和文本变得更漂亮。
第一步,找到之前 Google Font 输出的地址。并以 元素的形式添加进 index.html 文档头( 和 之间的任意位置)。代码如下:

 <link href="https://fonts.font.im/css?family=Open+Sans" rel="stylesheet" type="text/css">

以上代码为当前网页下载 Open Sans 字体,从而使自定义 CSS 中可以对 HTML 元素应用这个字体。
2.接下来,删除 style.css 文件中已有的规则。虽然测试是成功的了,但是红字看起来并不太舒服。
3.将下列代码添加到相应的位置,用你在 Google Fonts 找到的字体替代 font-family 中的占位行。( font-family 意味着你想要你的文本使用的字体。)这条规则首先为整个页面设定了一个全局字体和字号(因为 是整个页面的父元素,而且它所有的子元素都会继承相同的 font-size 和 font-family):

html {/* px 表示 “像素(pixels)”: 基础字号为 10 像素 */font-size: 10px; /* Google fonts 输出的 CSS */font-family: 'Open Sans', sans-serif;
}

注:CSS 文档中所有位于 /* 和 */ 之间的内容都是 CSS 注释,它会被浏览器在渲染代码时忽略。你可以在这里写下对你现在要做的事情有帮助的笔记。

译注:/**/ 不可嵌套,/这样的注释是/不行/的/。CSS 不接受 // 注释。

4.接下来为文档体内的元素(

  • )设置字号。将标题居中显示,并为正文设置行高和字间距,从而提高页面的可读性。

h1 {font-size: 60px;text-align: center;
}p, li {font-size: 16px;    line-height: 2;letter-spacing: 1px;
}

可以随时调整这些 px 值来获得满意的结果,以下是大体效果:

一切皆盒子

编写 CSS 时你会发现,你的工作好像是围绕着一个一个盒子展开的——设置尺寸、颜色、位置,等等。页面里大部分 HTML 元素都可以被看作若干层叠的盒子。

并不意外,CSS 布局主要就是基于盒模型的。每个占据页面空间的块都有这样的属性:

padding:即内边距,围绕着内容(比如段落)的空间。
border:即边框,紧接着内边距的线。
margin:即外边距,围绕元素外部的空间。

这里还使用了:

width :元素的宽度
background-color :元素内容和内边距底下的颜色
color :元素内容(通常是文本)的颜色
text-shadow :为元素内的文本设置阴影
display :设置元素的显示模式(暂略)
开始在页面中添加更多 CSS 吧!大胆将这些新规则都添加到页面的底部,而不要纠结改变属性值会带来什么结果。
更改页面颜色

html {background-color: #00539F;
}

这条规则将整个页面的背景颜色设置为 所计划的颜色。

文档体格式设置

body {width: 600px;margin: 0 auto;background-color: #FF9500;padding: 0 20px 20px 20px;border: 5px solid black;
}

现在是 元素。以上条声明,我们来逐条查看:

width: 600px; —— 强制页面永远保持 600 像素宽。
margin: 0 auto; —— 为 margin 或 padding 等属性设置两个值时,第一个值代表元素的上方和下方(在这个例子中设置为 0),而第二个值代表左边和右边(在这里,auto 是一个特殊的值,意思是水平方向上左右对称)。你也可以使用一个,三个或四个值,参考 这里 。
background-color: #FF9500; —— 如前文所述,指定元素的背景颜色。我们给 body 用了一种略微偏红的橘色以与深蓝色的 元素形成反差,你也可以尝试其它颜色。
padding: 0 20px 20px 20px; —— 我们给内边距设置了四个值来让内容四周产生一点空间。这一次我们不设置上方的内边距,设置右边,下方,左边的内边距为20像素。值以上、右、下、左的顺序排列。
border: 5px solid black; —— 直接为 body 设置 5 像素的黑色实线边框。
定位页面主标题并添加样式

h1 {margin: 0;padding: 20px 0;    color: #00539F;text-shadow: 3px 3px 1px black;
}

你可能发现了页面顶部有一个难看的间隙。那是因为浏览器会没有任何 CSS 的情况下 给

等元素设置一些默认样式。但这并不是个好主意,但是我们希望一个没有任何样式的网页也有基本的可读性。为了去掉那个间隙,我们通过设置 margin: 0; 覆盖掉默认样式。

至此,我们已经把标题的上下内边距设置为 20 像素,并且将标题文本与 HTML 的背景颜色设为一致。

需要注意的是,这里使用了一个 text-shadow 属性,它可以为元素中的文本提供阴影。四个值含义如下:

第一个值设置水平偏移值 —— 即阴影右移的像素数(负值左移)。
第二个值设置垂直偏移值 —— 即阴影下移的像素数(负值上移)。
第三个值设置阴影的模糊半径 —— 值越大产生的阴影越模糊。
第四个值设置阴影的基色。
不妨尝试不同的值看看能得出什么结果。

图像居中

img {display: block;margin: 0 auto;
}

最后,我们把图像居中来使页面更美观。可以复用 body 的 margin: 0 auto ,但是需要一点点调整。 元素是块级元素,意味着它占据了页面的空间并且能够赋予外边距和其他改变间距的值。而图片是内联元素,不具备块级元素的一些功能。所以为了使图像有外边距,我们必须使用 display: block 给予其块级行为。
注:以上说明假定所选图片小于页面宽度(600 pixels)。更大的图片会溢出 body 并占据页面的其他位置。要解决这个问题,可以:
1)使用 图片编辑器 来减小图片宽度;
2)用 CSS 限制图片大小,即减小 元素 width 属性的值(比如 400 px)。

注:如果你暂时不能理解 display: block 和块级元素与行内元素的差别也没关系;随着你对 CSS 学习的深入,你将明白这个问题。

欢迎访问我的网站:wpnoob.top

建站基础知识之CSS 究竟什么来头?相关推荐

  1. 一个好的网站,应该用什么样的空间or服务器?建站基础知识普及

    今天就针对服务器这块给大家普及这块知识,记得分享哦~ 定义 服务器指一个管理资源并为用户提供服务的计算机软件,通常分为文件服务器.数据库服务器和应用程序服务器.运行以上软件的计算机或计算机系统也被称为 ...

  2. 建站基础知识之HTML 是何方神圣?

    HTML 不是一门编程语言,而是一种用于定义内容结构的标记语言.HTML 由一系列的元素(elements)组成,这些元素可以用来包围不同部分的内容,使其以某种方式呈现或者工作. 一对标签( tags ...

  3. 第一章 Django 建站基础

    第一章 Django建站基础 1.1网站的定义及组成 网站(website)组成: (1)域名:www.baidu.com (2)空间服务器:虚拟主机,独立服务器,vps (3)DNS域名解析 (4) ...

  4. 宝塔linux_宝塔面板建站基础教程:如何安装宝塔面板及建立博客网站

    大多数站长购买服务器特别是 Linux 服务器后一般都会选择安装宝塔面板来管理和维护服务器,但是有些新手站长总是担心自己不懂得如何在云服务器上安装宝塔面板,又或者成功安装了宝塔面板之后不懂得如何通过面 ...

  5. _网站建站基础第十一课(域名解析服务器环境linux安装宝塔)

    在服务器,域名(国内备案)购买好之后,就可以开始搭建网站了,建站要为服务器解析好域名,然后配置好服务器环境,服务器环境就以linux系统+宝塔面板为例给大家演示: 域名备案成功后,进入服务器商的控制台 ...

  6. python 建站需求_python建站基础环境配置

    因为我平时大多数时候都是用的windows10系统,所以这一系列的笔记所记内容都是基于win10系统的. python版本选择 现在正是python2到python3过渡的时候,python2更成熟, ...

  7. 建站必备知识:域名注册和域名解析流程有哪些?

    域名是网站的门牌号,是企业线上流量的主要入口,所以要想玩转一个网站,首先要做好域名的注册和解析工作.下面中科三方简单介绍下域名注册和域名解析的具体流程和一些注意事项. 一.域名注册 域名注册流程因平台 ...

  8. 前端基础知识总结---CSS篇

    本部分主要是笔者在复习 CSS 相关知识和一些相关面试题时所做的笔记,如果出现错误,希望大家指出! 目录 1.介绍一下标准的 CSS 的盒子模型?低版本 IE 的盒子模型有什么不同的? 2.CSS 选 ...

  9. 玩转Django2.0---Django笔记建站基础十三

    第13章 第三方功能应用 在前面的章节中,我们主要讲述Django框架的内置功能以及使用方法,而本章主要讲述Django的第三方功能应用以及使用方法.通过本章的学习,读者能够在网站开发过程中快速开发网 ...

最新文章

  1. C# 填充pdf 模板生成报告
  2. ASP.NET中IP地址,当前用户的方法属性大整合- -
  3. ACM-ICPC 2019 山东省省赛 C Wandering Robot
  4. 【实战 Ids4】║ 客户端、服务端、授权中心全线打通!
  5. 恒驰机器人_2545台机器人,1分钟造1辆车,恒大许家印的智能造车工厂首次曝光...
  6. hive添加字段报conflicting lock
  7. python课程-Python课程
  8. webpack打包非模块化js
  9. CSS里 @import用法
  10. web前端如何才能成为架构师
  11. Myeclipse中编辑Jsp时解决光标乱跑的方法
  12. 收藏 | 机器学习分类算法
  13. php strpos 编码问题,php-关于strpos的问题。 如何获得第二次出现的字符串?
  14. html中的项目符号和编号,CSS重新定义项目符号和编号
  15. python量化策略——改进的美林时钟轮动策略(三)
  16. Androd studio + MUMU模拟器
  17. 通过批处理文件bat批量修改图片名称
  18. C++ 不快乐的函数 1
  19. 桌面小宠物项目开发_C# 桌面宠物 示例源码(透明窗体)
  20. cucumber自动化 java_cucumber自动化测试官方教程

热门文章

  1. 给实践者的算法学习指南
  2. Sublime Text 插件-全栈开发收集
  3. NLP --- 产生式模型VS判别式模型
  4. box怎么用 latency_box-sizing使用场景
  5. .net core linux服务,.netcore在linux服务生成
  6. html写注册协议页面,html+css编写用户注册协议页
  7. 计算机信息规划工资,2020年工科类专业薪资最新排名,计算机很吃香,工资水平最高...
  8. ajax 实时进度_三分钟搭建websocket实时在线聊天,项目经理也不敢这么写
  9. 《坐热板凳》第五次作业:团队项目需求改进与系统设计
  10. LeetCode Closest Binary Search Tree Value II