整合营销服务商

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

免费咨询热线:

前端新手看过来,教你从零CSS做漂亮网页,这样学习太有成就感了

叠样式表(Cascading Style Sheet,简称:CSS)是为网页添加样式的代码。本节将介绍 CSS 的基础知识,并解答类似问题:怎样将文本设置为黑色或红色?怎样将内容显示在屏幕的特定位置?怎样用背景图片或颜色来装饰网页?

CSS 究竟什么来头?

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

p {
  color: red;
}

不妨试一下:首先新建一个 styles 文件夹,在其中新建一个 style.css 文件,将这三行 CSS 保存在这个新文件中。

然后再将该 CSS 文件连接至 HTML 文档,否则 CSS 代码不会对 HTML 文档在浏览器里的显示效果有任何影响。(如果你没有完成前几节的实践,请复习处理文件 和 HTML 基础。在笔记本里有这个方面的内容!)

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

<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 文档中给定的元素。但是选择的操作可以更加具体。下面是一些常用的选择器类型:

选择器名称

选择的内容

示例

元素选择器(也称作标签或类型选择器)

所有指定(该)类型的 HTML 元素

p 选择 <p>

ID 选择器

具有特定 ID 的元素(单一 HTML 页面中,每个 ID 只对应一个元素,一个元素只对应一个 ID)

#my-id 选择 <p id="my-id"><a id="my-id">

类选择器

具有特定类的元素(单一页面中,一个类可以有多个实例)

.my-class 选择 <p class="my-class"><a class="my-class">

属性选择器

拥有特定属性的元素

img[src] 选择 <img src="myimage.png"> 而不是 <img>

伪(Pseudo)类选择器

特定状态下的特定元素(比如鼠标指针悬停)

a:hover 仅在鼠标指针悬停在链接上时选择 <a>

选择器的种类远不止于此,更多信息请参阅 选择器。

字体和文本

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

在探索了一些 CSS 基础后,我们来把更多规则和信息添加至 style.css 中,从而让示例更美观。首先,让字体和文本变得更漂亮。

第一步:找到之前Google Font 输出的地址。并以<link>元素的形式添加进index.html文档头(<head></head>之间的任意位置)。代码如下:

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

以上代码为当前网页下载 Open Sans 字体,从而使自定义 CSS 中可以对 HTML 元素应用这个字体。

第二步:接下来,删除 style.css 文件中已有的规则。虽然测试是成功的了,但是红字看起来并不太舒服。

第三步:将下列代码添加到相应的位置,用你在 Google Fonts 找到的字体替代 font-family 中的占位行。( font-family 意味着你想要你的文本使用的字体。)这条规则首先为整个页面设定了一个全局字体和字号(因为 <html> 是整个页面的父元素,而且它所有的子元素都会继承相同的 font-sizefont-family):

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

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

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

接下来为文档体内的元素(<h1> (en-US)、<li><p>)设置字号。将标题居中显示,并为正文设置行高和字间距,从而提高页面的可读性。

   h1 {
     font-size: 60px;
     text-align: center;
   }
   
   p, li {
     font-size: 16px;
     /* line-height 后而可以跟不同的参数,如果是数字,就是当前字体大小乘上数字 */
     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;
}

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

  • width: 600px; —— 强制页面永远保持 600 像素宽。
  • margin: 0 auto; —— 为 marginpadding 等属性设置两个值时,第一个值代表元素的上方下方(在这个例子中设置为 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 的情况下 给 <h1>en-US等元素设置一些默认样式。但这并不是个好主意,因为我们希望一个没有任何样式的网页也有基本的可读性。为了去掉那个间隙,我们通过设置margin: 0;来覆盖默认样式。

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

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

  • 第一个值设置水平偏移值 —— 即阴影右移的像素数(负值左移)。
  • 第二个值设置垂直偏移值 —— 即阴影下移的像素数(负值上移)。
  • 第三个值设置阴影的模糊半径 —— 值越大产生的阴影越模糊。
  • 第四个值设置阴影的基色。

不妨尝试不同的值看看能得出什么结果。

图像居中

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

最后,我们把图像居中来使页面更美观。可以复用 body 的margin: 0 auto,但是需要一点点调整。<body>元素是块级元素,意味着它占据了页面的空间并且能够赋予外边距和其他改变间距的值。而图片是内联元素,不具备块级元素的一些功能。所以为了使图像有外边距,我们必须使用display: block 给予其块级行为。

注:以上说明假定所选图片小于页面宽度(600 pixels)。更大的图片会溢出 body 并占据页面的其他位置。要解决这个问题,可以:

1)使用 图片编辑器 来减小图片宽度; 2)用 CSS 限制图片大小,即减小 <img> 元素 width 属性的值(比如 400 px)。

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

