前端基础知识

news2024/11/15 15:47:12

文章目录

  • 前端基础知识
    • HTML
      • 1. html基本结构
      • 2.常见的html标签
        • 注释标签
        • 标题标签(h1~h6)
        • 段落标签p
        • 换行标签 br
        • 格式化标签
        • 图片标签:img
        • 超链接标签
        • 表格标签
        • 列表标签
        • 表单标签
        • input标签
        • label标签
        • select标签
        • textarea 标签
        • 盒子标签div&span
      • 3. html特殊字符
    • CSS
      • 1. 基本语法
      • 2. 引入方式
        • 行内样式
        • 内部样式
        • 外部样式
      • 3.选择器
        • 基础选择器
          • 标签选择器
          • 类选择器
          • id选择器
          • 通配符选择器
        • 复合选择器
          • 后代选择器
          • 子选择器
          • 并集选择器
          • 伪类选择器
      • 4.常用元素属性
        • 字体属性
          • 设置字体
          • 大小
          • 粗细
          • 文字样式
        • 文本属性
          • 设置文本颜色
          • 文本对齐
          • 文本装饰
          • 文本缩进
          • 行高
        • 背景属性
          • 背景颜色
          • 背景图片
          • 背景平铺
          • 背景位置
          • 背景尺寸
        • 圆角矩形
      • 5. 元素显示模式
        • 块级元素
        • 行内元素
        • 行内元素和块级元素的区别
        • 改变显示模式
      • 6.盒子模型
        • 边框
        • 内外边距
        • 块级元素水平居中
        • 去除浏览器默认样式
      • 7. 弹性布局
          • flex布局基本概念
          • 常用属性


前端基础知识

HTML

1. html基本结构

html代码是由一个个标签构成的

  • 标签一般成对出现<h1></h1>
  • 少数标签只有开始标签,称为单标签
  • 开始标签和结束标签之间写的是标签的内容
  • 开始标签中可能会写有属性
<!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>
</head>
<body>
    <input class="content" type="text">
</body>
</html>
  • html标签是整个html文件的根标签
  • head标签中写的是页面属性
  • body标签中写的是页面上显示的内容
  • title标签中写的是页面的标题

2.常见的html标签

注释标签

<!-- 这是注释 -->

标题标签(h1~h6)

从1级标题到6级标题,数字越大字体越小

<h1>1</h1>
<h2>2</h2>
<h3>3</h3>
<h4>4</h4>
<h5>5</h5>
<h6>6</h6>

段落标签p

把一段长文本放到html中并不会分成段落,此时就要用到<p></p>标签

<p>
    前端开发是创建WEB页面或APP等前端界面呈现给用户的过程,通过HTML,CSS及JavaScript以及衍生出来的各种技术、框架、解决方案,来实现互联网产品的用户界面交互
</p>

注意:

  • p标签和p标签之间存在着一个空隙
  • 当前的p标签,文章的开头前面试没有缩进的,需要通过CSS实现
  • p标签会自动根据浏览器宽度来决定排版
  • html中内容首尾处的换行和空格都无效
  • 在p标签文字中输入多个空格只是相当于一个空格
  • html中输入换行不会真的换行,而是相当于一个空格

换行标签 br

  • br是一个单标签
  • 建议写成<br/>
<p>
        前端开发是创建WEB页面或APP等前端界面呈现给用 户的过程,<br/>
        通过HTML,CSS及JavaScript以及衍生出来的各种技术、框架、解决方案,来实现互联网产品的用户界面交互
    </p>

格式化标签

  • 加粗: strong 标签 和 b 标签
  • 倾斜: em 标签 和 i 标签
  • 删除线: del 标签 和 s 标签
  • 下划线: ins 标签 和 u 标签
<strong>strong 加粗</strong>
<b>b 加粗</b>
<em>倾斜</em>
<i>倾斜</i>
<del>删除线</del>
<s>删除线</s>
<ins>下划线</ins>
<u>下划线</u>

图片标签:img

img标签必须带有src属性,表示图片的路径

<img src="img/test.jpg">

img 标签的其他属性

  • alt: 替换文本. 当文本不能正确显示的时候, 会显示一个替换的文字.
  • title: 提示文本. 鼠标放到图片上, 就会有提示.
  • width/height: 控制宽度高度. 高度和宽度一般改一个就行, 另外一个会等比例缩放. 否则就会图片
    失衡.
  • border: 边框, 参数是宽度的像素. 但是一般使用 CSS 来设定

注意:

  1. 属性可以有多个, 不能写到标签之前
  2. 属性之间用空格分割, 可以是多个空格, 也可以是换行
  3. 属性之间不分先后顺序
  4. 路径可以是相对路径、绝对路径、网络路径

