2021-07-25CSS知识点整理

CSS知识点整理

三种书写位置

1内嵌式 将CSS代码嵌入到html文件中。代码耦合度较低,工作中偶尔使用

<style type=text/css>
      div {color:red;}
</style>

2内联式将CSS代码嵌入到html文件中。代码耦合度很高,有代码冗余,难以维护,工作中偶尔使用。

3外链式将CSS代码单独卸载CSS文件中,css代码和html代码绝对分离,代码耦合度极低,在工作中经常使用

<link rel="stylesheet" type="text/css" href="one.css"/                                   >

命名 不用数字开头,可用字母或者下划线开头,加上字母,数字,下划线,中划线。

建议用驼峰命名法第一个单词首字母小写,从第二个单词开始首字母大写,例如:.yellowGreenStudent

多类名调用:标签可以调用多个类名,类名间用空格隔开

关系选择器 后代选择器、并集选择器、相邻兄弟选择器、通用兄弟选择器、一级后代选择器

并集选择器:用, 将多个选择器隔开,实现共同的属性

相邻兄弟选择器:用+ 匹配所有作为指定元素的相邻同级的单个元素。

兄弟(同级)元素必须具有相同的父元素,“相邻”的意思是“紧随其后”。
示例如下: 最终只有 段落三应用到了div+p的属性。

<style>
	div + p {
  		background-color: yellow;
	}
</style>
</head>
<body>
	<h1>相邻兄弟选择器</h1>
	<p>相邻的同胞选择器(+)选择所有作为指定元素的相邻的同级元素。</p>
	<div>
  		<p>div 中的段落 1。</p>
  		<p>div 中的段落 2。</p>
	</div>

	<p>段落 3。不在 div 中。</p>
	<p>段落 4。不在 div 中。</p>
</body>
}

通用兄弟选择器:用~匹配属于指定元素的同级元素的所有元素

兄弟(同级)元素必须具有相同的父元素,“相邻”的意思是“紧随其后”。
在相邻兄弟代码中,使用 div~p {} 最后是段落3和段落4应用到了属性。

一级后代选择器:用>选择所有的第一级后代

	<style type="text/css>
		.box>ul>li{border:red solid 1px;}
		.box>ul>li>ul>li {
            border: #22A4FF solid  1px;
        }
	</style>
</head>
<body>
	<div class="box">
		<ul>一级ul
			<li>一级li
				<ul>二级ul
					<li>二级li</li>
					<li>二级li</li>
					<li>二级li</li>
				</ul>
			</li>
			<li>一级li
				<ul>二级ul
					<li>二级li</li>
					<li>二级li</li>
					<li>二级li</li>
				</ul>
			</li>
		</ul>
	</div>
</body>

效果图为
在这里插入图片描述

属性选择器

在这里插入图片描述
在这里插入图片描述

伪类选择器

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

状态选择器 :focus伪类、checked伪类、target伪类

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

CSS层叠性

CSS层叠性:相同属性在权重相同时,后定义的会层叠(覆盖)先定义的,在权重不同时,实现权重高的。

权重:标签选择器<类选择器<id选择器<行内样式<!imporant

权重:标签选择器<类选择器<id选择器<行内样式<!imporant
权重:        1               10           100          1000         无穷大
提高权重的方法
!important
描述的更详细,多加一个父级的父级名称,使得权重值增加。

.box .red{ } 
变成.BOX .box .red {}

状态伪类权重是10 ,当四个状态同时存在时,按照lvha的顺序写

a:link{ } 未访问状态
a:visited{ }访问后状态
a:hover{ }鼠标移入状态
a:active{ }鼠标按下(触发)状态

复合属性background

在这里插入图片描述

盒模型 盒子尺寸=content区+padding区+margin区+border

在这里插入图片描述

外边距合并:垂直并列的两个块元素,分别给上下两个盒子设置向margin-bottom和margin-top,此时会形成外边距合并,即:外边距值相同时,就是该值;外边距不同时,实际间距为较大的值。

外边距塌陷:嵌套着的两个元素,给子元素设置向上的外边距,此时父元素会跟着子元素一起下来。

解决外边距塌陷方法:

  1. 给父元素设置上边框
  2. 给父元素设置overflow属性
  3. 给父元素设置浮动
  4. 给子元素设置浮动

块元素水平居中: margin:0 auto;

overflow属性

overflow:hidden(溢出隐藏)、scroll(溢出滚动:当内容超出元素时,自动设置滚动条)

css初始化

方法1 用通配符。通常在做练习时使用,工作中、项目中不要使用!!!

*{
   margin:0;
   padding:0;
}

方法2 对使用到的标签进行初始化</font。提高执行效率,在工作中使用此方法。

img底部留白问题

在这里插入图片描述

浮动 float

浮动用来做横向布局
浮动元素当父元素的宽度不够时,会自动换行
在这里插入图片描述

清除浮动造成的影响

