前端复习2:CSS-1

1、HTML的局限性

  • HTML满足不了设计者的需求
  • 操作html属性不方便
  • HTML里面添加样式带来的是无尽的臃肿和繁琐

2、CSS

CSS的最大贡献就是: 让 HTML 从样式中脱离, 实现了 HTML 专注去做 结构呈现,样式交给css,实现结构(html)与样式(css)相分离

2.1.介绍

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

2.2. 引入CSS样式表(书写位置)

2.2.1 行内式(内联样式,行内样式、行间样式.)
(1)是通过标签的style属性来设置元素的样式
(2)语法:

<标签名 style="属性1:属性值1; 属性2:属性值2; 属性3:属性值3;"> 内容 </标签名>

(3)缺点:没有实现样式和结构相分离

2.2.2内部样式表(内嵌样式表)
(1)是将CSS代码集中写在HTML文档的head头部标签中,并且用style标签定义
(2)语法:

<head>
<style type="text/CSS">
    选择器(选择的标签) { 
      属性1: 属性值1;
      属性2: 属性值2; 
      属性3: 属性值3;
    }
</style>
</head>

(3)注意:

  • style标签一般位于head标签中,当然理论上他可以放在HTML文档的任何地方。
  • type=“text/css” 在html5中可以省略。
  • 只能控制当前的页

(4)缺点:没有彻底分离

2.2.3外部样式表(外链式,链入式)
(1)是将所有的样式放在一个或多个以**.CSS**为扩展名的外部样式表文件中,通过link标签将外部样式表文件链接到HTML文档中
(2)语法:

<head>
  <link rel="stylesheet" type="text/css" href="css文件路径">
</head>

(3)注意:
link 是个单标签,需要放在head头部标签中,并且指定link标签的三个属性

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

2.2.4 总结
在这里插入图片描述

2.3 CSS选择器

2.3.1 CSS选择器作用

  • 选择标签, 找到特定的HTML页面元素,把我们想要的标签选择出来
  • 基础选择器、复合选择器

2.3.2 CSS基础选择器
(1)标签选择器

  • HTML标签名称作为选择器,按标签名称分类,为页面中某一类标签指定统一的CSS样式。
  • 语法:
标签名{属性1:属性值1; 属性2:属性值2; 属性3:属性值3; } 
  • 作用:可以把某一类标签全部选择出来 比如所有的div标签 和 所有的 span标签
  • 优点: 是能快速为页面中同类型的标签统一样式
  • 缺点: 不能设计差异化样式

(2)类选择器

  • 用“.”(英文点号)进行标识,后面紧跟类名
  • 语法:
类名选择器:
.类名  {   
    属性1:属性值1; 
    属性2:属性值2; 
    属性3:属性值3;     
}
标签:
<p class='类名'></p>
  • 优点: 可以为元素对象定义单独或相同的样式。 可以选择一个或者多个标签
  • 类选择器特殊用法- 多类名:给标签指定多个类名,从而达到更多的选择目的。各个类名中间用空格隔开。
<div class="pink fontWeight font20">亚瑟</div>

(3) id选择器

  • #进行标识,后面紧跟id名
  • 语法:
id选择器:
#id名 {属性1:属性值1; 属性2:属性值2; 属性3:属性值3; }
标签:
<p id="id名"></p>
  • 优点: 可以为元素对象定义单独或相同的样式。 元素的id值是唯一的,只能对应于文档中某一个具体的元素
  • 一般用于页面唯一性的元素身上,经常javascript 搭配使用。

(4)通配符选择器

  • 通配符选择器用*号表示, * 就是 选择所有的标签 ,是所有选择器中作用范围最广的,能匹配页面中所有的元素。
  • 语法:
* { 属性1:属性值1; 属性2:属性值2; 属性3:属性值3; }
标签:
  • 常用于定义CSS样式,清除所有HTML标记的默认边距。
* {
  margin: 0;                    /* 定义外边距*/
  padding: 0;                   /* 定义内边距*/
}
  • 会匹配页面所有的元素,降低页面响应速度,不建议随便使用

