在 Internet 早期阶段(CSS大量使用之前),页面的内容和样式都由 HTML 来负责,这是一个相当糟糕的问题。
万维网联盟 W3C(World Wide Web Consortium)意识到这个问题,于1997年推出 CSS 1.0(当前最新的版本是 CSS3),正式推动了内容(HTML)和表现(CSS)的分离,人们开始可以把所有的布局和样式代码从 HTML 中移除放入到 CSS 中。
通过学习,让我了解了CSS的基本概念:CSS是级联样式表(Cascading Style Sheets)的缩写。HTML 用于撰写页面的内容,而 CSS 将决定这些内容该如何在屏幕上呈现。
网页的内容是由 HTML的元素构建的,这些元素如何呈现,涉及许多方面,如整个页面的布局,元素的位置、距离、颜色、大小、是否显示、是否浮动、透明度。
了解了一条CSS样式规则由两个主要的部分构成:选择器,以{}包裹的一条或多条声明:
这条规则表明,页面中所有的一级标题都显示为蓝色,字体大小为12像数。
其中:
选择器是您需要改变样式的对象(上图的规则就一级标题生效)。
每条声明由一个属性和一个值组成。(无论是一条或多条声明,都需要用{}包裹,且声明用;分割)
属性(property)是您希望设置的样式属性(style attribute)。每个属性有一个值。属性和值被冒号分开。
选择器
包括元素选择器,id和class选择器。其中class选择器使用非常普遍。
三种方法:
新建如下内容的一个 HTML文件(后缀为.html),在同一目录新建一个样式表文件mycss.css(注意后缀名为css),在浏览器中打开这个 HTML 文件即可。主要是在项目目录下建一个文件夹如css专门存放样式表文件,如此我们引入样式文件时路径就变为 ./css/mycss.css之类的。
将样式放在 HTML 文件中,注意在< head >元素中引入了< style >标签,放入样式,但是一般而言,只有页面的样式规则较少时可采用这种方式。
内联样式,就是直接把样式规则直接写到要应用的元素中,是最不灵活的一种方式,完全将内容和样式合在一起,实际应用中非常少见。
从高到低分别是:
内联样式、内部样式表或外部样式表、浏览器缺省样式
1.颜色:基本语法< h3 style=“background-color:Tomato;” >Tomato< /h3 >(表示设置背景为tomato这种颜色),可以采用颜色名称也可以使用颜色RGB16进制值,来设定前景或背景的颜色。
2.尺寸:可以采用 height 和 width 设定元素内容占据的尺寸。常见的尺寸单位有:像数 px,百分比 %等。
3.对齐:对于元素中的文本,可以简单的设置text-align属性为left, center, right即可(显然缺省的是左对齐)。
所谓盒子模型,在这次可学习之后有了如下了解:一个 HTML 元素可以看作一个盒子。从内到外,这个盒子是由内容 content, 内边距 padding, 边框 border, 外边距 margin构成的。
其中:
Content 盒子的内容,如文本、图片等
Padding 填充,也叫内边距,即内容和边框之间的区域
Border 边框,默认不显示
Margin 外边距,边框以外与其它元素的区域
无论边框、内边距还是外边距,它们都有上下左右四个方向。
例如:设置一个四边全为黑色的边框
HTML文件:< p class=“example-1” >I have black borders on all sides.< /p >
CSS文件:.example-1 {
border: 1px dotted black; /* 上下左右都相同 */
} 即可完成
position属性用于对元素进行定位。该属性有以下一些值:
static 静态
relative 相对
fixed 固定
absolute 绝对
设置了元素的position属性后,我们才能使用top, bottom, left, right属性,否则定位无效。
其中分别如下说明:
static
设置为静态定位position: static;,这是元素的默认定位方式,也即你设置与否,元素都将按正常的页面布局进行。
即:按照元素在 HTML出现的先后顺序从上到下,从左到右进行元素的安排。
relative
设置为相对定位position: relative;,这将把元素相对于他的静态(正常)位置进行偏移
fixed
设置为固定定位position: fixed;,这将使得元素固定不动(即使你上下左右拖动浏览器的滚动条)。
此时元素固定的位置仍由top, bottom, left, right属性确定,但相对的是视口(viewport,就是浏览器的屏幕可见区域)
absolute
设置为绝对定位position: absolute;,将使元素相对于其最近设置了定位属性(非static)的父元素进行偏移。
如果该元素的所有父元素都没有设置定位属性,那么就相对于这个父元素。
素内容超过其指定的区域时,我们通过溢出overflow属性来处理这些溢出的部分。(该语法一般在CSS文件的最后一行进行说明,例如overflow-y: scroll;)
溢出属性有如下几个值:
visible 默认值,溢出部分不被裁剪,在区域外面显示
hidden 裁剪溢出部分且不可见
scroll 裁剪溢出部分,但提供上下和左右滚动条供显示
auto 裁剪溢出部分,视情况提供滚动条
其中:在一个区域或容器内,我们可以设置float属性让某元素水平方向上向左或右进行移动,其周围的元素也会重新排列。我们常用这种样式来使图像和文本进行合理布局:例如在CSS文件中设置**float: right;**则表示向右浮动。
可以用opacity对任何元素(不过常用于图片)设置不透明度。
值在[0.0~1.0]之间,值越低,透明度越高,例如设置一个透明度的语法:
.opacity-2 {
opacity: 0.2;
}
CSS有三种选择器:元素、id 和 class ,组合选择器就是将其进行组合达到我们想要的效果。
其中包括:
后代选择器
以空格作为分隔,如:.haha p 代表在div元素内有.haha这种类的所有元素。
子选择器
也称为直接后代选择器,以>作为分隔,如:.haha > p 代表在有.haha类的元素内的直接< p >元素。
学到了:伪类或伪元素用于定义元素的某种特定的状态或位置等。
比如我们可能有这样的需求:
鼠标移到某元素上变换背景颜色
超链接访问前后访问后样式不同
离开必须填写的输入框时出现红色的外框进行警示
保证段落的第一行加粗,其它正常。这些都可以用其解决。
本次对CSS的学习,学习的内容很多,要记的东西不少但是都很有趣,结合例程再通过自身在VS code上的实践,更能够强化我自身的动手能力和学习领悟,深化了自身对于CSS一些基本概念的学习和掌握程度,并通过学习了解了CSS和HTML之间的联系及如何互相结合运用,收获了很多新的东西。