超链接标签

  • href: 必须具备, 表示点击后会跳转到哪个页面.
  • target: 打开方式. 默认是 _self. 如果是 _blank 则用新的标签页打开
<a href="https://www.baidu.com" target="_blank">点击跳转百度</a>

链接的几种形式

跳转内部页面

<a href="index.html">点我跳转到 login.html</a>
<a href="login.html">点我跳转到 index.html</a>

空链接: 使用 # 在 href 中占位

<a href="#">空链接</a>

下载链接: href 对应的路径是一个文件. (可以使用 zip 文件)

<a href="java.zip">下载文件</a>

网页元素链接: 可以给图片等任何元素添加链接(把元素放到 a 标签中 )

<a href="https://www.baidu.com" target="_blank">
    <img src="img/sexm.png" alt="">
</a>

表格标签

  • table 标签: 表示整个表格
  • tr: 表示表格的一行
  • td: 表示一个单元格
  • th: 表示表头单元格. 会居中加粗
  • thead: 表格的头部区域(注意和 th 区分, 范围是比 th 要大的)
  • tbody: 表格得到主体区域

table 包含 tr , tr 包含 td 或者 th

表格标签有一些属性, 可以用于设置大小边框等. 但是一般使用 CSS 方式来设置.
这些属性都要放到 table 标签中.
align 是表格相对于周围元素的对齐方式. align=“center” (不是内部元素的对齐方式)
border 表示边框. 1 表示有边框(数字越大, 边框越粗), “” 表示没边框.
cellpadding: 内容距离边框的距离, 默认 1 像素
cellspacing: 单元格之间的距离. 默认为 2 像素
width / height: 设置尺寸.
注意, 这几个属性, vscode 都提示不出来.

<table align="center" border="1" cellpadding="20" cellspacing="0" width="500"
height="500">
    <tr>
        <td>姓名</td>
        <td>性别</td>
        <td>年龄</td>
    </tr>
    <tr>
        <td>张三</td>
        <td></td>
        <td>10</td>
    </tr>
    <tr>
        <td>李四</td>
        <td></td>
        <td>11</td>
    </tr>
</table>

合并单元格

  • 跨行合并: rowspan=“n”
  • 跨列合并: colspan=“n”

步骤

  1. 先确定跨行还是跨列
  2. 找好目标单元格(跨列合并, 左侧是目标单元格; 跨行合并, 上方是目标单元格)
  3. 删除的多余的单元格

列表标签

主要使用来布局的. 整齐好看.

  • 无序列表 <ul><li>
  • 有序列表[用的不多] <ol><li>
  • 自定义列表[重要] dl (总标签) dt (小标题) dd (围绕标题来说明) 上面有个小标题, 下面有几个围绕
    着标题来展开的
<h3>无序列表</h3>
<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
</ul>
<h3>有序列表</h3>
<ol>
    <li>one</li>
    <li>tow</li>
    <li>three</li>
</ol>
<h3>自定义列表</h3>
<dl>
    <dt>第一级</dt>
    <dd>test</dd>
    <dd>test</dd>
    <dd>test</dd>
</dl>

表单标签

表单是提交用户输入信息的关键

表单分成两个部分

  • 表单域:包含表单元素的区域<form>标签
  • 表单控件:输入框,提交按钮<input>标签

form标签

<form action="test.html">
    <input type="text" name="username">
    <input type="submit" value="提交">
</form>

点击提交按钮后就会尝试给服务器发送

input标签

各种输入控件, 单行文本框, 按钮, 单选框, 复选框.

  • type(必须有), 取值种类很多多, button, checkbox, text, file, image, password, radio 等.
  • name: 给 input 起了个名字. 尤其是对于 单选按钮, 具有相同的 name 才能多选一.
  • value: input 中的默认值.

1.文本框

<input type="text">

2.密码框

<input type="password">

3.单选框

**单选框之间必须具备相同的 name 属性, 才能实现 多选一 效果 **

<input type="radio" name="sex"><input type="radio" name="sex">

4.复选框

<input type="checkbox"> 吃饭 <input type="checkbox"> 睡觉 <input type="checkbox">
打游戏

5.普通按钮

<input type="button" value="按钮">

6.提交按钮

<form action="test.html">
<input type="text" name="username">
<input type="submit" value="提交">
</form>

7.清空按钮

<form action="test.html">
    <input type="text" name="username">
    <input type="submit" value="提交">
    <input type="reset" value="清空">
</form>

label标签

搭配 input 使用. 点击 label 也能选中对应的单选/复选框, 能够提升用户体验

