CSS基础(一)day3

1. CSS初识

CSS(Cascading Style Sheets的缩写)

CSS通常称为CSS样式表或层叠样式表(级联样式表),主要用于设置HTML页面中的文本内容(字体、大小、对齐方式等)、图片的外形(宽高、边框样式、边距等)以及版面的布局等外观显示样式。

CSS以HTML为基础,提供了丰富的功能,如字体、颜色、背景的控制及整体排版等。而且还可以针对不同的浏览器设置不同的样式。、

1.1 CSS样式规则

使用CSS时,需要了解CSS样式规则,具体格式如下:

        CSS规则主要由两个主要部分构成:选择器,以及一条或多条声明

h1 {  /*选择器*/
    color: red;	/*声明*/
    font-size: 14px;  /*声明*/
}

一般都由键值对形势出现

在上面的样式规则中:

  1. 选择器用于指定css样式作用的HTML对象,花括号内是对该对象设置的具体样式。

  2. 属性和属性值之间以“键值对”的形式出现。

  3. 属性是对指定的对象设置的样式属性,例如字体大小、文本颜色等。

  4. 属性和属性值之间用英文“:”连接。

  5. 多个键值对之间使用英文“;”区分。


2. CSS引入方式

2.1 行内样式

直接在标签的属性中使用style声明,在style属性中添加css声明即可。

由于要将表现(样式)和内容(结构)混杂在一起,行内样式表会损失掉样式表的许多优势。请慎用这种方法,例如当样式仅需要在一个元素上应用一次时。

<p style="color: red;">买了很多的热狗!selfish</p>

直接在写在标签里面的样式,样式作用在标签上

2.2 内联样式

定义在head或body标签中,使用style标签.

当单个文档需要特殊的样式时,就应该使用内部样式表。

初学时常用内联样式

/*内部定义的style样式*/
<style type="text/css">
	h1 {
        background-color: deeppink;
        color: blue;
	}
</style>

2.3 外部样式表

定义在外部的css文件中,需要在head中引入相应的css文件

当样式需要应用于很多页面时,外部样式表将是理想的选择。在使用外部样式表的情况下,你可以通过改变一个文件来改变整个站点的外观。每个页面使用<link> 标签链接到样式表。

使用link来导入css文件:

/*关联外部的css样式文件*/
<link type="text/css" rel="stylesheet" href="../css/test.css" />

type:定义链接文档的类型,在这里需要指定为"text/css",表示链接的外部文件为css样式表。
rel:定义当前文档与被链接文档之间的关系,在这里需要指定为"stylesheet",表示被链接的文档是一个样式表文件。
href:定义所链接外部样式表文件的url,可以是相对路径,也可以是绝对路径。

css文件中:定义CSS样式

h1{
	background-color: rosybrown;
	color: #0000FF;	
}

三种样式的总结:

优点缺点使用情况控制范围
行内样式表书写方便,权重高没有实现结构与样式相分离较少控制一个标签(少)
内部样式表部分结构和样式相分离没有彻底分离较多控制一个页面(中)
外部样式表完全实现结构和样式相分离需要引入最多,强烈推荐控制整个站点(多)

3种样式表的优先级:

1、行内样式表 > 内部样式表 = 外部样式表

2、当内部样式表和外部样式表同时存在时,采用 就近原则 来使用样式


3. 文字属性

3.1 font-size:字号大小

font-size属性用于设置字号,该属性的值可以使用相对长度单位,也可以使用绝对长度单位。其中,相对长度单位比较常用,推荐使用像素单位px,绝对长度单位使用较少。

tips:

  1. 现在网页中普遍使用14px+。

  2. 尽量使用偶数的数字字号,ie6等老式浏览器支持奇数会有bug。

代码如下

<style>
	h1 {
		font-size: 40px;
	}
	h2 {
		font-size: 30px;
	}
	p {
		font-size: 14px;
        width: 2em
	}
</style>

<h1>This is heading 1</h1>
<h2>This is heading 2</h2>
<p>This is a paragraph.</p>

3.2 font-family:字体

font-family属性用于设置字体。网页中常用的字体有宋体、微软雅黑、黑体等。例如将网页中所有段落文本的字体都设置为微软雅黑,可以使用如下CSS样式代码:

p {
    font-family:"微软雅黑";
}
/*可以同时指定多个字体,中间以逗号隔开,表示如果浏览器不支持第一个字体,则会尝试下一个,直到找到合适的字体*/

我们经常使用微软雅黑 = Microsoft YaHei

常用技巧:

  1. 各种字体之间必须使用英文状态下的逗号“,”分隔。

  2. 中文字体需要加英文状态下的引号,英文字体一般不需要加引号。但如果多个英文单词则需要引号引起来,当需要设置英文字体时,英文字体名必须位于中文字体名之前。例如:font-family: Arial, "微软雅黑"; 。

  3. 如果字体名中包含空格、#、$等符号,则该字体必须加英文状态下的单引号或双引号,例如:font-family: "Times New Roman";。

  4. 尽量使用系统默认字体,保证在任何用户的浏览器中都能正确显示。

注:

在CSS中设置字体名称,是可以直接写中文的。但是在文件编码(GB2312、utf-8等)不匹配时会产生乱码的错误。xp系统不支持类似“微软雅黑”的中文。

方案一:可以使用英文来替代,比如:font-family:"Microsoft Yahei"; 。

方案二:在CSS中直接使用Unicode编码来写字体名称可以避免这些错误。使用Unicode写中文字体名称,浏览器是可以正确解析的。比如:font-family:"\5FAE\8F6F\96C5\9ED1",表示设置字体为“微软雅黑”。

在Unicode编码表中,中文的 取值范围是\u4e00~\u9fa5

字体名称英文名称Unicode编码
宋体Simsun\5B8B\4F53
新宋体NSimsun\65B0\5B8B\4F53
黑体SimHei\9ED1\4F53
微软雅黑Microsoft YaHei\5FAE\8F6F\96C5\9ED1
楷体_GB2312KaiTi_GB2312\6977\4F53_GB2312
隶书LiSu\96B6\4E66
幼圆YouYuan\5E7C\5706
华文细黑STXihei\534E\6587\7EC6\9ED1
细明体MingLiU\7EC6\660E\4F53
新细明体PMingLiU\65B0\7EC6\660E\4F53

3.4 font-weight:字体粗细

字体加粗除了用 b 和 strong 标签外,还可以使用CSS来实现,但CSS是没有语义的。

<!-- 
    可用值     值的说明 
    normal    缺省值。字体正常显示。 
    bold      粗体 
    bolder    比粗体更加粗 
    lighter   比正常字体淡 
    100       至少和200一样淡 
    200       至少和100一样粗,至少和300一样淡 
    300       至少和200一样粗,至少和400一样淡 
    400       字体正常显示,相当于normal。 
    500       至少和400一样粗,至少和600一样淡 
    600       至少和500一样粗,至少和700一样淡 
    700       粗体,相当于bold。 
    800       至少和700一样粗,至少和800一样淡 
    900       至少和800一样粗 
-->

<style type="text/css">
	p {
		font-weight: normal;
	}
	div {
		font-weight: bold;
	}
	span {
		font-weight: bolder;
	}
</style>

<p>这是normal的文本</p>
<div>这是bold的文本</div>
<span>这是bolder的文本</span>

我们常用:

数字 400 等价于 normal, 而 700 等价于 bold

3.5 font-style:字体风格

字体倾斜除了用 i 和 em 标签外,可以使用CSS实现,但CSS是没有语义的。

font-style属性用于定义字体风格,如设置斜体、倾斜或正常字体,其可用属性值如下:

  • normal:默认值,浏览器会显示标准的字体样式。

  • italic:浏览器会显示斜体的字体样式。

  • oblique:浏览器会显示倾斜的字体样式。

<!-- 
    italic和oblique区别:
        要搞清楚这个问题,首先要明白字体是怎么回事。一种字体有粗体、斜体、下划线、删除线等诸多属性。
        但是并不是所有字体都做了这些,一些不常用的字体,或许就只有个正常体,如果你用Italic,就没有效果了~这时候你就要用                Oblique.
        可以理解成Italic是使用文字的斜体,Oblique是让没有斜体属性的文字倾斜!

    CSS2.0官网解释:
        italic和oblique都是向右倾斜的文字, 但区别在于Italic是指斜体字,而Oblique是倾斜的文字,对于没有斜体的字体应该使用            Oblique属性值来实现倾斜的文字效果.