在这里插入图片描述
当子元素设置浮动后,高度超出父元素时,会影响到下面父元素中的浮动元素

定位position

相对定位relative : 也叫占位定位,通过偏移量根据当前在标准流自身的位置为参考点移动,在移动时,是在z轴的空间移动,此时不会影响周围的元素,但是在标准流的位置还是存在的。

绝对定位:一个完全脱离文档流的状态,默认其实参考点是初始包含块。

相对定位与决定定位结合使用

  1. 元素设置绝对定位后,设置宽高起作用
  2. 绝对定位的参考点:绝对定位的参考点是设置相对定位的父元素(与自身最近的),如果没有设置相对定位的父元素,默认参考点是body初始包含块
    子绝父相:指子元素是绝对定位,父元素是相对定位。

定位的层级 :层级相同时,后写的标签会压在先写标签的上面,当层级不同时,谁的层级高谁就在上面。

z-index:整数 默认层级是0,当层级是负数时,是低于标准流的元素,即压在标准流的下面。

在这里插入图片描述

占位隐藏和不占位隐藏

占位隐藏

	visibility:hidden;

不占位隐藏

	display:none;

渐进增强和优雅降级

渐进增强:从低版本的浏览器入手设计,向高版本的浏览器兼容

优雅降级:以高版本为基准,向下兼容

Css精灵

在这里插入图片描述
制作精灵图
方法1.在ps中找到各个图的位置
方法2.用在线转换工具 http://alloyteam.github.io/gopng/

透明 opcaity:.5或者rgba(255, 255, 255, .5)

ico图标 ico是一种图片格式,通常用在浏览器的选项卡中

ico图标制作 http://www.butbug.net/
在这里插入图片描述

iconfont的用法

在这里插入图片描述

关于HTML5

在这里插入图片描述

HTML新增语义标签

在这里插入图片描述

HTML5新增表单类型

在这里插入图片描述

HTML5音频标签audio

在这里插入图片描述

HTML5视频标签video

在这里插入图片描述

边框模拟三角形

边框模拟三角形时:元素的项链两个边框同时存在时,交点会平分,此时将content的区域的宽和高,设置成0,将其他三个边框设置成透明transparent,此时会形成一个三角形。