<input type="radio" name="sex" id="sexm"><label for="sexm"><img src="img/sexm.png" width="15" height="15"></label>
               <input type="radio" name="sex" id="sexw"><label for="sexw"><img src="img/sexw.png" width="15" height="15"></label>

select标签

下拉菜单

  • option 中定义 selected=“selected” 表示默认选中
<select name="" id="">
                    <option value="">--请选择出生年份--</option>
                    <option value="">1995</option>
                    <option value="">1996</option>
                    <option value="">1997</option>
                    <option value="">1998</option>
                    <option value="">1999</option>
                    <option value="">2000</option>
                    <option value="">2001</option>
                    <option value="">2002</option>
                    <option value="">2003</opt1ion>
                </select>

textarea 标签

<textarea rows="3" cols="50">
</textarea>
  • 文本域中的内容, 就是默认内容, 注意, 空格也会有影响
  • rows 和 cols 也都不会直接使用, 都是用 css 来改的.

盒子标签div&span

div 标签, division 的缩写, 含义是 分割
span 标签, 含义是跨度
就是两个盒子. 用于网页布局

  • div 是独占一行的, 是一个大盒子.
  • span 不独占一行, 是一个小盒子
<div>
    <span>hello</span>
    <span>hello</span>
    <span>hello</span>
</div>
<div>
    <span>hello</span>
    <span>hello</span>
    <span>hello</span>
</div>

3. html特殊字符

  • 空格: &nbsp;
  • 小于号: <;
  • 大于号: >;
  • 按位与: &;

CSS

1. 基本语法

选择器+{多条样式声明}

  • 选择器决定针对谁修改 (找谁)
  • 声明决定修改啥. (干啥)
  • 声明的属性是键值对. 使用 ; 区分键值对, 使用 : 区分键和值
  • CSS中不区分字母大小写
/*清楚默认样式*/
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

2. 引入方式

行内样式

通过 style 属性, 来指定某个标签的样式.
只适合于写简单样式. 只针对某个标签生效

缺点: 不能写太复杂的样式.
这种写法优先级较高, 会覆盖其他的样式

<div style="color: red">
    <span>hello</span>
    <span>hello</span>
    <span>hello</span>
</div>

内部样式

写在 style 标签中. 嵌入到 html 内部.
理论上来说 style 放到 html 的哪里都行. 但是一般都是放到 head 标签中

优点: 这样做能够让样式和页面结构分离.
缺点: 分离的还不够彻底. 尤其是 css 内容多的时候

<style>
    * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
    }
    #nav {
        background-color: red;
        color: white;  
        text-align: center;
        height: 50px;
        line-height: 50px;
        font-size: 25px;
    }

</style>

外部样式

最常用的一种方式

1.先创建一个CSS文件

2.通过link标签引入CSS

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>外部样式</title>
    <link rel="stylesheet" href="test.css">
</head>

优点: 样式和结构彻底分离了.
缺点: 受到浏览器缓存影响, 修改之后 不一定 立刻生效

关于缓存:
这是计算机中一种常见的提升性能的技术手段.
网页依赖的资源(图片/CSS/JS等)通常是从服务器上获取的. 如果频繁访问该网站, 那么这些外部资
源就没必要反复从服务器获取. 就可以使用缓存先存起来(就是存在本地磁盘上了). 从而提高访问效
率.
可以通过 ctrl + F5 强制刷新页面, 强制浏览器重新获取 css 文件

3.选择器

  1. 基础选择器: 单个选择器构成的
    标签选择器
    类选择器
    id 选择器
    通配符选择器
  2. 复合选择器: 把多种基础选择器综合运用起来.
    后代选择器
    子选择器
    并集选择器
    伪类选择器

基础选择器

标签选择器

特点:
1.能快速为同一类型的标签都选择出来.
2.但是不能差异化选择

<style>
        p {
            color: red;
        }
        div {
            color: green;
        }
</style>
<p>
        前端开发是创建WEB页面或APP等前端界面呈现给用 户的过程,<br/>
        通过HTML,CSS及JavaScript以及衍生出来的各种技术、框架、解决方案,来实现互联网产品的用户界面交互
    </p>
<div>
    <span>hello</span>
    <span>hello</span>
    <span>hello</span>
</div>
类选择器

特点:
1.差异化表示不同的标签
2.可以让多个标签的都使用同一个标签

语法:

1.类名用 . 开头的
2.下方的标签使用 class 属性来调用.
3.一个类可以被多个标签使用, 一个标签也能使用多个类(多个类名要使用空格分割, 这种做法可以让代码更好复用)
4.如果是长的类名, 可以使用 - 分割.
5.不要使用纯数字, 或者中文, 以及标签名来命名类名