小结

如果你按部就班完成本文的实践,那么最终可以得到以下页面


相关推荐:

前端新手看过来,手把手带你轻松上手html的实操

节课将网页的排版框架大致写好。

这节课就来进行更具体的修改和增加所有元素的细节,完成整个网页的编写。

下载所有必须的图片文件

按照上节课的方法,用调试工具分析代码之后,可以下载好必须的图片文件。

关于当中专题的图片,这里只下载了3个,更多的图和文字留给大家自己去完成。

主体排版调整

给table加上边框线的目的是为了方便在开发编写完成之前能够随时观察排版的情况,方便进行调整。

在排版样式基本调整到位之后,就可以删除table的边框了。

来给下面2行的左右分别增加内边距为140px和120px。

修改css代码如下:

刷新页面:

可以看到,下面2行的左右留白出现了,同时第2行和第3行之间有间距,第3行的左右2个td之间也有间距。

虽然第3行的2个td的宽度比例不对,但是先不着急,下面按照次序一个一个元素来调整。

实现最上面一排按钮和链接

最上面一排左边4个元素,右边4个元素,当中留白,因此一共9个td。

将左边4个td和右边4个td的宽度固定,剩余当中的一个td不设置,那么浏览器窗口变化的时候,就不影响到左右的8个td的宽度。

仅仅影响到当中留白的那个td。这是经常使用的一种适应不同浏览器在不同屏幕上不同宽度的一种方法。

修改css代码,增加tda1到tda9的样式。

刷新页面:

可以看到,基本的按钮位置已经到位,可以不需要table的边框了。

删除掉table的边框样式,同时针对最上面一排的整个table的样式table2增加一个下边框的样式,做出一条灰色的分割线出来。

修改css代码如下:

刷新页面:

接下来,逐步添加图片或者按钮。

第一步,添加第一个图片,logo图片。然后增加后面的2个icon图标,这里icon图标要用到一个新的技术,就是css3的content属性。

并且通过自定义字体文件,来显示图标类型的文字。具体内容这里不深入讲解,大家只要了解,通过引入自定义字体文件的方式就可以将字体文件里面的特殊符号图标形状的文字显示在网页上。它看起来是一个图标,但其本质是一个文字。这是这个文字做成图标样子了。比如很多网页中出现的各种箭头图标,很多都是文字。

修改css代码如下:

修改html代码如下:

刷新页面:

可以看到,前面3个图标都模仿编写完成了。

接下来模仿搜索框部分。

搜索框可以用外面套一个div,div的背景色是灰色,然后边角做成圆角的。

当中放一个input标签可以用于输入,input标签是一个新的标签,具体的作用就是让用户可以输入文本的。

后面的课程中会详细讲解的,这里不深入讲解。

然后右边放一个类似前面的图标用i标签并设置content自定义文字编码来实现。

修改css代码如下:

修改html代码如下:

刷新页面:

接下来,修改右侧的4个图标和按钮。

第1个很简单,也是一个文字图标,和前面的下载图标一样。

第2个是一个文字a链接,样式为灰色文字。

第3个也是一个文字a链接,注意边框为圆角边框,颜色为红色。

第4个也是一个文字a链接,底色为红色,边框为圆角,里面包含一个i标签和文字,其中i标签也是一个羽毛笔的图标文字。

修改css代码如下:

修改html代码如下:

刷新页面:

可以看到,通过分析原始网页的相关CSS样式的值,然后模仿写到自己的css文件里面,就能很方便的将网页元素模仿编写出同样类似的效果。当然,模仿后和原来的不是百分之百一样的,这很难做到,因为毕竟每个网页的排版布局是不一样的实现方式。只要掌握了这个方法,通过学习不同的网页的实现方式,很快就能掌握如何编写出自己的网站效果了。

