html与css知识点

html

元素分类

块级元素
1.独占一行,宽度为父元素宽度的100%
2.可以设置宽高

常见块级元素
h1~h6 div ul ol li dl dt dd
table form
header footer section nav article aside

行内元素
1.一行显示多个
2.不能设置宽高,宽高由元素内容撑开

常见行内元素
span a
strong i em del sub sup

行内替换元素
img input video audio

img元素的默认样式是display: inline
input元素的默认样式是display: inline-block

表格

在这里插入图片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style>* {margin: 0;padding: 0;}table,td,th {border: 1px solid #000;border-collapse: collapse;}td,th {width: 50px;height: 50px;}</style></head><body><table><caption>表格标题</caption><thead><th>1</th><th>2</th><th>3</th><th>4</th><th>5</th></thead><tbody><tr><td rowspan="4"></td><!-- 设置宽度为4个td的宽度,防止合并单元格后看不出效果--><td colspan="4" style="width: 200px"></td></tr><tr><td></td><td colspan="3"></td></tr><tr><td></td><td colspan="3"></td></tr><tr><td colspan="4"></td></tr></tbody></table></body>
</html>

表单

在这里插入图片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title></head><body><form action=""><div class="name"><span>姓名</span><input type="text" placeholder="请输入" /></div><div><label><span></span><input type="radio" name="gender" value="1" checked /></label><label for="female"></label><input type="radio" name="gender" value="0" id="female" /></div><div><select name="" id="" multiple><option value="0">大专</option><option value="1" selected>本科</option><option value="2">硕士</option><option value="3">博士</option></select></div><div><textarea cols="30" rows="10" placeholder="简介"></textarea></div><div><button type="submit">注册</button><button type="reset">重置</button></div></form></body>
</html>

点击单选框文字时勾选

方式1 lable标签包裹整体:

<label><span></span><input type="radio" name="gender" value="1" checked />
</label>

方式2 lable for属性 + 单选框id:

<label for="female"></label>
<input type="radio" name="gender" value="0" id="female" />

音视频

<video src="" controls autoplay muted></video>
<audio src="" controls autoplay muted></audio>

回到顶部

<a href="javascript:scrollTo(0,0)">回到顶部</a>

平滑滚动

/* 滚动条平滑滚动
*/
html {scroll-behavior: smooth;
}

自定义属性

<div data-a="1" data-b="2"></div>
const divDom = document.querySelector("div");
console.log(divDom.dataset);

CSS

CSS引入方式

1.行内样式

<span style="color: pink">姓名</span>

2.内嵌样式:在head的<style>...</style>中书写样式
3.link:css 引入外部样式
4.@import url() 引入外部样式

盒模型

怪异盒模型

标准盒模型
box-sizing: content-box;
尺寸 = content(width) + padding + border + margin

怪异盒模型
box-sizing: border-box;
尺寸 = content(width+ padding + border) + margin

尺寸的百分比

百分比,相对于元素的参考系
1.普通元素的参考系父元素的内容区域
2.定位元素的参考系为父元素中第一个定位元素的paddind区域

width、padding、border、margin 百分比相对于参考系的宽度
height 百分比相对于参考系的高度

margin-top与margin-bottom传递

margin-top传递

margin-top传递:子元素的margin-top传递给父元素

发生的条件:块级父子元素的顶部重叠

在这里插入图片描述
margin-bottom传递

margin-bottom传递:子元素的margin-bottom传递给父元素

发生的条件:
1.块级父子元素的底部重叠
2.父元素的高度为auto

在这里插入图片描述
在这里插入图片描述
解决margin传递方式:

  1. 不使用margin,使用padding(会撑开盒子)
  2. 给父元素设置border(父子不重合)
  3. 将父元素或子元素设置为display:inline-block
  4. 触发BFC overflow:auto;

margin折叠

相邻块级兄弟元素垂直方向margin折叠
计算规则:
1.都是正数或都是负数,取绝对值最大的
2.有正有负,代数和
在这里插入图片描述

解决折叠问题:

  1. 只设置一个margin
  2. 将父元素或子元素设置为display:inline-block

浮动

float:left/right/none

  • 脱标,元素变为块级元素(display:block),可设置宽高
  • 向左紧贴着包含块或其他浮动元素的边界
  • 定位元素的层级高于浮动元素
  • 文字、行内级别元素环绕着浮动元素
  • 水平方向装不下浮动元素,浮动元素向下移动直至有充足空间

浮动导致父元素高度坍塌问题:
浮动元素脱离标准流,不再占据原来的位置和尺寸,导致父元素不能包裹子元素,从而高度坍塌。

清除浮动

.clear_fix::after{content: '';display: block;/* clear 使伪类元素位于浮动元素的下面,从而使父元素能正确包裹浮动元素,最终解决父元素高度坍塌问题left: 元素顶部低于之前所有左浮动元素的底部right: 元素顶部低于之前所有右浮动元素的底部both: 元素顶部低于之前所有浮动元素的底部none: 默认值*/clear:both;
}

定位

在这里插入图片描述

position:

static 默认值

relative 相对定位
1.相对于自身
2.不脱离标准流,移动后占据原来位置

absolute 绝对定位
1.相对于最近的有定位的祖先元素,没有则相对于视口
2.脱标,能设置宽高,默认由内容撑开

fixed 固定定位
1.相对于视口
2.脱标,能设置宽高,默认由内容撑开

sticky 粘性定位
1.相对于最近的有定位的包含滚动视口的祖先元素
2.没滚动到指定位置时,不脱离标准流
3.滚动到一定阈值后变为固定定位fixed(脱离标准流)

z-index(只对定位元素有效)
1.兄弟关系:
z-index越大,层叠越上
z-index相等,写在后面的元素层叠在上面

2.非兄弟:
各自的最近的有定位的祖先元素比较
且定位的祖先元素有z-index数值

选择器与权重

选择器

id (#box)
class (.box)
标签 (div)

属性选择器

img[属性]{}         有该属性    
img[属性="xxx"]{}   属性值="xxx"    
img[属性^="xxx"]{}  属性值以xxx开头    
img[属性$="xxx"]{}  属性值以xxx结尾    
img[属性*="xxx"]{}  属性值包含xxx    

后代选择器(ul li)
子代选择器(ul>li)
相邻兄弟选择器(.box1 + .box2).box1之后相邻的第一个.box2元素
所有兄弟选择器(.box1 ~ div).box1之后的所有div元素
交集选择器 (div.box)
并集选择器 (ul,ol)

伪类选择器 (用于选中处于特定状态的元素)

动态伪类
:link
:visited
:hover
:active
:focus目标伪类
:target结构伪类
:nth-child()      
:nth-last-child() 
:nth-of-type()
:nth-last-of-type():first-child
:last-child
:first-of-type
:last-of-type:root
:only-child
:only-of-type
:empty否定伪类
:not()

伪元素(虚拟动态创建的元素,只能添加在最后一个简单的选择器上)

//默认为行内元素
::before{ content:"必须有content属性";}
::after{ content:"必须有content属性";}::selection{}  //高亮选中文字::first-letter{}  //选中块级元素第一行第一个字
::first-line{}    //选中块级元素第一行全部文字

权重

权重:选择器的针对性越强,权重越高!important > 行内样式 > id >|伪类|属性 > 标签|伪元素 > 继承|通配符
无穷大        1000    100      10          1            0比较权重时,应该作用到元素上。
相同权重时,就近原则
!important选中元素时,权重最高;未选中元素时,不影响就近原则
!important只针对单个css属性,而不是一个选择器
!important被多个选择器设置时,考虑选择器的权重#box1 #box2 p{}           //(2,0,1)
#box1 div.box2 #box3 p{}  //(2,1,2) 权重最大
.box1 .box2 .box3 p{}     //(0,3,1)

能继承的属性

文字、文本属性:color font-* line-* text-* list 能被继承

  • 继承的是计算值,而不是设置值
.fa{font-size: 2em; /* 2x16=32px */
}.son{/* son继承fa的font-size为32px 而不是设置值2em */ 
}

强制继承

.son{border:inherit;
}

属性值的计算过程

所有元素都会进行属性值的计算,保证没有属性都有值

  1. 确定声明值:浏览器默认样式和作者样式表中无冲突的值
  2. 层叠冲突:
    2.1 作者样式表覆盖浏览器默认样式表
    2.2 作者样式比较权重,若权重相同就近原则
  3. 继承:对任然没有值的属性,若可以继承,则继承父元素的值
    • 文字、文本属性:color font-* line-* text-* list 能被继承
  4. 默认值:对任然没有值的属性,使用默认值

背景图与精灵图

精灵图
1.background-position 移动到图标位置
2.width、height 截取出图标大小

.sprite {background: url('./topbar.png') no-repeat -192px 0;width: 26px;height: 13px;
}

vertical-align与行盒

行盒(line-boxes):包裹该行的所有行内级别元素

  • 行盒内的行内级别元素默认基线(baseline)对齐

行高(line-height)是指行内文本的高度,通常从一行文本的基线(baseline)到下一行文本的基线之间的距离。

vertical-align:通常用来设置行内或行内块元素垂直方向的对齐

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>* {margin: 0;padding: 0;}.container {background-color: pink;}.container>.box {display: inline-block;width: 200px;height: 500px;background-color: #bfa;}</style>
</head><body><div class="container"><!-- 行内级别元素--><span>ajdgajsdgasjdjasdkasjdkasjdh</span><img src="../images/doctor.jpg" alt=""><div class="box"></div></div></body></html>

在这里插入图片描述
给行内元素添加文字,出现的现象:
在这里插入图片描述

图片底部空隙解决

* {margin: 0;padding: 0;
}.container {/* 方式三 给父元素设置*//* font-size: 0; */background-color: pink;
}.container>img{/* 方式一:行盒内的行内级别元素对齐方式*//* vertical-align: top; *//* 方式二:将行内级别元素img改为块级*/display: block;
}

文本省略

单行文本省略

p {width: 100px;/* 单行文本省略*/white-space: nowrap;overflow: hidden;text-overflow: ellipsis;
}

多行文本省略

p {width: 100px;/* 3行文本省略*/display:-webkit-box;-webkit-line-clamp:2; -webkit-box-orient:verticaloverflow:hidden;text-overflow:ellipsis;
}

居中

行内级别元素
img、input表单、文本
display: inline / inline-block

// 水平居中
text-align:center;// 垂直居中
line-height === height

块级元素
注:有固定width属性

// 水平居中
margin: 0 auto;

绝对定位元素
方式1
top:50% + margin-top负值 垂直居中
left:50% + margin-left负值 水平居中

.container {position: relative;width: 500px;height: 500px;border: 1px solid #000;
}.container>.box {/* position: fixed; */position: absolute;width: 200px;height: 200px;background-color: pink;/* 相对于最近定位元素的50% */top: 50%;/* 向上移动自身高度px */margin-top: -100px;left: 50%;margin-left: -100px;
}

方式2
top:50% + translateY(-50%) 垂直居中
left:50% + translateX(-50%) 水平居中

.container {position: relative;width: 500px;height: 500px;border: 1px solid #000;
}.container>.box {/* position: fixed; */position: absolute;width: 200px;height: 200px;background-color: pink;/* 相对于最近定位元素的50% */top: 50%;left: 50%;/* 相对于自身50% */transform: translate(-50%,-50%);
}

方式3
top,bottom:0 + margin:auto 0; 垂直居中
left,right:0 + margin:0 auto; 水平居中

.container {position: relative;width: 500px;height: 500px;border: 1px solid #000;
}.container>.box {/* position: fixed; */position: absolute;width: 200px;height: 200px;background-color: pink;left: 0;right: 0;top: 0;bottom: 0;margin: auto;
}

相对定位元素

  • relative的百分比数值,相对于包含块
  • relative的像素数值,相对于自身

top:50% + translateY(-50%) 垂直居中
left:50% + translateX(-50%) 水平居中

.container {width: 500px;height: 500px;border: 1px solid #000;
}.container>.box {position: relative;width: 200px;height: 200px;background-color: pink;top: 50%;left: 50%;transform: translate(-50%,-50%);
}

flex居中

.container {display: flex;width: 200px;height: 200px;/* 主轴方向居中 */justify-content: center;/* 侧轴方向居中 */align-items: center;background-color: pink;
}

背景图居中
背景大图居中:缩放浏览器,背景始终居中显示

方式1:

.box {height: 700px;background: url(./43619545307190.png) no-repeat center;
}

方式2:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>* {margin: 0;padding: 0;}.box {height: 700px;overflow: hidden;}.box img {/* 1. 向右移动父元素宽的一半*/margin-left: 50%;/* 2. 向左移动背景图宽的一半*/transform: translate(-50%);}</style>
</head><body><div class="box"><img src="./43619545307190.png" alt=""></div>
</body></html>

元素隐藏

display:none 不占据空间
visibility:hidden 占据空间
opacity:0 占据空间,元素及其子元素都透明

最大最小宽高

PC端页面设置最小宽度,通常为设计稿宽度

html {min-width: 1226px;	
}

图片设置最大宽度,不超过容器

img {min-width: 100%;	
}

object-fit

object-fit 控制行内替换元素的适应方式
注:audio video input img 等为行内替换元素

contain
在填充元素的内容框时保持其宽高比
元素的宽或高碰到边界时停止

cover
在填充元素的内容框时保持其宽高比
如果对象的宽高比与内容框不相匹配,该对象将被剪裁以适应内容框

fill
元素将被拉伸以适应内容框。

none
元素将保持其原有的尺寸
在这里插入图片描述

CSS图形与动画

三角形

在这里插入图片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style>.box1 {width: 200px;height: 200px;border-top: 100px solid red;border-right: 100px solid blue;border-bottom: 100px solid green;border-left: 100px solid orange;}.box2 {width: 0;height: 0;border-top: 100px solid red;border-right: 100px solid blue;border-bottom: 100px solid green;border-left: 100px solid orange;}.box3 {width: 0;height: 0;border-top: 100px solid pink;border-left: 58px solid transparent;border-right: 58px solid transparent;}</style></head><body><div class="box1"></div><div class="box2"></div><div class="box3"></div></body>
</html>

带边框的三角形
在这里插入图片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style>* {margin: 0;padding: 0;}.box {position: relative;width: 200px;height: 200px;border: 1px solid #000;}.box::after {position: absolute;left: 95%;top: 50%;margin-top: -10px;transform: rotate(45deg);content: "";width: 20px;height: 20px;border: 1px solid #000;border-left: none;border-bottom: none;background-color: #fff;}</style></head><body><div class="box"></div></body>
</html>

transform形变

transform形变

  • 只对块元素(display:block;)有效
  • 类似于相对定位relative,形影分离(不影响其他元素的布局)

transform:
​ rotate(x) 旋转角度
​ scale(x,y) 缩放
​ skew(x,y) 倾斜角度
​ translate(x,y) 移动
​ transform-origin 形变中心,默认中心为元素中心位置

transition过渡

transition: 过渡属性 持续时间 函数 延时

过渡属性:一般过渡具有数值的属性

animation动画

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style>.ball {width: 50px;height: 50px;background-color: pink;border-radius: 50%;/* 2.使用css动画 *//* alternate 轮流交替 0%~100%100%~0% */animation: jump 0.5s infinite alternate;}/* 1.定义关键帧 */@keyframes jump {0% {transform: scale(1.3, 0.7);}100% {transform: scale(0.7, 1.3) translateY(100px);}}</style></head><body><div class="ball"></div></body>
</html>

布局

浮动布局

1.垂直方向由标准流排列(使用块级元素)
2.水平方向使用浮动float + 清除浮动

flex布局

flex布局知识点

grid布局

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/101790.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Yocto Project 编译imx-第1节(下载和编译)

Yocto Project 编译imx-第1节&#xff08;下载和编译&#xff09; 前言说明参考文章版本说明Ubuntu 系统说明和建议必备软件安装设置Git用户名和密码解决git报错使用FastGithub 获取repo获取Yocto项目设置Yocto源获取Yocto版本&#xff08;https://source.codeaurora.org废弃&a…

记录用命令行将项目打包成war包

记录用命令行将项目打包成war包 找到项目的pom.xml 在当前路径下进入cmd 输入命令 mvn clean package 发现报错了 Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2:war (default-war) on project MMS: Error assembling WAR: webxml attribute is req…

排序算法-快速排序法(QuickSort)

排序算法-快速排序法&#xff08;QuickSort&#xff09; 1、说明 快速排序法是由C.A.R.Hoare提出来的。快速排序法又称分割交换排序法&#xff0c;是目前公认的最佳排序法&#xff0c;也是使用分而治之&#xff08;Divide and Conquer&#xff09;的方式&#xff0c;会先在数…

统计子岛屿的数量

统计子岛屿 题目描述 给你两个 m x n 的二进制矩阵 grid1 和 grid2 &#xff0c;它们只包含 0 &#xff08;表示水域&#xff09;和 1 &#xff08;表示陆地&#xff09;。一个 岛屿 是由 四个方向 &#xff08;水平或者竖直&#xff09;上相邻的 1 组成的区域。任何矩阵以外…

【STM32单片机】防盗报警器设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用STM32F103C8T6单片机控制器&#xff0c;使用按键、动态数码管、蜂鸣器、指示灯、热释电人体红外传感器等。 主要功能&#xff1a; 系统运行后&#xff0c;默认处于布防状态&#xff0c;D1指示灯…

Excel 规范录入数据

文章目录 录入日期录入百分比 快捷键&#xff1a; tab&#xff1a;向右切换单元格 enter&#xff1a;向下切换行 shift tab&#xff1a;向左切换单元格 shiftenter&#xff1a;向上切换行 录入日期 输入今天的日期的快捷键&#xff1a;Ctrl ; 输入当时的时间的快捷键&a…

Java反射获取抽象类方法属性问题讲解

Java反射获取抽象类方法属性问题讲解 结论一、案例准备二、测试方法&#xff1a;使用反射获取抽象类私有方法和私有属性具体操作&#xff08;获取私有方法&#xff09;具体操作&#xff08;获取私有属性&#xff09; 结论 Java 通过反射可以获得抽象类的任何修饰符&#xff08…

Gin框架中的Cookie怎么搞(会话控制)

参考地址 设置和获取 Cookie | Gin Web Framework (gin-gonic.com)https://gin-gonic.com/zh-cn/docs/examples/cookie/ 什么是cookie cookie在互联网上随处可见,具体体现如下: 保持登录状态 保存浏览器的历史记录 大数据随心配,按喜好推送讯息 购物网站加入购物车 都会…

IntelliJ IDEA Maven 项目的依赖分析

在一个 maven 的项目中&#xff0c;我们需要知道我们的项目中使用的包可能有哪些冲突。 这个在 IntelliJ IDEA 中提供了贴心的查看。 选择 Maven 项目中的分析依赖。 随后&#xff0c;IntelliJ IDEA 将会打开一个依赖分析的标签页。 在这个标签页中&#xff0c;我们可以看到…

用例图 UML从入门到放弃系列之三

1.说明 关于用例图&#xff0c;这篇文章我将直接照搬罗伯特.C.马丁老爷子在《敏捷开发》一书种的第17章&#xff0c;并配上自己的理解&#xff0c;因为这一章写的实在是太精彩了&#xff0c;希望能够分享给大家&#xff0c;共勉。以下是老爷子的原文中文翻译以及豆芽的个人解读…

C++ (Chapter 1)

C (一) 1.C的命名空间 先来看一个C语言的例子: 下面这段代码是可以正常运行的. #include<stdio.h> int rand 0; int main() {printf("%d \n", rand);return 0; }但是,包含了一个头文件之后,甚至无法通过编译. #include<stdio.h> #include<stdli…

大数据Doris(八):启动FE步骤

文章目录 启动FE步骤 一、配置环境变量 二、​​​​​​​创建doris-mate

排序算法-插入排序法(InsertSort)

排序算法-插入排序法&#xff08;InsertSort&#xff09; 1、说明 插入排序法是将数组中的元素逐一与已排序好的数据进行比较&#xff0c;先将前两个元素排序好&#xff0c;再将第三个元素插入适当的位置&#xff0c;也就是说这三个元素仍然是已排序好的&#xff0c;接着将第…

剖析伦敦银最新价格走势图

国际金融市场瞬息万变&#xff0c;伦敦银的价格走势会受到诸多因素的影响&#xff0c;比如重要经济数据的公布&#xff0c;国际间的政治博弈&#xff0c;突发的政经大事&#xff0c;都可以令白银价格的走势&#xff0c;在短时间内暴涨暴跌的情况。 要在伦敦银市场实现良好的收益…

Linux文件目录总结

众所周知&#xff0c;Linux系统文件目录是树状结构&#xff0c;如下图所示&#xff1a; 英文缩写的目录下到底存放的是什么文件&#xff0c;善于做归纳总结的逍遥哥哥来解释一下&#xff1a; /bin&#xff1a;bin是Binary的缩写&#xff0c;这个目录存放着最经常使用的命令。 …

NEFU离散数学实验1-排列组合

相关概念 在离散数学中&#xff0c;组合数是一种用于计算从n个不同元素中选取m个元素的方式。以下是一些与组合数相关的概念&#xff1a; 排列&#xff1a;从n个不同元素中选取m个元素进行排列&#xff0c;排列数用P(n, m)表示&#xff0c;计算公式为P(n, m) n! / (n - m)! …

nodejs+vue家教管理系统

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1nodejs简介 4 2.2 express框架介绍 6 2.3 B/S结构 4 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性…

基于YOLO算法的单目相机2D测量(工件尺寸和物体尺寸)

1.简介 1.1 2D测量技术 基于单目相机的2D测量技术在许多领域中具有重要的背景和意义。 工业制造&#xff1a;在工业制造过程中&#xff0c;精确测量是确保产品质量和一致性的关键。基于单目相机的2D测量技术可以用于检测和测量零件尺寸、位置、形状等参数&#xff0c;进而实…

【网络安全】如何保护IP地址?

使用防火墙是保护IP地址的一个重要手段。防火墙可以监控和过滤网络流量&#xff0c;并阻止未经授权的访问。一家网络安全公司的研究显示&#xff0c;超过80%的企业已经部署了防火墙来保护他们的网络和IP地址。 除了防火墙&#xff0c;定期更新操作系统和应用程序也是保护IP地址…

学信息系统项目管理师第4版系列24_整合管理

1. PMBOK 1.1. 自1987年以来&#xff0c;PMBOK-直是基于过程的项目管理标准的重要代表 1.1.1. 基于过程的方法是项目管理的基石 1.2. 从2021年开始&#xff0c;第7版PMBOK采用了基于原则的标准&#xff0c;其中包含了 12个项目管理基本原则&#xff0c;这些基本原则为有效的…