<style>
    .box {
        width: 200px;
        height: 150px;
    }
    .red {
    	background-color: red;
    }
    .green {
    	background-color: green;
    }
</style>
<div class="box red"></div>
<div class="box green"></div>
<div class="box red"></div>
id选择器

1.CSS 中使用 # 开头表示 id 选择器

2.id 选择器的值和 html 中某个元素的 id 值相同

3.id 是唯一的, 不能被多个标签使用 (是和 类选择器 最大的区别)

#nav {
    background-color: red;
    color: white;  
    text-align: center;
    height: 50px;
    line-height: 50px;
    font-size: 25px;
}
<body>
    
    <div id="main">
        <div id="nav">我是导航栏</div>
        <div id="body">
            <div class="left">我是左边栏</div>
            <div class="content">我是内容区域</div>
            <div class="right">我是右边栏</div>
        </div>
    </div>
</body>
通配符选择器

使用*表示选取所有标签

/*清楚默认样式*/
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

复合选择器

后代选择器
元素1 元素2 {样式声明}
  • 选择某个父元素中的某个子元素
  • 元素 2 不一定非是 儿子, 也可以是孙子
  • 可以是任意基础选择器的组合. (包括类选择器, id 选择器)
#main .two {
    width: 100px;
}
#main .one {
    color: pink;
} 
<div class="main">
        <div>
            <div class="one">
                hello
            </div>    
        </div>
        <div class="two">
				test
        </div>
</div>
子选择器

和后代选择器类似, 但是**只能选择子标签 **

元素1>元素2 { 样式声明 }
#main>.two {
    width: 100px;
}
<div id="main">
        <div>
            <div class="two">
                hello
            </div>    
        </div>
        <div class="two">
            test
        </div>
    </div>
并集选择器

用于选择多组标签. (集体声明)

元素1, 元素2 { 样式声明 }
  • 通过 逗号 分割等多个元素.
  • 表示同时选中元素 1 和 元素 2
  • 任何基础选择器都可以使用并集选择器.
  • 并集选择器建议竖着写. 每个选择器占一行. (最后一个选择器不能加逗号)
p,div {
         color: red;
}

<div id="main">
    <div>
        <div class="two">
            hello
        </div>    
    </div>
    <div class="two">
        test
    </div>
</div>

<p>
    前端开发是创建WEB页面或APP等前端界面呈现给用 户的过程,<br/>
    通过HTML,CSS及JavaScript以及衍生出来的各种技术、框架、解决方案,来实现互联网产品的用户界面交互
</p>
伪类选择器

1.链接伪类选择器

  • a:link 选择未被访问过的链接
  • a:visited 选择已经被访问过的链接
  • a:hover 选择鼠标指针悬停上的链接
  • a:active 选择活动链接(鼠标按下了但是未弹起)
<style>
    a:link {
        color: blue;
    }
    a:visited {
        color: green;
    }
    a:hover {
        color: red;
    }
    a:active {
        color: pink;
    }
</style>
<a href="#">测试</a>

2.force伪类选择器

选取获取焦点的 input 元素

此时选中文本框,背景就会变色,字体也会变色

input:focus {
    color: red;
    background-color: gainsboro;
}
<input type="text">

4.常用元素属性

字体属性

设置字体
body {
    font-family: '微软雅黑';
    font-family: 'Microsoft YaHei';
}
  • 多个字体之间使用逗号分隔. (从左到右查找字体, 如果都找不到, 会使用默认字体. )
  • 如果字体名有空格, 使用引号包裹.
  • 建议使用常见字体, 否则兼容性不好
  • 字体名称可以用中文, 但是不建议
大小
p {
	font-size: 20px;
}
  • 不同的浏览器默认字号不一样, 最好给一个明确值. (chrome 默认是 16px)
  • 可以给 body 标签使用 font-size
  • 要注意单位 px 不要忘记.
  • 标题标签需要单独指定大小
  • 实际上它设置的是字体中字符框的高度;实际的字符字形可能比这些框高或矮
粗细
p {
    font-weight: bold;
    font-weight: 700;
}
  • 可以使用数字表示粗细.
  • 700 == bold, 400 是不变粗, == normal
  • 取值范围是 100 -> 900
文字样式
/* 设置倾斜 */
font-style: italic;
/* 取消倾斜 */
font-style: normal

文本属性

设置文本颜色
color: red;
color: #ff0000;
color: rgb(255, 0, 0);
文本对齐

控制文字水平方向的对齐

