CSS——基础知识

通过上一篇博客的HTML程序——简历,可以看到我们的文字是很死板的,颜色是很单调的,要想让网页的样式变得好看,就需要借助CSS,CSS就相当于我们的ps技术一样

基本语法

选择器 + {一条/N条声明}
选择器就是要操作的对象,比如说div
声明就是要修改的属性,格式为键值对

<style>
	div {
	color: red;
	font-size: 10px;
	}
</style>

<div>hello</div>

CSS要写到style标签中(就如同html要写到html的标签中),style标签放在页面的任何位置都可以,但是一般我们习惯于放到head标签中

注释

和html不同,CSS用的注释是多行注释,这和C语言及java是相同的,不过也不支持//这种注释

<style>
	div{
		/* 这是注释 */
	}
</style>

引入方式

内部样式

也就是把CSS放到html的内部,一般放到head标签里

这样做可以让样式和页面分离开,但是分离的也并不彻底

行内样式(內联样式)

每个标签都可以有自己的style属性,直接可以在里面写CSS,这样的话就不用写选择器了

<div style="color:red">一条语句</div>

这样写只能用在简单样式上,太长的CSS语句将显得代码十分丑陋,并且难读,并且这样写只针对这个标签生效

如果我们在别的地方用内部样式的方法修改这个div的属性,例如把color改成绿色,那么这种改动并不会生效,因为行内样式的优先级高于内部样式,因此行内样式的效果会覆盖其他的样式

外部样式

创建一个CSS文件,在html文件中,用link标签将CSS文件导入,这样的话可以彻底分离两者的代码

例如:先创建一个style.css 的文件

div {
	color: red;
}

然后创建一个test.html的文件

<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>test</title>
	<link rel="stylesheet" href="style.css">
</head>
<body>
	<div>要变红的语句</div>
</body>

我们通过link中的href属性,把CSS的路径导入html文件中,使得样式生效

<link rel="stylesheet" href="CSS文件路径">

这样做有可能收到浏览器的缓存的影响,修改后不一定能立即生效,这时需要我们强制刷新(ctrl + F5)
并且,如果我们两个html文件都想用这个CSS样式的话,只需要都拿link导入CSS文件即可,不需要将CSS代码写两份

基本规范

大括号

推荐展开写大括号,而不是 { 和 } 在同一行

大小写

CSS不区分大小写,一般统一用小写字母

空格

一般冒号后加空格,选择器和 { 之间加空格

选择器

不同的选择器可以针对不同的标签的样式进行修改

标签选择器

上面写的代码都是标签选择器,选择的都是html中的基本标签,例如我们选择了div标签,就会把所有的div标签的样式都修改,不能差异化的改变样式

类选择器

<style>
	.blue {
		color: blue;
	}
</style>

<div class="blue">要被改成蓝色了</div>
<div>改不成蓝色</div>

在html中,每个标签都可以有自己的class属性,也就是类属性,当我们在CSS中用 . 开头就表示CSS的类名

这样的话即使是不同的标签,只要是相同的类名,就可以获得相同的样式,即使是相同的标签,类名不一样,那么样式就不一样了

id选择器

html中的每个元素都有id属性,并且这个值是在页面中唯一的

<style>
	#red {
		color: red;
	}
</style>
<div id="red">要变红了</div>

#开头的表示这是id选择器,通过id选择器,我们可以选到一个确定的元素上
类名是可以重复的,id是不能重复的

通配符选择器

<style>
	* {
		color: red;
	}
</style>

*会选择页面中的所有标签,让所有标签都变成红色

复合选择器

将多个基础选择器组合起来

后代选择器(包含选择器)

也就是选择某个父元素中的某个子元素

父元素 子元素 {样式声明}

中间要有空格分隔开

<ol class="one">
	<li>不会选到</li>
	<li><a href="#">会选到</a></li>
</ol>

<style>
	.one li a {
		color: red;
	}
</style>

这样的话就是选择的.one类下的li标签中的a标签,只有a标签会变红,其他父类标签不会变红
可以看到,这种后代选择器,不仅仅可以选择儿子辈,还可以选择孙子辈

子选择器

父元素>子元素 { 样式声明 }

这种只能选择儿子辈,不能选择孙子辈

并集选择器

也就是对不同的选择器,应用相同的样式

元素1, 元素2 { 样式声明 }

伪类选择器

选中元素的不同的状态
:hover 把鼠标放到该元素上的状态
:active 用鼠标点击该元素的状态

<style>
	button:hover {
		color: orange;
	} 
	button:active {
	color: red;
	}
</style>

当我们把鼠标放到按钮上时,按钮会变橙色,当我们点击该按钮时,该按钮会变成红色

常用元素属性

字体

使用font-family设置字体,需要保证自己的电脑上有这个字体

font-family: '宋体';

使用font-weight设置字体的粗细,值为100-900,越大越粗

font-weight: 700;

使用font-size设置字体的大小,单位是px(像素)

font-size: 40px;

颜色

使用color设置字体颜色

  1. 直接写单词:red,green,orange
  2. rgb/rgba的格式
  3. #16进制的数字
color: red;
color: #ff0000;
color: rgb(255, 0, 0);

对齐

text-align: [值];

值有以下几种:

  • center : 居中
  • left : 左对齐
  • right : 右对齐

装饰

text-decoration: [值];

值有以下几种:

  • underline : 下划线
  • overline : 上划线
  • line-through : 删除线
  • none : 什么线都没有

缩进

text-indent:[值];

值的单位有px和em
px代表像素,1px代表一个像素
em代表当前元素的文字大小
如果是负数,代表左缩进,如果是正数代表右缩进

行高

概念