-->

<style>
	p {
		font-style: normal;
	}		
	div {
		font-style: italic;
	}		
	span {
		font-style: oblique;
	}
</style>

<p>这是一个段落,正常。</p>
<div>这是一个段落,斜体。</div>
<span>这是一个段落,斜体。</span>

注:

平时我们很少给文字加斜体,反而是给斜体标签(i,em)改为普通模式。

3.6 font综合设置字体样式

font属性用于对字体样式进行综合设置,其基本语法如下:

注意:

使用font属性时,必须按照上面语法格式中的顺序书写,不能更换顺序,各个属性以空格隔开。 ​ 其中不需要的属性可以省略(取默认值),但必须保留font-size、font-family属性,否则font属性将不起作用。

<style type="text/css">
	p{
		font: italic bold 12px/30px Georgia, serif;
	}
</style>

<p>这是一个设置了字体样式的文本</p>

4.文本样式

4.1 color 文本颜色

color属性用于指定文本的颜色,有3种表现形式。

  • color-name:使用颜色名称,如:red, transparent

  • hex-number:使用十六进制数表示,取值是0~f,每个颜色使用两位表示,如:#ff0000表示红色 0-9 a:10 b:11 c:12 d:13 e:14 f:15

  • rgb-number:使用rgb颜色值表示,取值0~255,如rgb(255,0,0),rgba(100%, 0%, 0%, .5)

    需要注意的是,如果使用RGB代码的百分比颜色值,取值为0时也不能省略百分号,必须写为0%。a的值使用小数表示

  • rgba:在rgb上多了一给a,表示透明度,取值0~1 完全透明~完全不透明

  • CSS3的hsl:使用色相、饱和度、亮度来定义颜色。

    HSL 即色相、饱和度、亮度(英语:Hue, Saturation, Lightness)。

    • 色相(H)基本属性,就是平常所说的颜色名称,如红色等,取值: (0 ~360) ,0 / 360)为红色, 120 为绿色, 240 为蓝色

    • 饱和度(S)是指色彩的纯度,越高色彩越纯,低则逐渐变灰,取值: 0-100% 。

    • 亮度(L)增加亮度,颜色会向白色变化;减少亮度,颜色会向黑色变化,取 值:0-100%。

<style type="text/css">
	h1 {
		color: red;
	}
	h2 {
		color: #00ff00;
	}
	h3 {
		color: rgb(0, 0, 255);
	}
    h3 {
		color: ;
	}
</style>

<h1>标题1</h1>
<h2>标题2</h2>
<h3>标题3</h3>

4.2 text-align 文本对齐方式

text-align用于指定元素文本的水平对齐方式,取值有left、right、center、justify(两端对齐文本)

<style type="text/css">
	h1 {
		text-align: left;	/*左对齐*/
	}
	h2 {
		text-align: center;	/*居中对齐*/
	}
	h3 {
		text-align: right; /*右对齐*/
	}
	p {
		text-align: justify; /*分散对齐,主要针对英文段落中出现空格时,由于两边对齐,空格的大小会有变化*/
	}
</style>

<h1>标题1</h1>
<h2>标题2</h2>
<h3>标题3</h3>

<p>当我年轻的时候,我梦想改变这个世界;当我成熟以后,我发现我不能够改变这个世界,我将目光缩短了些,决定只改变我的国家;当我进入暮年以后,我发现我不能够改变我们的国家,我的最后愿望仅仅是改变一下我的家庭,但是,这也不可能。当我现在躺在床上,行将就木时,我突然意识到:如果一开始我仅仅去改变我自己,然后,我可能改变我的家庭;在家人的帮助和鼓励下,我可能为国家做一些事情;然后,谁知道呢?我甚至可能改变这个世界。”</p>

4.3 text-decoration 文本修饰

text-decoration用于对文本添加修饰,如下划线、删除线等。有如下取值:

  • none:默认,定义标准的文本,没有任何修饰。

  • underline:定义在文本下方的一条线

  • overline:定义在文本上方的一条线

  • line-through:定义穿过文本的一条线