(5)总结
在这里插入图片描述
约定:

  • 尽量少用通用选择器 *
  • 尽量少用 ID 选择器
  • 不使用无具体语义定义的标签选择器 div span

2.3.3 CSS复合选择器

  • 由两个或多个基础选择器,通过不同的方式组合而成的。
  • 目的:为了可以选择更准确更精细的目标元素标签。

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

  • 作用: 用来选择元素或元素组的子孙后代
  • 写法:把外层标签写在前面,内层标签写在后面,中间用空格分隔,先写父亲爷爷,在写儿子孙子。
  • 语法:
.class h3{color:red;font-size:16px;}
  • 当标签发生嵌套时,内层标签就成为外层标签的后代。
  • 能选择任何包含在内 的标签。

(2)子元素选择器

  • 作用: 子元素选择器只能选择作为某元素**子元素(亲儿子)**的元素。
  • 写法:把父级标签写在前面,子级标签写在后面,中间跟一个 > 进行连接
  • 语法:
.class>h3{color:red;font-size:14px;}
  • 这里的子 指的是 亲儿子 不包含孙子 重孙子之类。

(3)交集选择器

  • 条件: - 交集选择器由两个选择器构成,找到的标签必须满足:既有标签一的特点,也有标签二的特点。
  • 比如: p.one 选择的是: 类名为 .one 的 段落标签。
  • 用的相对来说比较少,不太建议使用。

(4)并集选择器

  • 如果某些选择器定义的相同样式,就可以利用并集选择器,可以让代码更简洁。
  • 各个选择器通过,连接而成的,通常用于集体声明。
  • 比如 .one, p , #test {color: #F00;} 表示 .one 和 p 和 #test 这三个选择器都会执行颜色为红色,通常用于集体声明。

(5)链接伪类选择器

  • 用于向某些选择器添加特殊的效果。比如给链接添加特殊效果, 比如可以选择 第1个,第n个元素。
  • a:link /* 未访问的链接 /
    a:visited /
    已访问的链接 /
    a:hover /
    鼠标移动到链接上 /
    a:active /
    选定的链接 */ (鼠标选定未松开)
  • 写的时候,他们的顺序尽量不要颠倒 按照 lvha 的顺序。否则可能引起错误。
  • 因为叫链接伪类,所以都是 利用交集选择器 a:link a:hover
  • 因为a链接浏览器具有默认样式,所以我们实际工作中都需要给链接单独指定样式。
  • 拓展::focus 伪类 选择器用于选取获得焦点的元素 ,主要针对的是 表单元素
/*这个input 获得了焦点*/
.total input:focus {
  width: 80px;
  border: 1px solid skyblue;
}

(6)复合选择器总结
在这里插入图片描述

2.4 CSS字体属性 font

2.4.1 font-size:大小
(1)作用:设置字号
(2)单位:可以使用相对长度单位,也可以使用绝对长度单位,相对长度单位比较常用,推荐使用像素单位px,绝对长度单位使用较少。
在这里插入图片描述
(3)谷歌浏览器默认的文字大小为16px,但是不同浏览器可能默认显示的字号大小不一致,我们尽量给一个明确值大小,不要默认大小。一般给body指定整个页面文字的大小

2.4.2 font-family:字体
(1)用于设置哪一种字体。
(2)语法:

p{font-family: Arial,"Microsoft Yahei", "微软雅黑";}

(3) 中文字体需要加英文状态下的引号,英文字体一般不需要加引号。当需要设置英文字体时,英文字体名必须位于中文字体名之前。
(4)如果字体名中包含空格、#、$等符号,则该字体必须加英文状态下的单引号或双引号

2.4.3 font-weight:字体粗细
在这里插入图片描述
2.4.4 font-style:字体风格
在这里插入图片描述
2.4.5 font:综合设置字体样式

选择器 { font: font-style  font-weight  font-size/line-height  font-family;}
  • 使用font属性时,必须按上面语法格式中的顺序书写,不能更换顺序,各个属性以空格隔开。
  • 其中不需要设置的属性可以省略(取默认值),但必须保留font-size和font-family属性,否则font属性将不起作用。

2.4.6 font总结
在这里插入图片描述

