使用自闭合标签的写法 小写加下划线
<template>
<my-owner-components />
</template>
为提高可读性 组件应用时换行 按照 ref、class、传入、传出 顺序书写
<template>
<my-components
ref="myComponents"
class="home-my-components"
:data="data"
@changeHandle="changeHandle"
/>
</template>
在模版中 简单情况使用表达式 复杂情况使用计算属性或函数
<template>
<!-- 简单情况 -->
<div v-show="data.type === 1">
...
</div>
<!-- 复杂情况 -->
<div v-show="getTypeShow(data)">
...
</div>
</template>
<script>
export default {
methods: {
/**
* ***显示判断
* @param data **
*/
getTypeShow(data) {
return data.type === 1 && ...
}
}
}
</script>
避免过多重复代码 果超过三行类似的代码 配置数据再循环遍历
根据元素嵌套规范 每个块状元素独立一行 内联元素可选
<template>
<!-- 情况1 -->
<div>
<h1></h1>
<p></p>
<p><span></span><span></span></p>
</div>
<!-- 情况2 -->
<div>
<h1></h1>
<p></p>
<p>
<span></span>
<span></span>
</p>
</div>
</template>
v-show 不会改变dom树 不会导致重新渲染 用于频繁的切换显示隐藏
v-if 会改变dom树 会导致重新渲染 用于只控制一次显示隐藏
<template>
<!-- 标签注释 -->
<div>
...
</div>
<!-- 组件注释 -->
<my-owner-components />
</template>
CSS 属性书写顺序 先决定定位宽高显示大小 再做局部细节修饰
定位属性(或显示属性 display) => 宽高属性 => 边距属性(margin padding) => 背景 颜色 字体等修饰属性的定义 这样定义为了更好的可读性 让别人只要看一眼就能在脑海中浮现最终显示的效果
.class-name {
position: fixed;
top: 100px;
left: 0;
right: 0;
bottom: 0;
display: block;
width: 100%;
height: 100%;
margin: 10px;
padding: 10px;
background-color: red;
border-radius: 2px;
font-size: 14px;
color: #000;
line-height: 1.42;
}
组件内部需要覆盖UI框架样式 必须在最外层组件加类名
<template>
<div class="input-container">
<el-input class="name-input"></el-input>
</div>
</template>
<style lang="scss">
.input-container {
.name-input {
.el-input__inner {
font-size: 16px;
}
}
}
</style>
以 / 注释内容 / 格式注释 前后空格 嵌套子类需要一个回车分割开
/* 注释内容 */
.class-name {
width: 20px;
/* 这里需要换行 */
.class-name-l {
color: blue
}
}
<script>
export default {
name: 'ExampleName', // 这个名字推荐:大写字母开头驼峰法命名
props: {}, // Props 定义
components: {}, // 组件定义
directives: {}, // 指令定义
mixins: [], // 混入 Mixin 定义。
data () { // Data 定义。
return {
dataProps: '' // Data 属性的每一个变量都需要在后面写注释说明用途,就像这样
}
},
computed: {}, // 计算属性定义。
watch: {}, // 属性变化监听器。
created () {}, // 生命钩子函数,按照他们调用的顺序。
mounted () {}, // 挂载到元素。
activated () {}, // 使用 keep-alive 包裹的组件激活触发的钩子函数。
deactivated () {}, // 使用 keep-alive 包裹的组件离开时触发的钩子函数
methods: { // 组件方法定义。
publicbFunction () {} // 公共方法的定义,可以提供外面使用
_privateFunction () {} // 私有方法,下划线定义,仅供组件内使用。多单词,注意与系统名字冲突!
}
}
</script>
函数/方法注释必须包含函数说明,有参数和返回值时必须使用注释标识,它的作者, 依赖关系和兼容性信息。
// 注释
const userID = 24
const userID = 12 // 注释
/*
* 针对下方代码的说明
* 第一行太长写第二行
*/
const aa = 1
/**
* @Description 加入购物车
* @Author luochen_ya
* @Date 2024-03-13
* @param {Number} goodId 商品id
* @param {Array<Number>} specs sku规格
* @param {Number} amount 数量
* @param {String} remarks 备注
* @returns <Promise> 购物车信息
*/
apiProductAddCard = (goodId, specs, amount, remarks) => {
return axios.post('***', { goodId, specs, amount, remarks })
}
/**
* @Description: 文件描述
* @Author: luochen_ya
* @Date: 2024-03-13
*/
按照小驼峰命名 首字母小写
图片就是img开头 图标就是icon开头
method 方法命名不同于文件命名,尽量完整英文命名,语义表达需完整清楚
<script>
export default {
methods: { // 组件方法定义
publicbFunction () {} // 公共方法的定义 可以提供外面使用
_privateFunction () {} // 私有方法 下划线定义 仅供组件内使用
}
}
</script>
import MyOwnerComponents from '@/components/MyOwnerComponents'
let userName = 'luochen_ya'
const userInfo = {
name: 'luochen_ya',
age: 24
}
const Constant = {
// 公用状态
COMMON_STATUS_ENABLE = 1, // 启用
COMMON_STATUS_DISABLE = 2, // 停用
}
class命名以小写字母开头 小写字母、中划线和数字组成 以下是一些常用到的 class的名字
├── api 所有api接口
├── assets 靜態資源
│ ├── fonts 全局公用字体
│ ├── icons 全局公用图标
│ ├── images 全局公用图片
│ └── styles 全局公用样式
├── components 公用組件
│ ├── base 基础组件
│ └── business 业务组件
├── constants 常量 统一管理
├── locales 多语言管理
├── plugins 插件 统一管理
├── router 路由 统一管理
│ └── index.js
├── store vuex 统一管理
│ ├── modules
│ ├── getters.js
│ └── index.js
├── utils 工具函数 统一管理
├── views 视图目录(所有业务逻辑的页面)
可以直接使用eslint 强制统一代码规范 还能规避一些语法错误 或者按照以下自己定义的去配置eslint来使用
以下是个人习惯 仅供参考
先,我们来理解一下一个网页的基本组成
代码如下
一个网页是有许许多多的标签对组成的,即开始标签-结束标签,都是成对出现(当然我们后面会说的还存在单标签,表示自闭合标签,例如:<br />)
对上述的标签先来解释一下
html------------超文本标记语言,浏览器识别的语言,主要负责页面的内容和结构
head------------标签用于定义文档的头部,它是所有头部元素的容器。<head> 中的元素可以引用脚本、指示浏览器在哪里找到样式表、提供元信息等等。
body------------元素定义文档的主体。body 元素包含文档的所有内容(比如文本、超链接、图像、表格和列表等等。)
HTML常用基础标签用法及实例
1. <!--注释-->
2. <!--DOCTYPE 声明文档类型-->
3. <!--a--><a href="http://www.baidu.com/">百度一下</a></br><!--超链接标签-->
4. <!--address--><address> 标签定义文档或文章的作者/拥有者的联系信息。
如果 <address> 元素位于 <body> 元素内,则它表示文档联系信息。
如果 <address> 元素位于 <article> 元素内,则它表示文章的联系信息.-->
</address>
5. <!--5.article <article> 标签规定独立的自包含内容。-->
<article>
<h1>百度</h1>
<p>全球最大的中文搜索引擎、致力于让网民更便捷地获取信息,找到所求。</p>
</article>
6. <!--6.aside <aside> 标签定义其所处内容之外的内容。-->
<p>123123</p>
<aside>
<h1>文本之外的内容</h1>
<p>我也是文本之外的内容</p>
</aside>
7.<!-- audio video-- <audio> 标签定义声音,比如音乐或其他音频流。
<audio src="/i/horse.ogg" controls="controls>
</audio>
8.<!--b 文本加粗-->
<p>普通文本--<b>粗体文本</b></p>
9.<!--big -->
<big>大号字体</big><br>
10.<!-- body body 主体内容-->
11.<!-- br 给文本换行-->
12.<!--button <bubtton> 标签定义一个按钮。-->
<button type="button">点击领取</button>
13.<!--center 对其所包括的文本进行水平居中。-->
14.<!--dl dd dt <dd> 在定义列表中定义条目的定义部分。-->
<dl>
<dt>计算机</dt>
<dd>用来计算的仪器 ... ...</dd>
<dt>显示器</dt>
<dd>以视觉方式显示信息的装置 ... ...</dd>
</dl>
15.<!--del ins <del>定义文档中已被删除的文本。 <ins> 标签定义已经被插入文档中的文本。-->
<p>你叫<del>张3</del><ins>文字</ins>吗?</p>
16.<!--div p h1-h6 div是块标签 p是段落标签 h1-h6是标题标签根据h后面数值调整大小-->
17.<!--em span i strong <em>把文本定义为强调的内容。<span> 标签被用来组合文档中的行内元素。
<i> 标签显示斜体文本效果。<strong>把文本定义为语气更强的强调的内容。
-->
<em>强调文本内容</em>
<p><span>组合文档中的行内元素</span>你好啊</p>
<i>斜体文本</i><br>
<stong>内容重要</strong>
18.<!--footer nav <footer> 标签定义文档或节的页脚。<nav> 标签定义导航链接的部分.-->
<footer>
<p>联系邮箱:<a >href="1758539486@qq.com">1758539486@qq.com</a></p>
</footer>
<nav>
<a href="http://www.baidu.com">百度</a>|
<a href="http://www.douyu.com">斗鱼</a>
</nav>
19.<!-iframe iframe 元素会创建包含另外一个文档的内联框架(即行内框架)-->
20.<!--hr html-- <hr>文本分割线 <html>根文件-->
21.<!--img input label-- img 元素向网页中嵌入一幅图像。
<input>--表单标签(一共八种类型) 如下所示:
<input type="radio" name=""value="单选"/>
<input type="checkbox" name=""value="选择"/>
<input type="submit" name=""value="提交"/>
<input type="button" name=""value="按钮"/>
<input type="password" name=""value="密码"/>
<input type="text" name=""value="文本"/>
<input type="reset" name=""value="清空"/>
<input type="hidden" name=""value="隐藏"/>
<label> 标签为 input 元素定义标注(标记)。
-->
<img src="img/Advertisement_03-3.jpg" alt="" /><br>
<label for="男">男</label>
<input type="radio" name="sex" id="男">
<input type="submit" name="提交" >
22.<!--ol ul li <ol>有序列表 <ul>无序列表 <li>列表项目-->
23.<!--link script <link>标签最常见的用途是链接样式表。<script> 标签用于定义客户端脚本,比如 JavaScript。-->
24.<!--select option <select> 元素可创建单选或多选菜单。<select> 元素中的 <option> 标签用于定义列表中的可用选项。-->
<select name="">
<option value="">请选择</option>
<option value="">选项一</option>
<option value="">选项二</option>
<option value="">选项三</option>
<option value="">选项四</option>
</select>
25.<!--textarea <textarea> 标签定义多行的文本输入控件。-->
<textarea></textarea>
resize禁止拉伸文本框
outline取消文本框选中的颜色
Text-indent:2em首行缩进两个字符
希望阅读本篇文章以后大家有所收获,帮助大家HTML5+CSS3从入门到精通 。
、Html的基本结构:
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8">
<title></title>
</head>
<body>
网页的文本、图片等信息;
</body>
</html>
二、Head部分:用于表示网页的元数据即描述网页的基本信息
其常用标签及属性有:
1、title标签:浏览器标签页显示的标题
2、meta标签:其常用属性
①charset:设置文档的字符集编码格式。HTML5中设置字符集编码:<meta charset="UTF-8">
常见的字符集编码格式:
a.GB-2312:国标码,简体中文
b.GBK:扩展的国标码
c.UTF-8:万国码 Unicode 常用
②http-equiv属性:将我们的信息写给浏览器看,让浏览器按照这里面的要求执行,可选属性值:Content-Type(文档类型) refresh(网页定时刷新) set-cookie(设置浏览器cookie缓存) 需要配合content属性使用。(http-equiv属性只是表明需要设置哪一部分,具体的设置内容,放到content属性中)
③name属性:使用方法同“http-equiv”。将我们的信息写给搜索引擎看
常用且需要掌握的属性值:author(作者) keywords(网页关键字) description(网页描述) 这两个属性设置,网页必不可少。
3、link标签:链接网页图标(title前的小logo),其常用属性有:
①rel属性:声明链接文件的类型,此处选icon
②type属性:可以省略
③href属性:表示图片的路径地址
三、body部分:网页的文本、图片等信息
标签的分类:
块级标签:显示为块,前后隔一行(自动换行)
行级标签:按行从左往右逐一显示。
1、 常见的块级标签:
①<h1></h1>......<h6><h6>:标题标签,自动加粗,h1最大,h6最小。
②<hr/>:水平线标签,添加一条水平线。
③<p></p>:段落标签,
④<br/>:换行标签,
⑤<blockquote/></blockquote>:引用标签,cite属性,表明引用的来源,一般引用网址
浏览器默认首行缩进。
⑥<pre></pre>:预格式标签,用于重载代码。浏览器默认显示样式:1、显示为等宽字体。 2、代码中的换行、
空格等元素能在浏览器中显示。
【补充】html 文件中空格的表示:
2、 基于布局的块级标签
列表:无序列表、有序列表、定义列表
①有序列表:<ol></ol> 列表项:<li></li>
②无序列表:<ul></ul> 列表项:<li></li>
③定义列表(实现图文混排):<dl></dl>
列表标题:<dt>一般只有一项</dt>
列表描述项:<dd>可以有很多项</dd>
3、组合标签:<figure></figure>用于显示图片及图片标题
他有两个子标签:<img />图片
<figcaption></figcaption>图片的标题
例如:<figure>
<img src="img/EZ.jpg" height="20%" width="20%" alt="探险家"/>
<figcaption>探险家 伊泽瑞尔</figcaption>
</figure>
4、分区标签:<div></div>
5、常见的行级标签
<1>span(文本):无实际意义,用于包裹某部分文字,修改特定样式,例如:
这是<span style="color: red;font-size: 36px;">span</span>中的文字
img(图片):其常用属性:①src:表示引用图片的地址。
路径地址的写法:相对路径:以当前文件为最准,去寻找图片地址
a、与文件处于同一层的图片,直接写图片名
b、图片在当前文件下一层:文件名/图片名
c、图片在当前文件上一层:../图片名
绝对路径:file:///盘符:/文件夹/图片名,但 是严禁使用
图片网址:网络上的图片链接,但是一般不用
②height和width:图片的高度和宽度。可以用CSS样式代替
③title:图片标。当鼠标指上之后显示的文字
④alt:当图片无法显示的时候,显示的文字
<2>em(倾斜强调)
<3>strong(加粗强调)
<4>b(加粗)
<5>i(倾斜)
Strong、em、b、i的区别
1、Strong、em都表示强调,Strong为粗体,em为斜体,而Strong的强调 程度逗比em高
2、Strong和b都能加粗,em和i都能倾斜,,但是Strong和em多了一层强调的语义 。H5要求标签尽可能实现语义化。
<6>q(短引用)
<7>small/big(缩小/放大字体):small和big分别是缩小和扩大字体,都可以多层嵌套直至上限或下限
<8>a(超链接)
1、href:超链接的路径,可以是网络链接,也可以是本地文件。
2、target:跳转页面打开的位置。_self自身页面,_blank新页面。
3、title:鼠标指在超链接上显示的名称。
4、Rel(被链接是当前的前/后一篇):指定被链接文档与当前文档的关系,搜索引擎 会利用该属性 获取更多的有关链接的信息:
rel="prev"被链接文档是当前文档的前一篇文 档,
rel="next"被链接文档是当前文档的后一篇文档,
rel="icon"被链接文档是当前文档的图标
rel="stylesheet"被链接文档是当前文档的样式表
5、Rev(当前是被链接的前/后一篇)
锚链接:
①本页面锚链接:a、设置锚点:<a name="top"></a>
b、跳转锚点:#name名
①页面间锚链接:a、在即将跳转页面的指定位置设置锚点
b、跳转锚点:页面地址.html#name名
<a href="02_常见的块级标签.html#Hbuilder">页面间锚链接</a><br/>
功能性链接: mailto用于给指定邮箱发送邮件
file:///e:/aaa.png打开本地文件
tencent://message/?uin=1315618220 给指定QQ发送息
<9>s标签,有误文本:删除线
<s>这是S标签中的文字</s><br />
<10>cite标签:浏览器显示为倾斜,常用于书、画作、作品的引用
<cite>这是cite中的文本</cite><br />
<11>code:计算机代码,不保留代码格式
<pre>
<code></code>
</pre>
<12>bdo:表示文本方向,属性:dir="ltr"表示从左往右,dir="rtl"表示从右往左
<bdo dir="rtl">1234567</bdo><br />
kbd:表示需要用户用键盘输入的内容,浏览器显示为等宽字体
请输入“<kbd>Esc</kbd>”推迟系统<br />
<13>sup:上标文本,sub:下标文本
x<sub>6</sub><br />
© © 空格
© © 空格 <br />
<14>u:下划线
<u>这是下划线</u><br />
mark:高亮或标记文本,浏览器显示为黄色背景
<mark>mark</mark><br />
6、表格:表格的行:tr,每行中的列:td,表格的表头:th
表格的常用属性:
表格行列属性:[tr和td的属性]:
1、width/heigh:单元格的宽高
2、bgcolor:单元格的背景颜色
3、align:left center right 单元格中的文字水平对齐方式
4、valign:top center bottom 单元格中的文字垂直对其方式
5、nowrap:单元格中文字不换行
【注意】当表格属性与行列属性冲突时,行列属性优先级高
7、表单(form)
【两个重要属性】:action-表单提交的服务器地址 method-表单提交数据的方法(get/post)
get/post区别:
1>get使用URL传参:http://服务器地址?name1=value1&name2=value2
(?表示传递参数,?后面采用name=value的形式传递,多个参数之间用&连接) ① URL传参不安全,所有信息可在地址栏看到,并且别人可以很容易url注入,来 攻击自己的数据库。
② URL传参数据量有限,只能传递少量数据。
2>post:使用http请求传递数据。URL地址看不到数据信息,安全且传递信息量没有限制
综上所述:大部分使用post传参,但是get传参比Post快
【input标签及属性】
①type:input输入框的类型,可选值有:
②name:input输入框的别名,必填,因为传参的时候采用name=value的形式传递。
③value:input输入框的默认值
④placeholder:提示内容,当输入框有value时,提示内容消失。
【input特殊属性值】
① checked="checked"默认选中
② disabled="disabled"设置控制不能使用,按钮上不能点击,输入框上不能修改,而且如果
输入框时disabled,则输入框信息不传递到后台
③hidden=“hidden”隐藏。等同于<input type="hidden" name="username"value="1234" />
等同于配合disabled或根据其他需要,使用隐藏域传递信息.
【input-type属性详解】
①text:文本输入框
②password:密码输入框,内容不对外显示
③radio:单选按钮
checkbox:复选按钮
a、单选按钮,name和value属性需同时存在,提交时,提交的是value中的属性值
例如:<input type="radio" name="sex" value="男"/>提交显示为"sex=男"
b、radio凭借name属性区分是否为同一组,name相同为同组,且只能选择一个
c、checked="checked"默认选中,(radio只可以选一个,checkbox可以选多个)
④submit:提交按钮,提交表单数据
⑤reset:重置按钮,重置为默认状态
⑥file:文件上传按钮
⑦image:图片提交按钮,功能同submit,可以提交数据
⑧button:普通按钮,没什么软用
⑨其他常用属性值:见下图
【select标签】下拉选择标签
写法:
<select name="=city">
<option>青岛</option>
<option>烟台</option>
<option>北京</option>
<option>纽约</option>
<option>罗马</option>
</select>
常用属性
①name属性:写在select里,所有选项只有一个name
②multiple属性:multiple="multiple"设置select为多选,一般不用
③option常用属性:value=""属性,当option没有value属性时,往后台传递的是<option></option>中间的文字,
当有value属性时,传递的是value的属性值。
title=""属性,鼠标之上后现实的文字
select="select"默认属性值
④optgroup属性: 用于option属性分组,用lable属性表示分组名。
<optgroup label="中国">
<option>青岛</option>
<option>烟台</option>
<option>北京</option>
</optgroup>
【textarea】:文本域,其常用属性 :
①设置宽度高度 style="width: 150px;height: 200px;
②readonly="readonly":只读模式,不允许修改编辑
③style="resize: none;"设置为宽度高度不允许修改
④style="overflow:;"设置文字超出区域时,如何处置,常用属性值有:
hidden 超出区域的文字,隐藏无法显示
scroll 无论文字多少,均显示滚动
auto 自动,根据文字多少自动决定是否会显示为滚动条
【fieldset 、legend】表单的边框与标题
<fieldset> //边框
<legend> //标题
</legend>
</fieldset>
如果想让标题嵌入到边框中,需将标题标签写到边框标签里面
一个表单可以有多组标题加边框组合
【h5智能表单】
1、H5新增input的form属性,用于指定特form表单的id,实现input无需放在form标签之中,即可通过表单进行提交
<form id=foo>
……
</form>
<input type="text" name="" form="foo">
2、 input元素的新增属性:
Autocomplete:自动完成功能,记录用户之前输入的内容,并在用户下次输入时提示用户输入
》》》属性值:on/off
》》》可以再form表单使用,对整个表单的所有控件进行自动完成的开关也可以在input上使用,
对特定输入框进行修改
》》》绝大部分浏览器默认开启
Autofocus:自动获得焦点,autofocus="autofocus"只能获得一个焦点
Form:所属表单,通过id确认属于哪个表单
Required:必填,required="required",设置必填,否则停止提交
Pattern:使用正则表达式验证input的模式
Placeholder:提示,当有value时取消提示。
*请认真填写需求信息,我们会在24小时内与您取得联系。