text-align: [值];
  • center: 居中对齐
  • left: 左对齐
  • right: 右对齐
文本装饰
text-decoration: [值];

常用取值:

  • underline 下划线.
  • none 啥都没有. 可以给 a 标签去掉下划线.
  • overline 上划线.
  • line-through 删除线
文本缩进

控制段落的 首行 缩进 (其他行不影响)

text-indent: [值]
  • 单位可以使用 px 或者 em.
  • 使用 em 作为单位更好. 1 个 em 就是当前元素的文字大小.
  • 缩进可以是负的, 表示往左缩进. (会导致文字就冒出去了)
行高

行高指的是上下文本行之间的基线距离

line-height: [值];

行高 = 上边距 + 下边距 + 字体大

**注意:行高等与元素高度, 就可以实现文字居中对齐 **

#nav {
    background-color: red;
    color: white;  
    text-align: center;
    height: 50px;
    line-height: 50px;
    font-size: 25px;
}

背景属性

背景颜色
background-color: [指定颜色]

默认是 transparent (透明) 的. 可以通过设置颜色的方式修改

/* 背景透明 */
background-color: transparent;
背景图片
background-image: url(...);

比 image 更方便控制位置(图片在盒子中的位置)
注意:

  1. url 不要遗漏.
  2. url 可以是绝对路径, 也可以是相对路径
  3. url 上可以加引号, 也可以不加
背景平铺
background-repeat: [平铺方式]

重要取值:

  • repeat: 平铺
  • no-repeat: 不平铺
  • repeat-x: 水平平铺
  • repeat-y: 垂直平铺
  • 默认是 repeat.
    背景颜色和背景图片可以同时存在. 背景图片在背景颜色的上方
背景位置
background-position: x y;

修改图片的位置.
参数有三种风格:

  1. 方位名词: (top, left, right, bottom)
  2. 精确单位: 坐标或者百分比(以左上角为原点)
  3. 混合单位: 同时包含方位名词和精确单位
<style>
    .bgp .one {
    background-image: url(rose.jpg);
    height: 500px;
    background-repeat: no-repeat;
    background-color: purple;
    background-position: center;
}
</style>
<div class="bgp">
<div class="one">背景居中</div>
</div>

注意:

  • 如果参数的两个值都是方位名词, 则前后顺序无关. (top left 和 left top 等效)
  • 如果只指定了一个方位名词, 则第二个默认居中. (left 则意味着水平居中, top 意味着垂直居中. )
  • 如果参数是精确值, 则的的第一个肯定是 x , 第二个肯定是 y. (100 200 意味着 x 为 100, y 为 200)
  • 如果参数是精确值, 且只给了一个数值, 则该数值一定是 x 坐标, 另一个默认垂直居中.
  • 如果参数是混合单位, 则第一个值一定为 x, 第二个值为 y 坐标. (100 center 表示横坐标为 100, 垂直居中)
背景尺寸
background-size: length|percentage|cover|contain;
  • 可以填具体的数值: 如 40px 60px 表示宽度为 40px, 高度为 60px
  • 也可以填百分比: 按照父元素的尺寸设置.
  • cover: 把背景图像扩展至足够大,以使背景图像完全覆盖背景区域。背景图像的某些部分也许无法显示在背景定位区域中。
  • 把图像图像扩展至最大尺寸,以使其宽度和高度完全适应内容区域.

圆角矩形

通过 border-radius 使边框带圆角效果

border-radius: length;

length 是内切圆的半径. 数值越大, 弧线越强烈

生成圆形

让 border-radius 的值为正方形宽度的一半即可

div {
    width: 200px;
    height: 200px;
    border: 2px solid green;
    border-radius: 100px;
    /* 或者用 50% 表示宽度的一半 */
    border-radius: 50%;
}

生成圆角矩形

让 border-radius 的值为矩形高度的一半即可

div {
    width: 200px;
    height: 100px;
    border: 2px solid green;
    border-radius: 50px;
}

5. 元素显示模式

块级元素

常见的块元素

  • h1-h6
  • p
  • div
  • ul
  • ol
  • li

特点:

  • 独占一行
  • 高度、宽度、内外边距、行高都可以控制
  • 宽度默认是父元素的宽度
  • 是一个盒子,里面可以放行内元素和块元素

注意:

  • 文字类的元素内不能使用块级元素
  • p 标签主要用于存放文字, 内部不能放块级元素, 尤其是 div

行内元素

常见的行内元素有

  • span
  • a
  • em

特点:

  • 不独占一行,一行可以显示多个
  • 设置高度宽度和行高无效
  • 左右外边距有效,上下无效
  • 内边距有效
  • 默认宽度和本身内容有关
  • 行内元素只能容纳文本和其他行内元素, 不能放块级元素