<style type="text/css">
	h1 {
		text-decoration: none;
	}
	h2 {
		text-decoration: overline;
	}		
	h3 {
		text-decoration: line-through;
	}		
	h4 {
		text-decoration: underline;
	}
	h5 {
        /* 文字闪烁,只在火狐中支持 */
		text-decoration: blink;
	}
</style>

注:

我们经常在a标签上作用text-decoration

4.4 text-transform 文本转换

text-transform用于转换文本的大小写(主要用于英文),其取值有:

  • none:默认

  • capitalize:文本中每个单词以大写字母开头

  • uppercase:所有单词字母都大写

  • lowercase:所有单词字母都小写

<style>
	h1 {text-transform:uppercase;}
	h2 {text-transform:lowercase;}
	h3 {text-transform:capitalize;}
</style>

4.5 text-indent 文本缩进

text-indent 属性规定文本块中首行文本的缩进。取值有:

  • 数值:表示像素值

  • 百分比:基于父元素宽度的百分比的缩进。

注意: 负值是允许的。如果值是负数,将第一行左缩进。

<style>
	p {
        text-indent:50px;
    }
</style>

<!-- 小技巧: 首行缩进2字符使用 2em -->

4.6 text-shadow 文本阴影

text-shadow用于设置文本的阴影效果。语法格式是

text-shadow: h-shadow v-shadow blur color;
  • h-shadow:必需。水平阴影的位置。允许负值。horizontal, X轴往右是正值

  • v-shadow:必需。垂直阴影的位置。允许负值。 vertical,Y轴向下是正值

  • blur:可选。模糊的距离。

  • color:可选。阴影的颜色。

<style type="text/css">
	h1 {
		text-shadow: 2px 2px #FF0000;
	}	
	h2 {
		text-shadow: 2px 2px 8px #FF0000;
	}		
	h3 {
		color: white;
		text-shadow: 2px 2px 4px #000000;
	}		
	h4 {
		text-shadow: 0 0 3px #FF0000;
	}
</style>

4.7 direction 文本方向

direction 用于指定文本的方向。取值如下:

ltr:默认的,文本方向从左到右 left to right

rtl:文本方向从右到左。right to left

<style type="text/css">
	p {
		direction: ltr;
	}		
	div {
		direction: rtl;
        unicode-bidi: bidi-override;
	}
</style>

4.8 letter-spacing 字符间距

letter-spacing 属性增加或减少字符间的空白(字符间距),使用数值表示,可以是负数。主要用于汉字

<style>
	h1 {
        letter-spacing:2px;
  	}
	h2 {
      	letter-spacing:-3px;
  	}
</style>

4..9 word-spacing 字间距

word-spacing属性增加或减少单词与单词之间的空白,允许使用负值。主要用于英文段落

<style>
  p { 
      word-spacing:30px;
  }
</style>

4.10 line-height 行高

line-height 用于设置文字行与文字行之间的距离。取值如下:

  • number:设置数字,此数字会与当前的字体尺寸相乘来设置行间距。

  • length:设置固定的行间距 px em 。

  • %:基于当前字体尺寸的百分比行间距。

    注意:一般情况下,行距比字号大7 8像素即可。

<style>
    span {
    	line-height:2;
    }
    p {
        line-height:20px;
    }
    div {
        line-height:100%;
    }
</style>

使用技巧:在一行的盒子内,我们设定行高等于盒子的高度,就可以是文字垂直居中。只适用于单行文本

单行文字垂直居中的原理


5 基本选择器

5.1 标签选择器(元素选择器)

 

标签选择器是指用HTML标签名作为选择器,按标签名称分类,为页面中某一类标签指定统一的CSS样式。其基本语法格式如下:

标签名{属性1:属性值1; 属性2:属性值2; ...}

标签选择器最大的优点是能快速为页面中同类型的标签统一样式,同时这也是它的缺点,不能设计差异化样式。

示例:

h1 {
    color: red;
}

p {
    color: green;
}

5.2 id选择器

id选择器使用“#”进行标识,后面紧跟id名,基本语法格式如下:

#id名{属性1:属性值1; 属性2:属性值2; ...}
​
<标签名 id="id值"></标签名>

