前端CSS

一、CSS简介

1.1、什么是CSS?

  1. CSS 指层叠样式表 (Cascading Style Sheets)
  2. 样式定义如何显示控制 HTML 元素,从⽽实现美化HTML⽹⻚。
  3. 样式通常存储在样式表中,⽬的也是为了解决内容与表现分离的问题
  4. 外部样式表(CSS⽂件)可以极⼤提⾼⼯作效率
  5. 多个样式定义可层叠为⼀,后者可以覆盖前者样式

1.2、样式层叠次序

  • 当同⼀个 HTML 元素定义了多个样式时,应该使⽤哪个样式?
  • ⼀般⽽⾔,所有的样式会根据下⾯的规则层叠于⼀个新的虚拟样式表中,其中数字 4 拥有最⾼的优先权
    1. 浏览器缺省设置
    2. 外部样式表
    3. 内部样式表(位于 标签内部)
    4. 内联样式(在 HTML 元素内部)
  • 因此,内联样式(在 HTML 元素内部)拥有最⾼的优先权,这意味着它将优先于以下的样式声明: < head> åå标签中的样式声明,外部样式表中的样式声明,或者浏览器中的样式声明(缺省值)。

二、CSS基础语法

2.1、语法

格式: 选择器{属性:值;属性:值;属性:值;…}
案例如下:其中选择器也叫选择符

p{
	color:red;
	text-align:center;
	}

2.2、CSS 注释

格式:/* … */

三、CSS使用方法

3.1、如何插入样式表

  • CSS是负责美化⽹⻚的,在HTML中如何使⽤css样式(HTML中引⼊CSS的⽅式):
  • 插⼊样式表的⽅法有三种:
    1. 外部样式表
    2. 内部样式表
    3. 内联样式

3.1.1、内联样式(行内样式)

  • 就是在HTML的标签中使⽤style属性来设置css样式
  • 格式: <html标签 style=“属性:值;属性:值;…”>被修饰的内容</html标签>
    <p style="color:blue;font-family:⾪书">在HTML中如何使⽤css样式</p>
    <!-- 特点:仅作⽤于本标签。-->
    

3.1.2、内部方式(内嵌方式)

  • 就是在head标签中使用< style type=“text/css”>…< /style>标签来设置CSS样式
<style type="text/css">
 ....css样式代码
</style>
<!-- 特点:作⽤于当前整个⻚⾯ -->

3.1.3、外部导入方式(外部链入)

  • 方法(1):在head标签中使用标签导入一个CSS文件,其作用于本页面,实现CSS样式设置

    <link href="⽂件名.css" type="text/css" rel="stylesheet"/>
    
  • 方法(2):还可以使用import在style标签中导入CSS文件

    	<style type="text/css">
    	 @import "style.css";
    	</style>
    
    • 特点:作⽤于整个⽹站
    • 优先级:当样式冲突时,就是采⽤就近原则,是值css属性离被修饰的内容最近的为主。
    • 若没有样式冲突则采⽤叠加效果。

3.2、三种样式表总结

在这里插入图片描述

四、CSS中常用选择器