注意:

  • a 标签中不能再放 a 标签 (虽然 chrome 不报错, 但是最好不要这么做).
  • a 标签里可以放块级元素, 但是更建议先把 a 转换成块级元素

行内元素和块级元素的区别

  • 块级元素独占一行, 行内元素不独占一行
  • 块级元素可以设置宽高, 行内元素不能设置宽高.
  • 块级元素四个方向都能设置内外边距, 行内元素垂直方向不能设置

改变显示模式

使用 display 属性可以修改元素的显示模式.
可以把 div 等变成行内元素, 也可以把 a , span 等变成块级元素.

  • display: block 改成块级元素
  • display: inline 改成行内元素
  • display: inline-block 改成行内块元素

6.盒子模型

每一个 HTML 元素就相当于是一个矩形的 “盒子”
这个盒子由这几个部分构成

  • 边框 border
  • 内容 content
  • 内边距 padding
  • 外边距 margin

边框

基础属性

  • 粗细: border-width
  • 样式: border-style, 默认没边框. solid 实线边框 dashed 虚线边框 dotted 点线边框
  • 颜色: border-color

**注意:边框会撑大盒子 **

通过 box-sizing 属性可以修改浏览器的行为, 使边框不再撑大盒子

* {
	box-sizing: border-box;
}

内外边距

内边距

padding 设置内容和边框之间的距离

默认内容是顶着边框来放置的. 用 padding 来控制这个距离

可以给四个方向都设置边距

  • padding-top
  • padding-bottom
  • padding-left
  • padding-right

可以把多个方向的 padding 合并到一起. [四种情况都要记住, 都很常见]

padding: 10px; 表示四个方向都是 10px
padding: 5px 10px; 表示上下内边距 5px, 左右内边距为 10px
padding: 5px 10px 20px; 表示上边距 5px, 左右内边距为 10px, 下内边距为 20px
padding: 5px 10px 20px 30px; 表示 上5px, 右10px, 下20px, 左30px (顺时针)

外边距

margin控制盒子和盒子之间的距离

也可以给四个方向都加上边距

  • margin-top
  • margin-bottom
  • margin-left
  • margin-right

margin也是支持符合写法的

margin: 10px; // 四个方向都设置
margin: 10px 20px; // 上下为 10, 左右 20
margin: 10px 20px 30px; // 上 10, 左右 20, 下 30
margin: 10px 20px 30px 40px; // 上 10, 右 20, 下 30, 左 40

块级元素水平居中

前提:

  • 指定宽度(如果不指定宽度, 默认和父元素一致)
  • 把水平 margin 设为 auto

以下三种写法均可实现

margin-left: auto; margin-right: auto;
margin: auto;
margin: 0 auto;

注意:
这个水平居中的方式和 text-align 不一样.

  • margin: auto 是给块级元素用得到.
  • text-align: center 是让行内元素或者行内块元素居中的

去除浏览器默认样式

浏览器会给元素加上一些默认的样式, 尤其是内外边距. 不同浏览器的默认样式存在差别.
为了保证代码在不同的浏览器上都能按照统一的样式显示, 往往我们会去除浏览器默认样式.使用通配符选择器即可完成这件事情

* {
    marign: 0;
    padding: 0;
    
}

7. 弹性布局

flex布局基本概念

flex 是 flexible box 的缩写. 意思为 “弹性盒子”

任何一个html元素,都可以指定为display:flex完成弹性布局

flex布局的本质是给父盒子添加display:flex属性,来控制盒子的位置和排列方式

基本概念:

  • 被设置为 display:flex 属性的元素, 称为 flex containe
  • 它的所有子元素立刻称为了该容器的成员, 称为 flex item
  • flex item 可以纵向排列, 也可以横向排列, 称为 flex direction(主轴)

注意:
当父元素设置为 display: flex 之后, 子元素的 float, clear, vertical-align 都会失效

常用属性

justify-content

设置主轴上的子元素排列方式 ,使用之前一定要确定好主轴是哪个方向

取值作用
flex-start默认值,项目位于容器的开头
flex-end项目位于容器的结尾
center项目位于容器中央
space-between项目在行与行之间有间隔
space-around项目在行之前,行之间和行之后留有空间
<div>
    <span>1</span>
    <span>2</span>
    <span>3</span>
    <span>4</span>
    <span>5</span>
</div>
<style>
    div {
        width: 100%;
        height: 150px;
        background-color: red;
        display: flex;
    }
    div span {
        width: 100px;
        height: 100px;
        background-color: green;
    }
</style>