该语法中,id名即为HTML元素的id属性值,大多数HTML元素都可以定义id属性,元素的id值是唯一的,只能对应于文档中某一个具体的元素。用法基本与类选择器相同。

<div class="lin">林黛玉</div>	<!-- 使用类选择器 -->
<div id="xue">薛宝钗</div>		<!-- 使用id选择器 -->

 5.3 类选择器

类选择器使用“.”(英文点)进行标识,后面紧跟类名,其基本语法格式如下:

定义:
.类名{属性1:属性值1; 属性2:属性值2; ...}
​
调用:
<标签名 class="类名"></标签名>

类选择器最大的优势是可以为元素对象定义单独或相同的样式。

示例:

 

小技巧:

  1. 长名称或词组可以使用中横线来为选择器命名。text-color-red

  2. 不要纯数字、中文等命名,尽量使用英文字母来表示。见名知意

5.4 多类名选择器

我们可以给标签指定多个类名,从而达到更多的选择目的。

<!--在class属性中使用多个类名,表示同时满足多个样式 -->
<div class="font20 red fontWeight">西游记</div> 
<div class="font20">红楼梦</div>
<div class="font14 fontWeight">三国演义</div>
<div class="font14">水浒传</div>

如图:

 

注意:

  1. 样式显示效果跟HTML元素中的类名先后顺序没有关系,受CSS样式书写的上下顺序有关。

  2. 各个类名中间用空格隔开

多类名选择器在后期布局较为复杂的情况下使用较多。

5.5 id选择器和类选择器区别

W3C标准规定,在同一个页面内,不允许有相同名字的id对象出现,但是允许相同名字的class。

类选择器(class)好比人的名字,可以重复使用,如:李伟、张伟

id选择器(id)好比人的身份证号,是唯一的,不允许重复,只能使用一次。

5.6 通配符选择器

通配符选择器用“*”号表示,它是所有选择器中作用范围最广的,能匹配页面中所有的元素。其基本语法格式如下:

* {属性1:属性值1; 属性2:属性值2; ...}

例如下面的代码,使用通配符选择器定义CSS样式,清除所有HTML元素的默认边距。

* {
    margin: 0;    /*定义外边距*/
    padding: 0;    /*定义内边距*/
}

注意:

通配选择器较少使用。

5.7 伪类选择器

伪类选择器用于向某些选择器添加特殊的效果。比如给链接添加特殊效果,比如可以选择第1个,第n个元素。

伪类选择器使用“:”冒号来表示,比如 :link{}

(1) 链接伪类选择器

链接伪类选择器主要针对于a标签

a:link        /*未访问的链接*/
a:visited    /*已访问的链接*/
a:hover        /*鼠标移动到链接上*/
a:active    /*选定的链接*/

注意:

  1. a:hover 必须在 a:link 和 a:visited 之后。

  2. a:active 必须在 a:hover 之后,需要严格按顺序才能看到效果。

所以,写的时候顺序尽量不要颠倒,按照l o v e h a t e来记忆

<style>
	a:link {		/*未访问的链接*/
		font-size: 16px;
		color: grey;
		font-weight: 700;
	}
	a:visited {		/*已访问的链接 表示已经点击过一次的状态*/
		font-size: 16px;
		color: orange;
		font-weight: 700;
	}
	a:hover {		/*鼠标移动到链接上*/
		font-size: 16px;
		color: red;
		font-weight: 700;
	}
	a:active {		/*选定的链接  鼠标点击不松开的状态*/
		font-size: 16px;
		color: blue;
		font-weight: 700;
	}
</style>

实际工作中,链接伪类选择器使用简写即可。

a {        /*a是标签选择器,所有的链接*/
    font-weight: 700;
    font-size: 16px;
    color: grey;
}
a:hover {    /*:hover 是链接伪类选择器 鼠标移动到链接上*/
    color: red;        /*鼠标经过时,文本由原来的灰色变为红色*/
}

小米:#ff6700

京东:#f10215

支付宝:#00bbee

微信:#348903

(2)结构伪类选择器(部分)_Jerendipity的博客-CSDN博客




 

5.8 input伪类(补充)

:focusinput:focus选择获得焦点的 input 元素。
:checkedinput:checked选择每个被选中的 input 元素。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值