4.1、css2的选择器(重要)

  1. html选择符(标签选择器)

    就是把html标签作为选择符使⽤
    如 p{…} ⽹⻚中所有p标签采⽤此样式
    h2{…} ⽹⻚中所有h2标签采⽤此样式

  2. class类选择器(使用点 . 将自定义(类名)来定义的选择符)

    定义: .类名{样式…} 匿名类
    其他选择符名.类名{样式…}
    使⽤:<html标签 class=“类名”>…</html标签>
    .mc{color:blue;} /* 凡是class属性值为mc的都采⽤此样式 */
    p.ps{color:green;} /只有p标签中class属性值为ps的才采⽤此样式/
    注意:类选择符可以在⽹⻚中重复使⽤

  3. id选择符:

    定义: #id名{样式…}
    使⽤:<html标签 id=“id名”>…</html标签>
    注意:id选择符只在⽹⻚中使⽤⼀次

    选择符的优先级: 从⼤到⼩ [ID选择符]->[class选择符]->[html选择符]->[html属性]

  4. 关联选择符
    格式: 选择符1 选择符2 选择符3 …{样式…}

    table a{…} /table标签⾥的a标签才采⽤此样式/
    h1 p{color:red} /只有h1标签中的p标签才采⽤此样式/

  5. 组合选择符(选择符组)
    格式:选择符1,选择符2,选择符3,…{样式…}

    h3,h4,h5{color:green;} /h3、h4和h5都采⽤此样式/

  6. 伪类选择符
    格式:标签名:伪类名{样式…}

    a:link {color: #FF0000; text-decoration: none} /* 未访问的链接 /
    a:visited {color: #00FF00; text-decoration: none} /
    已访问的链接 /
    a:hover {color: #FF00FF; text-decoration: underline} /
    ⿏标在链接上 /
    a:active {color: #0000FF; text-decoration: underline} /
    激活链接 */

4.2、CSS3中的选择器(熟悉)

  1. 关系选择器

    div>p 选择所有作为div元素的⼦元素p
    div+p 选择紧贴在div元素之后p元素
    div~p 选择div元素后⾯的所有兄弟元素p

  2. 属性选择器

    [attribute]选择具有attribute属性的元素。
    [attribute=value]选择具有attribute属性且属性值等于value的元素。
    [attribute~=value]选择具有attribute属性且属性值为⼀⽤空格分隔的字词列表,其中⼀个等于
    value的元素。
    [attribute|=value]选择具有att属性且属性值为以val开头并⽤连接符"-"分隔的字符串的E元素。
    [attibute^=value]匹配具有attribute属性、且值以valule开头的E元素
    [attribute$=value]匹配具有attribute属性、且值以value结尾的E元素
    [attribute*=value]匹配具有attribute属性、且值中含有value的E元素

  3. 结构性伪类选择器:

    ::first-letter设置对象内的第⼀个字符的样式。
    ::first-line设置对象内的第⼀⾏的样式。
    :before设置在对象前(依据对象树的逻辑结构)发⽣的内容。
    :after设置在对象后(依据对象树的逻辑结构)发⽣的内容。
    :lang(language)匹配使⽤特殊语⾔的E元素。
    :element1~element2:
    :first-of-type匹配同类型中的第⼀个同级兄弟元素
    :last-of-type匹配同类型中的最后⼀个同级兄弟元素
    :only-of-type匹配同类型中的唯⼀的⼀个同级兄弟元素
    :only-child匹配⽗元素仅有的⼀个⼦元素
    *:nth-child(n)匹配⽗元素的第n个⼦元素
    :nth-last-child(n)匹配同类型中的倒数第n个同级兄弟元素
    *:first-child 匹配⽗元素的第⼀个⼦元素
    *:last-child 匹配⽗元素的最后⼀个⼦元素
    :root匹配元素在⽂档的根元素。在HTML中,根元素永远是HTML
    :empty匹配没有任何⼦元素(包括text节点)的元素

  4. 状态伪类选择器

    :link 设置超链接a在未被访问前的样式。
    :visited 设置超链接a在其链接地址已被访问过时的样式
    :active 设置元素在被⽤户激活(在⿏标点击与释放之间发⽣的事件)时的样式
    *:hover 设置元素在其⿏标悬停时的样式
    *:focus 设置元素在其获取焦点时的样式
    :target 匹配相关URL指向的E元素
    :enabled 匹配⽤户界⾯上处于可⽤状态的元素
    :disabled 匹配⽤户界⾯上处于禁⽤状态的元素
    :checked 匹配⽤户界⾯上处于选中状态的元素
    :not(selector)匹配不含有selector选择符的元素
    ::selection 设置对象被选择时的样式

  5. 其他伪类选择器

    E:not(s) : {attribute}
    匹配所有不匹配简单选择符s的元素E
    p:not(.bg) {background-color:#00FF00;}

五、CSS常用属性

5.1、尺寸与单位

  1. 尺寸
    在这里插入图片描述
  2. 颜色
    在这里插入图片描述
  3. color颜色属性值

    a. HSL颜⾊: 通过对⾊调(H)、饱和度(S)、亮度(L)三个颜⾊通道的变化以及它们相互之间的叠加来得
    到各式各样的颜⾊.
    background-color: hsl(240,100%,50%);color:white;
    b. HSLA颜⾊: ⾊调(H)、饱和度(S)、亮度(L)、透明度(A);
    background-color: hsla(0,100%,50%,0.2);
    *c. RGB颜⾊: 红®、绿(G)、蓝(B)三个颜⾊通道的变化
    background-color: rgba(200,100,0);
    d. RGBA颜⾊: 红®、绿(G)、蓝(B)、透明度(A)
    background-color: rgba(0,0,0,0.5);
    *e. 图⽚透明度的设置 img.opacity{ opacity:0.25;}
    兼容IE8 filter:alpha(opacity=100);

5.2、字体属性:font

font: 简写
*font-size: 字体⼤⼩:20px,60%基于⽗对象的百分⽐取值
*font-family: 字体:宋体,Arial
font-style: normal正常;italic斜体; oblique倾斜的字体
*font-weight: 字体加粗 :bold
font-variant: small-caps ⼩型的⼤写字⺟字体
font-stretch: [了解]⽂字的拉伸是相对于浏览器显示的字体的正常宽度(⼤部分浏览器不⽀持)。

  • 可以通过js中escape()编码函数来测试属于什么字体。
    在这里插入图片描述
  • 为了照顾不同电脑的字体安装问题,我们尽量只使⽤宋体和微软雅⿊中⽂字体

5.3、文本属性

text-indent: ⾸⾏缩进:text-indent:2em;
text-overflow: ⽂本的溢出是否使⽤省略标记(…)。clip|ellipsis(显示省略标记)
*text-align: ⽂本的位置:left center right
text-transform:对象中的⽂本的⼤⼩写:capitalize(⾸字⺟)|uppercase⼤写|lowercase⼩写
text-decoration: 字体画线:none⽆、underline下画线,line-through贯穿线
text-decoration-line:[了解]⽂本装饰线条的位置(浏览器不兼容)
text-shadow: ⽂本的⽂字是否有阴影及模糊效果
vertical-align: ⽂本的垂直对⻬⽅式
direction:⽂字流⽅向。ltr | rtl
white-space:nowrap; /
强制在同⼀⾏内显示所有⽂本
/
*letter-spacing: ⽂字或字⺟的间距
word-spacing:单词间距
*line-height:⾏⾼
*color: 字体颜⾊

5.4、背景属性

background:简写
*background-color: 背景颜⾊
*background-image: 背景图⽚
*background-repeat:是否重复,如何重复?(平铺)
*background-position:定位
background-attachment: 是否固定背景,
scroll:默认值。背景图像是随对象内容滚动
fixed:背景图像固定
css3的属性:
*background-size: 背景⼤⼩,如 background-size:100px 140px;
多层背景:
background:url(test1.jpg) no-repeat scroll 10px 20px,
url(test2.jpg) no-repeat scroll 50px 60px,
url(test3.jpg) no-repeat scroll 90px 100px;
background-origin:content-box,content-box,content-box;
background-clip:padding-box,padding-box,padding-box;
background-size:50px 60px,50px 60px,50px 60px;

5.5、边框(重点)

盒子模型:
在这里插入图片描述
在这里插入图片描述

border:宽度 样式 颜⾊;
border-color;
border-style; 边框样式:solid实现,dotted点状线,dashed虚线
border-width:
border-left-color;
border-left-style;
border-left-width:

CSS3的样式
border-radius:圆⻆处理
box-shadow: 设置或检索对象阴影

5.6、内补白(白补丁)

padding: 检索或设置对象四边的内部边距,如padding:10px; padding:5px 10px;
padding-top: 检索或设置对象顶边的内部边距
padding-right: 检索或设置对象右边的内部边距
padding-bottom:检索或设置对象下边的内部边距
padding-left: 检索或设置对象左边的内部边距

5.7、外补白(外补丁)

margin: 检索或设置对象四边的外延边距,如 margin:10px; margin:5px auto;
margin-top: 检索或设置对象顶边的外延边距
margin-right: 检索或设置对象右边的外延边距
margin-bottom: 检索或设置对象下边的外延边距
margin-left: 检索或设置对象左边的外延边距

5.8、Position 定位

*position: 定位⽅式:absolute(绝对定位)、fixed(固定)(relative定位参考,可对内部相对
absolute定位)
*z-index: 层叠顺序,值越⼤越在上⽅。
*top: 检索或设置对象与其最近⼀个定位的⽗对象顶部相关的位置
right: 检索或设置对象与其最近⼀个定位的⽗对象右边相关的位置
bottom: 检索或设置对象与其最近⼀个定位的⽗对象下边相关的位置
*left: 检索或设置对象与其最近⼀个定位的⽗对象左边相关的位置

5.9、Layout布局

*display: 是否及如何显示:none隐藏,block块状显示…
*float: 指出了对象是否及如何浮动:值none | left | right
*clear: 清除浮动:none | left | right | both两侧
visibility:设置或检索是否显示对象。visible|hidden|collapse。
与display属性不同,此属性为隐藏的对象保留其占据的物理空间
clip: 检索或设置对象的可视区域。区域外的部分是透明的。 rect(上-右-下-左)
如:clip:rect(auto 50px 20px auto);上和左不裁剪,右50,下20.
*overflow: 超出隐藏:hidden,visible:不剪切内容
overflow-x:内容超过其指定宽度时如何管理内容: visible | hidden | scroll | auto
overflow-y:内容超过其指定⾼度时如何管理内容

5.10、Flexible Box弹性盒子(旧版)

box-orient: 设置或检索弹性盒模型对象的⼦元素的排列⽅式。horizontal(⽔平)|vertical(纵向)
box-pack 设置或检索弹性盒模型对象的⼦元素的对⻬⽅式。
box-align 设置或检索弹性盒模型对象的⼦元素的对⻬⽅式。
box-flex 设置或检索弹性盒模型对象的⼦元素如何分配其剩余空间。
box-flex-group 设置或检索弹性盒模型对象的⼦元素的所属组。
box-ordinal-group 设置或检索弹性盒模型对象的⼦元素的显示顺序。
box-direction 设置或检索弹性盒模型对象的⼦元素的排列顺序是否反转。
box-lines 设置或检索弹性盒模型对象的⼦元素是否可以换⾏显示。

5.10、Flexible Box弹性盒子(新版)

  • Flex 是 Flexible Box 的缩写,意为"弹性布局",⽤来为盒状模型提供最⼤的灵活性。
  • 任何⼀个容器都可以指定为 Flex 布局。

.box{
display: flex; }

  • 行内元素也可以使用flex布局

.box{
display: inline-flex; }

5.10.1、基本概念

  • 采⽤ Flex 布局的元素,称为 Flex 容器(flex container),简称"容器"。
  • 它的所有⼦元素⾃动成为容器成员,称为 Flex 项⽬(flex item),简称"项⽬"。
    在这里插入图片描述
  • 容器默认存在两根轴:⽔平的主轴(main axis)和垂直的交叉轴(cross axis)。
  • 主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;
  • 交叉轴的开始位置叫做cross start,结束位置叫做cross end。
  • 项⽬默认沿主轴排列。单个项⽬占据的主轴空间叫做main size,占据的交叉轴空间叫做cross
    size。

5.10.2、容器上的6个属性

flex-direction:主轴的⽅向,
值:row左->右|row-reverse 右->左|column 上->下| column-reverse 下->上;
flex-wrap:⼀条条轴线排不下,如何换⾏?
值:nowrap不换⾏ | wrap向下换⾏ | wrap-reverse 向上换⾏;
flex-flow:属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap
justify-content:主轴上的对⻬⽅式:
值:flex-start左对⻬| flex-end右对⻬| center 居中|
space-between 两端对⻬,项⽬之间的间隔都相等|
space-around项⽬之间的间隔⽐项⽬与边框的间隔⼤⼀倍;
align-items:交叉轴上如何对⻬,
值:lex-start | flex-end | center | baseline | stretch;
align-content:多根轴线的对⻬⽅式:
值:flex-start | flex-end | center | space-between | space-around | stretch;

5.10.3、项目上的属性

order:项⽬的排列顺序,数值越⼩,排列越靠前,默认为0。
flex-grow:属性定义项⽬的放⼤⽐例,默认为0
flex-shrink:属性定义了项⽬的缩⼩⽐例,默认为1,即如果空间不⾜,该项⽬将缩⼩。
flex-basis: 属性定义了在分配多余空间之前,项⽬占据的主轴空间(main size)。
flex:是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选。
align-self:属性允许单个项⽬有与其他项⽬不⼀样的对⻬⽅式,可覆盖align-items属性。

5.11、过渡Trasition

transition 检索或设置对象变换时的过渡效果
transition-property 检索或设置对象中的参与过渡的属性
transition-duration 检索或设置对象过渡的持续时间
transition-timing-function 检索或设置对象中过渡的类型
transition-delay 检索或设置对象延迟过渡的时间

5.12、动画Animation

animation 检索或设置对象所应⽤的动画特效
animation-name 检索或设置对象所应⽤的动画名称
animation-duration 检索或设置对象动画的持续时间
animation-timing-function 检索或设置对象动画的过渡类型
animation-delay 检索或设置对象动画延迟的时间
animation-iteration-count 检索或设置对象动画的循环次数
animation-direction 检索或设置对象动画在循环中是否反向运动
animation-play-state 检索或设置对象动画的状态
animation-fill-mode 检索或设置对象动画时间之外的状态

总结:

以上为CSS的一些常用知识点,但是,前提条件下HTML相关知识点要有一定的掌握。HTML相关具体内容见上篇博客:前端HTML

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值