2.5 CSS外观属性

2.5.1 color:文本颜色
(1)用于定义文本的颜色

2.5.2 text-align:文本水平对齐方式
(1)用于设置文本内容的水平对齐,相当于html中的align对齐属性
(2)left左对齐(默认值)、right右对齐、center居中对齐
(3)让盒子里面的内容水平居中, 而不是让盒子居中对齐

2.5.3 line-height:行间距 行高
(1)用于设置行间距,就是行与行之间的距离,即字符的垂直间距,一般称为行高
(2)
(3)单行文本垂直居中:文字的行高等于盒子的高度。上距离和下距离总是相等的,因此文字看上去是垂直居中的
行高 = 上距离 + 内容高度 + 下距离
在这里插入图片描述
行高和高度的三种关系

  • 如果 行高 等 高度 文字会 垂直居中
  • 如果行高 大于 高度 文字会 偏下
  • 如果行高小于高度 文字会 偏上
    (4)line-height:1.5; 设置样式为1.5倍的行高
    初始设font-size:12px; 那么line-height:1.5; 就相当于12*1.5=18px;

2.5.4 text-indent:首行缩进
(1)用于设置首行文本的缩进,
(2)其属性值可为不同单位的数值、em字符宽度的倍数、或相对于浏览器窗口宽度的百分比%,允许使用负值,
(3)建议使用em作为设置单位。

p {
      /*行间距*/
      line-height: 25px;
      /*首行缩进2个字  em  1个em 就是1个字的大小*/
      text-indent: 2em;  
 }

2.5.5 text-decoration 文本的装饰

2.5.6 拓展—文字阴影text-shadow (CSS3)

text-shadow: h-shadow v-shadow blur color;
text-shadow: 5px 5px 5px #FF0000;
  • h-shadow 必需。水平阴影的位置。允许负值。 测试
  • v-shadow 必需。垂直阴影的位置。允许负值。 测试
  • blur 可选。模糊的距离。
  • color 可选。阴影的颜色

2.5.7 总结
在这里插入图片描述

2.6 标签显示模式(display)

  • 什么是标签的显示模式:标签以什么方式进行显示,比如div 自己占一行, 比如span 一行可以放很多个
  • 作用:我们网页的标签非常多,再不同地方会用到不同类型的标签,以便更好的完成我们的网页。
  • 标签的类型(分类):HTML标签一般分为块标签和行内标签两种类型,它们也称块元素和行内元素。

2.6.1 块级元素(block-level)
(1)常见的块元素有<h1>~<h6>、<p>、<div>、<ul>、<ol>、<li>等,其中<div>标签是最典型的块元素。
(2)特点:

  • 自己独占一行;
  • 高度,宽度、外边距以及内边距都可以控制;
  • 宽度默认是容器(父级宽度)的100%;
  • 是一个容器及盒子,里面可以放行内或者块级元素。

(3)注意:

  • 只有 文字才 能组成段落 因此 p 里面不能放块级元素,特别是 p 不能放div
  • 同理还有这些标签h1,h2,h3,h4,h5,h6,dt,他们都是文字类块级标签,里面不能放其他块级元素。

2.6.2 行内元素(inline-level)
(1)常见的行内元素有<a>、<strong>、<b>、<em>、<i>、<del>、<s>、<ins>、<u>、<span>等,其中<span>标签最典型的行内元素。有的地方也成内联元素
(2)特点:

  • 相邻行内元素在一行上,一行可以显示多个;
  • 高、宽直接设置是无效的;
  • 默认宽度就是它本身内容的宽度;
  • 行内元素只能容纳文本或则其他行内元素

(3)注意:

  • 链接里面不能再放链接
  • 特殊情况a里面可以放块级元素,但是给a转换一下块级模式最安全。

2.6.3 行内块元素(inline-block)
(1)在行内元素中有几个特殊的标签——<img />、<input />、<td>,可以对它们设置宽高和对齐属性,有些资料可能会称它们为行内块元素。
(2)特点:

  • 和相邻行内元素(行内块)在一行上,但是之间会有空白缝隙,一行可以显示多个;
  • 默认宽度就是它本身内容的宽度;
  • 高度,行高、外边距以及内边距都可以控制。