未设置justify-content效果
在这里插入图片描述

设置justify-content: flex-end

在这里插入图片描述

设置jutify-content: center

在这里插入图片描述

设置justify-content: space-around

在这里插入图片描述

设置justify-content: space-between

在这里插入图片描述

align-items

设置侧轴上的元素排列方式

在上面的代码中, 我们是让元素按照主轴的方向排列, 同理我们也可以指定元素按照侧轴方向排列.

取值作用
stretch默认值,行拉伸以占据剩余空间
center朝着弹性容器的中央对行打包
flex-start朝着弹性容器的开头对行打包
flex-end朝着弹性容器的结尾对行打包
space-between行均匀分布在弹性容器中
space-around行均匀分布在弹性容器中,两端各占一半

取值和 justify-content 差不多

理解 stretch(拉伸):
这个是 align-content 的默认值. 意思是如果子元素没有被显式指定高度, 那么就会填充满父元素的
高度.

<div>
        <span>1</span>
        <span>2</span>
        <span>3</span>
        </div>
    <style>
        div {
            width: 500px;
            height: 500px;
            background-color: green;
            display: flex;
            justify-content: space-around;
        }
        div span {
            width: 100px;
            background-color: red;
        }
    </style>

在这里插入图片描述

可以使用 align-items 实现垂直居中

在这里插入图片描述

**注意:align-items 只能针对单行元素来实现. 如果有多行元素, 就需要使用 item-contents **


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

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

相关文章

Hive总结

文章目录一、Hive基本概念二、Hive数据类型三、DDL,DML,DQL1 DDL操作2 DML操作3 DQL操作四、分区操作和分桶操作1、分区操作2、分桶操作五、Hive函数六、文件格式和压缩格式一、Hive基本概念 Hive是什么&#xff1f; Hive&#xff1a;由 Facebook 开源用于解决海量结构化日志的…

监控易网络管理:网络流量分析

1、什么是网络流量分析2、网络流量分析的作用3、为什么要用网络流量分析功能&#xff0c;如何开启什么是网络流量分析简单的来说&#xff0c;网络流量分析就是捕捉网络中流动的数据包&#xff0c;并通过查看包内部数据以及进行相关的协议、流量、分析、统计等&#xff0c;协助发…

[ 攻防演练演示篇 ] 利用通达OA 文件上传漏洞上传webshell获取主机权限

&#x1f36c; 博主介绍 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 _PowerShell &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 &#x1f389;点赞➕评论➕收藏 养成习…

XSS挑战赛(xsslabs)1~10关通关解析

简介 XSS挑战赛&#xff0c;里面包含了各种XSS的防御方式和绕过方式&#xff0c;好好掌握里面的绕过细节&#xff0c;有助于我们更好的去发现XSS漏洞以及XSS的防御。本文更多的是分享解析的细节&#xff0c;不是一个标准的答案&#xff0c;希望大家在渗透的时候有更多的思维。…

基于MindAR实现的网页端WebAR图片识别叠加动作模型追踪功能(含源码)

前言 由于之前一直在做这个AR/VR 相关的功能开发&#xff0c;大部分的时候实现方式都是基于高通Vuforia或者EasyAR等基于Unity3d的引擎的开发&#xff0c;这样开发的程序大部分都是运行在APP上&#xff0c;安卓或者ios的开发也能一次性搞定。不过当时大部分的需求都是需要在网…

Xshell的下载、使用、配置【ssh、telnet、串口】

目录 一、概述 二、Xshell的使用  2.1 Xshell使用ssh协议远程连接Linux主机或服务器  2.2 Xshell使用telnet协议远程连接Linux开发板  2.3 Xshell使用SERIAL协议远程连接Linux开发板 三、Xshell常用配置  3.1 配置默认会话属性 一、概述 Xshell是由NetSarang公司开发的强大…

【Linux】-- 进程间通讯

目录 进程间通讯概念的引入 意义&#xff08;手段&#xff09; 思维构建 进程间通信方式 管道 站在用户角度-浅度理解管道 匿名管道 pipe函数 站在文件描述符角度-深度理解管道 管道的特点总结 管道的拓展 单机版的负载均衡 匿名管道读写规则 命名管道 前言 原理…

深入理解java虚拟机精华总结:性能监控和故障处理工具、类加载机制

深入理解java虚拟机精华总结&#xff1a;性能监控和故障处理工具、类加载机制性能监控和故障处理工具、类加载机制jpsjstatjinfojmapjhatjstackVisualVM类加载机制类加载的时机类加载的过程加载验证准备解析初始化类加载器类与类加载器双亲委派模型破坏双亲委派模型往期内容&am…