HTML中的文字有多条基准线,按照高度从上往下依次是

  1. 顶线
  2. 中线
  3. 基线(英文单词的四线格的第三条线)
  4. 底线

其中我们这里的行高的概念,就是上下行两个文字的相对应的基本线的距离差,比如说上行文字的顶线到下行文字的顶线的距离就是行高

设置方式

line-height:[值];

这个值一般用像素来表示,例如30px
还可以用normal表示,chrome浏览器中的normal行高是21px

背景

背景颜色

background-color:[值];

这里的color的设置方式和上面的文字的color是一致的

背景图片

背景图片的引入

background-image: url(图片路径)

和之前的引入css文件的路径一样,相对路径是基于html的

背景图片的显示方式

background-repeat: [值]

值有以下几种:

  • repeat : 平铺
  • no-repeat : 不平铺
  • repeat-x : 水平平铺
  • repeat-y : 垂直平铺

默认是repeat

背景图片的显示位置

background-position: x y;

这里的值可以是上面这样的精确指定坐标
还可以是方位名词(top,right,bottom,right,center)
还可以既有方位名词,也有精确坐标

注意:

  1. 如果只制定了一个方位名词,例如top,则另一个方位(水平)默认居中
  2. 如果参数只有一个精确值,则指定的是水平坐标
  3. 这里的x从左到右是从0到max,y从上到下是0到max

背景图片的尺寸

background-size: [值];

这里的值有以下几种形式

  1. 具体数值 例如10px 20px,代表宽度为10像素,高度为20像素
  2. 百分比: 按照父元素的大小进行比例的设置
  3. cover: 尽量的大,使图片可以完全覆盖背景
  4. contain: 保证图片能够完整的显示

圆角矩形

我们的html中的button默认是方方正正的,看着十分难看,使用下面这个属性,可以让按钮变得圆润一些

border-radius: [值]

这里的值是一般是像素的数值,例如10px,代表矩形内切圆的半径大小,可以推断出,如果我们的按钮是个正方形,边长是20px,那么如果这个值设置成10px,我们将得到一个圆形的按钮

还可以展开写,分别设定矩形的四个角的radius值

border-top-left-radius:2em;
border-top-right-radius:3em;
border-bottom-right-radius:4em;
border-bottom-left-radius:5em;

还可以组合在一起,直接在radius中设置4个值

border-radius: 10px 20px 30px 40px;

这种是顺时针排列,也就是说左上是10px,右上是20px,右下是30px,左下是40px

元素显示模式

之前我们提到块级元素是独占一行的,行内元素是不独占的,事实上,这两个概念还有以下特性

块级元素

  1. 独占一行
  2. 高度,宽度,边距,行高都可以控制
  3. 宽度默认和父级元素一样
  4. 是一个容器,里面可以添加行内元素和块级元素

行内元素

  1. 不独占一行
  2. 不能设置高度,宽度,行高
  3. 可以设置内边距,不能设置外边距
  4. 行内元素中只能有文本或者行内元素,不能有块级元素

切换显示模式

display: [值];

我们可以用上面这个代码,指定值,使得行内元素与块级元素相互切换
值有以下几种:

  • block : 改为块级元素
  • inline : 改为行内元素
  • inline-block : 改为行内块元素
  • noen : 不显示这个元素

盒模型

每个HTML元素都相当于是一个矩形的盒子,里面有这几个属性

  • content 内容
  • border 边框
  • padding 内边距
  • margin 外边距

边框

和我们的画框一样

基础属性调节

粗细
border-width:[值];

值一般就是像素

样式
border-style:[值];

值有以下几种:

  • solid 实线边框
  • dashed 虚线边框
  • dotted 点线边框
    可以通过上下左右设置不同方位上的边框上的属性

如果我们的内容是100px100px,边框每个方位都是5px,那么最终我们的盒元素的大小是110110px,也就是说边框会撑大我们的盒子

那么,我们可以通过下面这个代码来避免边框撑大盒子

box-sizing: border-box;

内边距

也就是内容和边框之间的距离
我们可以通过上下左右,来设置不同方位的内边距大小

padding-top
padding-bottom
padding-left
padding-right
  1. 如果padding只有一个元素,如10px,那么设置的是上下左右的边距都是10px
  2. 如果是两个元素,例如10px,20px,则设定的事上下边距为10px,左右是20px
  3. 如果是三个元素,例如10px,20px,30px,那么设定的是上边距为10px,左右是20px,下边距为30px
  4. 如果是四个元素,则默认方向是顺时针,上右下左

可以看出来,这种设定方式非常乱,建议大家还是规规矩矩的单独设定每一个方位的属性

外边距

两个块级元素之间的距离
写法和内边距一致

弹性布局

<div>
        <span>1</span>
        <span>2</span>
        <span>3</span>
</div>
<style>
div {
	width: 100%;
	height: 150px;
	background-color: red;
}
div>span {
	background-color: green;
	width: 100px;
	}
</style>

当我们运行上述代码时,可以发现几个span标签混在了一起,宽度并没有生效
此时我们在div中加上

display: flex;

这样的话,几个span就有了高度和宽度,默认靠左对齐

justify-content: space-around;

用上述代码可以水平均匀的隔开所有的元素

justify-content: spcace-between;

用上述代码可以水平均匀的,并且左右两侧无空隙的隔开所有元素

justify-content: flex-end;

用上述代码,可以使所有元素靠右对齐

垂直方向

align-items: [值];
  • stretch 行拉伸填充所有空间(默认)
  • center 中央
  • flex-start 开头
  • flex-end 结尾
  • space-between 均匀分布
  • space-around 两端占一半,其余均匀分布
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值