2.6.4 三种模式总结区别
在这里插入图片描述
2.6.5 标签显示模式转换 display

  • 块转行内:display:inline;
  • 行内转块:display:block;
  • 块、行内元素转换为行内块: display: inline-block;

2.7 CSS 背景(background)

2.7.1 背景颜色(color)
(1)语法:

background-color:颜色值;   默认的值是 transparent  透明的

2.7.2 背景图片(image)
(1)语法:

background-image : none | url (url) 

(2)none无背景图(默认的);url使用绝对或相对地址指定背景图像
(3)提倡 背景图片后面的地址,url不要加引号。

2.7.3 背景平铺(repeat)
(1)语法:

background-repeat : repeat | no-repeat | repeat-x | repeat-y 
  • repeat背景图像在纵向和横向上平铺(默认的);
  • no-repeat背景图像不平铺;
  • repeat-x背景图像在横向上平铺;
  • repeat-y背景图像在纵向平铺

2.7.4 背景位置(position)
(1)语法:

background-position : length || length
background-position : position || position 
  • length:百分数 | 由浮点数字和单位标识符组成的长度值
  • positiontop : center | bottom | left| center | right 方位名词
background-position: top right; //右上角

(2)注意:

  • 必须先指定background-image属性
  • position 后面是x坐标和y坐标。 可以使用方位名词或者 精确单位。
  • 如果指定两个值,两个值都是方位名字,则两个值前后顺序无关,比如left top和top left效果一致
  • 如果只指定了一个方位名词,另一个值默认居中对齐。
  • 如果position 后面是精确坐标, 那么第一个,肯定是 x 第二的一定是y
  • 如果只指定一个数值,那该数值一定是x坐标,另一个默认垂直居中
  • 如果指定的两个值是 精确单位和方位名字混合使用,则第一个值是x坐标,第二个值是y坐标

(3)实际工作用的最多的,就是背景图片居中对齐了。

2.7.5 背景附着
(1)解释背景是滚动的还是固定的
(2)语法:

background-attachment : scroll | fixed 
  • scroll:背景图像是随对象内容滚动
  • fixed:背景图像固定

2.7.6 背景简写
(1)属性的值的书写顺序官方并没有强制标准的。为了可读性,建议大家如下写:
background: 背景颜色 背景图片地址 背景平铺 背景滚动 背景位置;
(2)语法:

background: transparent url(image.jpg) repeat-y  scroll center top ;

2.7.7 背景透明(CSS3)
(1)语法:

background: rgba(0, 0, 0, 0.3);
  • 最后一个参数是alpha 透明度 取值范围 0~1之间
  • 我们习惯把0.3 的 0 省略掉 这样写 background: rgba(0, 0, 0, .3);
  • 注意: 背景半透明是指盒子背景半透明, 盒子里面的内容不受影响
  • 因为是CSS3 ,所以 低于 ie9 的版本是不支持的。

2.7.8 背景线性渐变(CSS3)
在这里插入图片描述

background: linear
gradient( 起始方向 颜色 1, 颜色 2, ...);
background:
webkit linear gradient(left, red , blue);
background:
webkit linear gradient(left top, red , blue);
  • 背景渐变必须添加浏览器私有前缀
  • 起始方向可以是:方位名词 或者 度数 如果省略默认就是 top

2.7.9 总结
在这里插入图片描述

3 Emmet语法

Emmet的前身是Zen coding,它使用缩写,来提高html/css的编写速度。

  • 生成标签 直接输入标签名 按tab键即可 比如 div 然后tab 键, 就可以生成 <div></div>
  • 如果想要生成多个相同标签 加上 * 就可以了 比如 div*3 就可以快速生成3个div
  • 如果有父子级关系的标签,可以用 > 比如 ul > li就可以了
  • 如果有兄弟关系的标签,用 + 就可以了 比如 div+p
  • 如果生成带有类名或者id名字的, 直接写 .demo 或者 #two tab 键就可以了
  • 如果生成的div 类名是有顺序的, 可以用 自增符号 $
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值