HTML5的新特性

前言 为了更好地处理今天的互联网应用&#xff0c;HTML5添加了很多新元素及功能&#xff0c;比如: 图形的绘制&#xff0c;多媒体内容&#xff0c;更好的页面结构&#xff0c;更好的形式 处理&#xff0c;和几个api拖放元素&#xff0c;定位&#xff0c;包括网页 应用程序缓存…

八股总结(二)计算机网络与网络编程

layout: post title: 八股总结&#xff08;二&#xff09;计算机网络与网络编程 description: 八股总结&#xff08;二&#xff09;计算机网络与网络编程 tag: 八股总结 文章目录计算机网络网络模型网络体系结构在浏览器输入一个网址后回车&#xff0c;背后都发生了什么&#x…

C/C++每日一练(20230306)

目录 1. 判断素数的个数 ☆ 2. 分隔链表 ★★ 3. 数据流的中位数 ★★ 1. 判断素数的个数 在一个数组A中存放100个数据&#xff0c;用子函数判断该数组中哪些是素数&#xff0c;并统计该素数的个数&#xff0c;在主函数中输出该素数的个数。 代码&#xff1a; #includ…

三、Spark 内存管理

文章目录Spark 内存管理堆内和堆外内存堆内内存堆外内存堆外与堆内的平衡内存空间分配静态内存管理&#xff08;早期版本&#xff09;统一内存管理Spark 内存管理 堆内和堆外内存 Spark 引入了堆外&#xff08;Off-heap&#xff09;内存&#xff0c;使之可以直接在工作节点的…

Java——打开轮盘锁

题目链接 leetcode在线oj题——打开轮盘锁 题目描述 你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字&#xff1a; ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’ 。每个拨轮可以自由旋转&#xff1a;例如把 ‘9’ 变为 ‘0’&#xff0…

对话镕铭微电子蔡媛:深入理解用户痛点,满足差异化需求

“芯片不仅仅是一个硬件产品&#xff0c;为了更好的贴近用户、服务用户&#xff0c;我们需要在固件和软件的框架上投入足够的研发资源&#xff0c;与客户同步迭代更新&#xff0c;以适应其快速的业务迭代要求。在深入理解用户需求和痛点的基础上&#xff0c;满足用户差异化的功…

【STL】模拟实现list

目录 1、list介绍 所要实现类及其成员函数接口总览 2、结点类的模拟实现 基本框架 构造函数 3、迭代器类的模拟实现 迭代器类存在的意义 3.1、正向迭代器 基本框架 默认成员函数 构造函数 运算符重载 --运算符重载 !运算符重载 运算符重载 *运算符重载 …

MapReduce全排序和二次排序

排序是MapReduce框架中最重要的操作之一。MapTask和ReduceTask均会对数据按照key进行排序。该操作属于Hadoop的默认行为。任何应用程序中的数据均会被排序&#xff0c;而不管逻辑上是否需要。默认排序是按照字典顺序排序&#xff0c;且实现该排序的方法是快速排序。对于MapTask…

考研复试——操作系统

文章目录操作系统1. 操作系统的特征&#xff1a;2. 进程与线程的关系以及区别3. 简述进程和程序的区别4. 进程的常见状态&#xff1f;以及各种状态之间的转换条件&#xff1f;5. 进程的调度算法有哪些&#xff1f;6. 什么是死锁&#xff1f;产生条件&#xff1f;如何避免死锁&a…

【强化学习】强化学习数学基础:随机近似理论与随机梯度下降

强化学习数学基础&#xff1a;随机近似理论与随机梯度下降Stochastic Approximation and Stochastic Gradient Descent举个例子Robbins-Monro algorithm算法描述举个例子收敛性分析将RM算法用于mean estimationStochastic gradient descent算法描述示例和应用收敛性分析收敛模式…

Rainbond V5.12 版本发布,支持平台级插件和能力扩展

在这个版本中&#xff0c;我们主要支持了平台级的插件和能力扩展。希望能通过外部插件扩展平台能力&#xff0c;实现微内核的效果&#xff1b;同时以后将会继续精简安装&#xff0c;能让用户按需扩展平台功能。在 Kubernetes 兼容性这方面&#xff0c;我们也通过平台级的能力将…

详解JAVA类加载

目录 1.概述 2.双亲委派 3.ServiceClassLoader 4.URLClassLoader 5.加载冲突 1.概述 概念&#xff1a; 类加载器&#xff08;Class Loader&#xff09;是Java虚拟机&#xff08;JVM&#xff09;的一个重要组件&#xff0c;负责加载Java类到内存中并使其可以被JVM执行。类…