<style>
	.box {
		width:0;
		height:0;
		border-top:50px solid red;
		border-right:50px solid transparent;
		border-bottom:50px solid transparent;
		border-left:50px solid transparent;

效果图
在这里插入图片描述
未设置透明时的 效果图
在这里插入图片描述

伪类和伪元素 摘自https://segmentfault.com/a/1190000000484493

在这里插入图片描述
伪元素和伪类之所以这么容易混淆,是因为他们的效果类似而且写法相仿,但实际上 css3 为了区分两者,已经明确规定了伪类用一个冒号来表示,而伪元素则用两个冒号来表示。
···css
:Pseudo-classes
::Pseudo-elements
···
但因为兼容性的问题,所以现在大部分还是统一的单冒号,但是抛开兼容性的问题,我们在书写时应该尽可能养成好习惯,区分两者

标准盒子模型和怪异盒子模型

PS: 使用box-sizing:border-box; 时,一定要设置width和height
在这里插入图片描述

文字阴影 text-shadow

texg-shadow: 水平偏移(2px) 垂直偏移(3px)模糊值(4px) 模糊范围扩大(5px)red ;

文字边框 -webkit-text-stroke:2px yellow;

文字裁剪 -webkit-background-clip:text;文字之外的背景扣除,保留文字所在位置的背景,再将文字调成透明色,就可以显示以背景色为颜色的文字。

在这里插入图片描述

盒子阴影box-shadow

在这里插入图片描述

背景属性

背景裁剪属性 background-clip:border-box/padding-box/content-box

background-clip属性:
border-box(默认值) 从边框可见:边框+padding+content区可见
padding-box :从padding区域可见:padding+content区可见
content-box:只有content区可见

background-clip:content-box

背景缩放属性 background-size:

在这里插入图片描述
cover 时,按照盒子的最长边,对背景图片的宽高按照同一比例扩张缩小,以可以填满这个盒子,图片的多余部分切掉不用。
contain时,按照盒子的最短边,对背景图片的宽高按照同一比例扩张或者缩小,以可以在盒子里看到完整的背景图片,盒子内没有被背景图片填充的部分留白。

滑动背景和固定背景

background-attachment:scroll(默认值)滚动/fixed固定
详细代码见0909背景
在这里插入图片描述

多重背景

背景图可以引入多张,用逗号隔开先写的背景图出现在上面
background:(url=“pic1.jpg”) no-repeat 0 0 ,(url=“pic2.jpg”) no-repeat 0 0,(url=“pic3.jpg”) no-repeat 0 0 ;

过滤器filter

模糊效果 filter:blur(5px) 让图片变得模糊

黑白网页 filter:grayscale(100%)变成灰白网页

渐变

线性渐变 沿着一条轴线,从一个颜色逐渐过渡到另一个颜色,最少两个颜色。

 background-image:linear-gradient(to left,red 0%,red 50%,yellow 70%, blue 90%, blue 100%)
 其中red 0% 和blue 100%可以省略 表示从0到50%是红色,从90%到100%是蓝色。

在这里插入图片描述

重复线性渐变 background-image:repeating-linear-gradient()

径向渐变 从原点到半径之间的一个渐变background-image:radial-gradient()

重复线性渐变 background-image:repeating-radial-gradient()

过渡在单位时间内,元素中的属性值,从一个值逐渐到达某个值

如果希望过渡有来有去,即触发时有过过渡,取消触发状态也会发生过渡,就将过渡写在默认状态下(80%的情况下都是这样写)

贝塞尔曲线https://cubic-bezier.com/

需要过渡的单属性
transition-property:width,height,background-color,opacity;
transition-property:all;
transition-duration:1s或者1000ms;
transition-delay:.5s
transtion-timing-function:cubic-bezier()或者 linear、ease、ease-in、ease-out、ease-in-out;
过渡的复合属性(简写):
transition:all 1s ease-in 1s;

2d转换

位移 transform: translate(X, Y)

在这里插入图片描述
在这里插入图片描述

旋转 transform: rotateX(40deg) rotateY() rotateZ()

在这里插入图片描述

旋转中心点 transform-oringin:

在这里插入图片描述

当旋转和位移同时存在时,先写位移,再写旋转

	transform:tranlate(100px,200px) rotateZ(45deg);

缩放 transform:scale(缩放倍数)

帧动画 @keyframe animition

animition动画库:搜索 animate.css

@keyframe 动画名 {
from { transform:rotate() scale();}
to {transform:roate() scale();}
}
span { animation:动画名 动画时间 动画方式 延时时间 动画方向 动画次数}

	 @keyframes change {
            from {
                transform: scale(1.5) ;
                background-color: red;
            }
            30% {
                transform: scale(0.5) rotateZ(90deg);
                background-color: yellow;
            }
            70% {
                transform: scale(2) rotateZ(90deg)
            }

        }
        div:hover {
            animation: change 3s ease infinite;
        }

在这里插入图片描述

响应式根据不同设备,进行自适应的布局展示

左侧宽度固定右侧宽度自适应、双飞翼、圣杯布局

左侧宽度固定右侧宽度自适应、双飞翼、圣杯布局见链接

媒体查询语句 @media

媒体查询语句是css语句,检测屏幕的宽高来布局,可以看成是一个条件语句
用and来连接关键字 and前后最后一个空格

@media (min-width:500px) and (max-width:1000px) { }
	orientation:landscape横屏/portrait竖屏/screen彩屏/only只有
	@media (orientation:portrait) and (min-width:500px) { }

弹性布局 :父元素与子元素之间的关系,也叫弹性盒子、伸缩布局、伸缩盒子、flex布局

父元素叫弹性空间 父元素{ display:flex;}
子元素叫弹性元素、弹性项

弹性布局设置主轴的方向 flex-direction:row(默认值)/column/row-reverse/column-reverse

在这里插入图片描述

弹性元素在主轴上的位置分布 justify-content

justify-content:flex-start、flex-end、center、space-between、space-around、space-evenly
在这里插入图片描述
没画出space-evenly的结果图
在这里插入图片描述

弹性元素是否换行 flex-wrap:no-wrap(默认值)、wrap、wrap-reverse

在这里插入图片描述
当换成两行是,每行的宽度是总宽度的一半;挡换成三行时,每行的宽度是总宽度的三分之一

==弹性元素在垂直轴的位置分布

在这里插入图片描述
父元素中

	.box{
		display:flex;
		flex-direction:column;
		justify-content:flex-start/flex-end/center/space-between/space-around/space-evenly(没画)
	}

在这里插入图片描述

弹性元素在交叉轴的位置分布 align-items

align-items:flex-start/flex-end/center/baseline/stretch
在这里插入图片描述

弹性元素在主轴的扩张份数 flex-grow:数字

各个弹性元素按照该数字的占比进行扩张

弹性元素的压缩率 flex-shrink:数字

在这里插入图片描述

弹性元素的排序 order:数字

在这里插入图片描述
##移动端适配

em 1em相当于一个当前字号的大小

	.box {
		font-size:20px;
		text-indent:1em;
		}

rem 1rem相当于html元素一个字号的大小

在这里插入图片描述

视口( 移动端适配 )

重新定义视口的宽度 和 设备的宽度一样 输入:meta: vp 按下tab键

<meta name="viewport" content="width=device-width, iniitial-scale=1.0">

vw、 vh

1vw = 当前屏幕的宽度1%
100vw =屏幕的宽度

在750px的屏幕下:
1vw=7.5px
1px=0.13333vx
60px=8vw

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值