接下来的实现过程,学哥就不再逐个元素的讲解了,直接将修改好的代码呈现给大家。

大家也可以先不要往下看学哥的实现结果,可以自己先尝试将网页剩余的元素全部编写出来。

实现下面左边的专题按钮

修改css代码如下:

修改html代码如下:

刷新页面:

可以看到关于专题这部分已经都做好了。由于专题太多了,而且都是重复的样式,这里就不做出所有的专题了,做出3个作为代表性的例子就足够了。

设置下面右边的td的宽度

现在可以调整下面一行的左右td的宽度了,将右侧的td的宽度固定为218px,左侧的td不固定宽度。

修改css代码如下:

刷新页面:

可以看到右侧td的宽度变大了,左侧的td的宽度变小了。

如果浏览器窗口拉大或者缩小会发生什么情况呢?

如果浏览器窗口放大的话,左侧td的宽度也会自动变大,是由于将table的宽度设置为100%了。

一个table设置为100%,也就是根据浏览器宽度变化而变化,同时一个tr里面的td如果设置了绝对宽度则宽度就不跟随浏览器变化而变化,如果td没有设置宽度,则这些td会根据内容的比例进行分配宽度。

假如一行里面只有一个td没有设置宽度,则剩余的宽度都会分配给这个td,那么浏览器宽度变化的话就只有这个td会改变宽度。

将浏览器窗口拉大一些,效果如下:

可以看到,右侧的td的宽度不变,而左侧的td的宽度变大了。

同时可以看到最上面一排按钮,只有当中留白的那个td也变大了。其它按钮的td并没有变化。

这个设置table宽度自适应浏览器宽度的方法,是一个比较好的控制浏览器宽度变化的方法。大家在编写网页时候要考虑到浏览器宽度的因素。

实现下面左边的文章标题链接

修改css代码如下:

修改html代码如下:

刷新页面:

可以看见第3行的左边部分,关于文章的内容全部做好了。

主要是css代码部分增加比较多。

实现下面右边的大图标按钮和作者排行内容

首先将第3行的左右2个td的垂直方向都靠上对齐:

修改css代码如下:

然后,修改右侧的大图标和作者排行内容。

修改css代码如下:

修改html代码如下:

刷新页面:

可以看到,所有的页面代表性元素全部样式都做成了。

多浏览器测试和多设备测试

到这里,完成了模仿一个真实的网页的全部工作,按照这种模式,可以模仿出各种各样的网页编码。

接下来,要将代码部署到本地服务器上。

然后通过安装不同的浏览器软件,例如IE浏览器,Chrome浏览器,Safari浏览器,Firefox浏览器进行不同浏览器的兼容性测试。

保证在不同的浏览器上看到的网页效果大致都一样,不要出现明显的不协调或不美观之处。

然后还要在不同的设备和操作系统上针对不同的浏览器做更大范围的兼容性测试,这样才能尽最大可能让我们编写的网页程序能够适应更多的计算机环境,呈现最好的效果。

第2章总结

前面通过15小节的内容,讲解了如何编写静态内容网站,如何部署到本地服务器,如何运用浏览器调试工具来学习和模仿编写网站,如何将网站程序部署到云服务器,如何购买一个域名并解析到云服务器,完整的通过2个实例演示了整个网站实现的过程。

下面来回顾一下每节课的内容,并说明重点以及自学是需要注意的地方。

第2.1节,主要是讲解关于网站的技术原理和要做的大概内容。

第2.2节,主要讲一个最最简单的网页代码是什么样子的,让大家有一个最直观的感受,从最简单的开始,html标签,head标签,title标签,body标签,和使用文本编辑器。

第2.3节,从一个网站的设计开始,然后讲解了br标签,b标签,设置网页网页的背景色,关于CSS样式定义以及颜色定义。

第2.4节,开始学习最重要的一个div标签,包括设置背景色,文字颜色,文字大小,尺寸单位,文字字体,文字斜体和加粗。

第2.5节,学习基本的CSS样式之后,学习将CSS样式和网页内容进行分离,更方便开发。

第2.6节,网页显示中很重要的宽度,高度,内边距,外边距,边框,可以将网页元素修饰的更美观大气。

第2.7节,在学会使用div进行页面排版布局之后,再学习使用table表格来对网页进行排版,掌握td的用法,包括设置内边距和字体,以及边框。

第2.8节,学习对table表格进行td合并以及设置排版样式,说明特定元素通过id设置样式,以及说明元素标签嵌套关系和顺序关系。

第2.9节,学习设置背景图片,以及img标签显示图片的方法,以及一些HTML和CSS代码注释以及缩进的格式。

第2.10节,学习如何让网页进行迁移,包括文字链接和图片链接,以及类似按钮的链接。

第2.11节,网页基本编写完成之后,将网页部署到本地一个Web服务器,通过局域网可以访问。

第2.12节,将网站部署到云服务器上,这样可以通过互联网访问网站页面。

第2.13节,创建好域名之后,将域名解析到云服务器,这样通过互联网可以访问域名就能看到网站页面了。

第2.14节,学习分析一个已经存在的网站,并进行设计规划,进行模仿编写网页。

第2.15节,一边分析网页,一边开始模仿编写网页,一个元素一个元素的编写,最终完整模仿整个网页。

通过整个15节课程,一步一步实现2个代表性网站页面,掌握如果使用HTML加CSS代码来编写实现静态内容网站。

为将来实现动态内容网站打下一个坚实的基础。

第3章简介

第2章的内容是很多互联网编程技术的基础。同样的,第3章的内容也是互联网编程技术的基础。

第3章开始讲解JavaScript编程技术,学习掌握如何通过代码实现改变网页显示元素的技术。

第3章以实现一个连连看网页游戏作为主线,穿插讲解关于JavaScript技术的方方面面,让大家在第3章结束之后,掌握好使用JavaScript技术进行交互式网页开发的技能。

往期教程

由于学哥的教程是系列教程,前后关联极强,请大家查看历史消息。

见HTML ! 用纯Python就能写一个漂亮的网页

我们在写一个网站或者一个网页界面的时候,需要学习很多东西,对小白来说很困难!比如我要做一个简单的网页交互:

天啊,听听头都大呢!其实我就给老板做一个简单的交互的页面,而且我只会Python ,有没有很简单的办法可以做到呢。

今天小编在Github上逛的时候,找到一个非常酷的神器,名字叫remi ,目前收获了2300个赞。

再见HTML ! 用纯Python就能写一个漂亮的网页

star并不是很多,但是这个库可是选入2018年的十大明星库,号称是一个独立的GUI库,而且最牛逼的就是这个库竟然小于 100K,是否很神奇呢,我们一起来体验看一下特性:

安装

如何安装呢,因为是Python 库,直接用pip 即可

如果是没有网络的,或者服务器跟外网不通的,可以离线安装。下载这个包,然后用install 安装

快速体验

我们来快速看一下,这个简单的Hello world网页。

再见HTML ! 用纯Python就能写一个漂亮的网页

这里面包含了一个 2个元素:

点击这个按钮还会改变Hello world的文本内容,看点一下就变成了Button pressed.

再见HTML ! 用纯Python就能写一个漂亮的网页

上面这个简单的效果,其实只用了20来行Python代码,都是原生的Python代码,没有用一行HTML .

我们来看一下源码:

再见HTML ! 用纯Python就能写一个漂亮的网页

整个的代码的结构层次还很清晰的:

再见HTML ! 用纯Python就能写一个漂亮的网页

更多复杂的网页元素

看完上面的设计是不是就觉得跟Python里面大名鼎鼎的tk库很相似啊,上面的只是开胃菜,这个remi还能提供更复杂的gui界面元素。

再见HTML ! 用纯Python就能写一个漂亮的网页

上面的是一个完整的demo页面,基本上常见的控件元素的都包含了,比如有菜单栏,文本,按钮,单选框,进度栏,下拉框,表格,弹出框,按钮选取文件路径,文件树形结构,日期等几十种控件。

需要更多2020最新Python资料 私信小编“学习”即可获取。