HTML的正确入门姿势——基本结构与基本标签

一、什么是HTML

HTML是超文本标签语言,即网页的源码。而浏览器就是翻译解释HTML源码的工具。

二、HTML文档的结构

HTML文档主要包括三大部分:文档声明部分、<head>头部部分、<body>主体部分。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>我的第一个网页</title>
    </head>
    <body>
    </body>
</html>

<!--
↑文档类型声明:让浏览器按照html5的标准对代码进行解释与执行。
↑文档类型声明必不可少,而且,必须放在文档最上方。
↑如果不写文档类型声明,浏览器会默认按照兼容模式运行,但可能会出现不明bug。
-->

三、HTML的基本标签

1.<head>头部部分

<!--
↑head中主要放关于网页设置的相关语句。
-->


1.1meta标签

<meta charset="utf-8" />

<!--
↑设置网页的字符集编码格式:
GB2312:国标码。简体中文的编码格式。
GBK:扩展的国标码。比国标吗多了更多的编码格式。
utf-8;万国码。可以兼容绝大多数国家的语言。

html4.01之前,声明字符集编码的格式:<meta http-equiv="Content-type" content="text/html; charset=utf-8" />

-->

<meta name="keywords" content="杰瑞教育,html5,Web开发"/>

<!--
设置网页关键字:
name="keywords"表示当前语句用于设置网页关键字
content=""表示网页的关键字内容。多个关键字之间用英文逗号分隔。
-->

<meta name="description" content="这是我在杰瑞开发的第一个网页。我真厉害!!!!!"/>

<!--
设置网页描述:
name="description" 表示当前语句用于设置网页描述
content="" 表示网页的描述内容。
网页的描述,在搜索引擎中搜索网站时,标题下面的一段文字,就是网页的描述内容。
-->


1.2title标签

<title>杰瑞首页</title>

<!--
↓网页的标题,也就是网页选项卡上的文字。
-->


1.3link标签

链接网页与其他文件。

下面举个栗子:链接小图标

<link rel="icon" href="img/icon.PNG"/>

2.<body>主体部分

<!--
body中的内容,会显示在浏览器的展示区域中。
-->


2.1 标签的分类

HTML标签,分为“块级标签”和“行级标签”。

【块级标签和行级标签的区别】

1、块级标签自动换行,前后隔一行;
行级标签不会自动换行,从左往右依次显示
2、块级标签的宽度默认是百分之百,行级标签的宽度由文字内容撑开;
3、块级标签可以设置宽度、高度、边距等属性
行级标签不能设置上述属性

从写法上,HTML标签分为“成对标签”和“自闭合标签(空标签)”
成对标签:成对出现,有开始标签,必须有结束标签,内容包裹在两个标签之间。例如:<h1></h1> <p></p> <title></title>
自闭合标签/空标签:只有一个标签,用/表示标签的自动闭合(/可以省略)。例如<hr /> <link /> <meta />


2.2 常见的块级标签

1、h标签:标题标签,默认加粗,h1最大,h6最小

2、hr标签:水平线标签

3、br标签:换行标签,在代码中敲回车,在网页中并没有作用,必须使用<br>断行。

4、p标签:段落标签,表示网页中的一段文字

5、blockquote标签:引用标签,表示标签中的文字是应用自其他网站的内容。浏览器默认显示效果:整段向后缩进

6、cite:表示引用内容的来源,常写引用的网址URL。

7、pre标签:预格式标签,与p标签不同的是,pre标签会保留代码中的空格和回车,在网页中直接显示。最常的作用,是在网页中显示代码段,保留代码段格式。

8、div分区标签,用于配合css使用。将网页划分为块,可以包裹各种标签。<!DOCTYPE html>

<html>
    <head>
        <meta charset="UTF-8">
        <title>HTML基本标签</title>
    </head>

    <body>
                <h1>我真帅!</h1>
        <h2>我真帅!</h2>
        <h3>我真帅!</h3>
        <h4>我真帅!</h4>
        <h5>我真帅!</h5>
        <h6>我真帅!</h6>

                <hr/>

                <p>这是一个段落。这是一个段落。<br />这是一个段落。这
                    是一个段落。</p>
        <p>这是一个段落。这是一个段落。这是一个段落。这是一个段
                    落。</p>

                <blockquote cite="www.jredu100.com">
                       我是个帅哥 !
                </blockquote>  

                <pre>
            预
            格
            式
            标
            签</pre>

     
<div style="width:100%;height:20px;background-color: red;">
    这是div里面的文字
</div>



2.3 基于布局的块级标签

1、有序列表ol: order list。一个有序列表由多个li组成

<ol>
    <li>第一项</li>
    <li>第二项</li>
    <li>第三项</li>
</ol>

2、无序列表ul: unorder list

<ul>
                <li>第一项</li>
                <li>第二项</li>
                <li>第三项</li>
            </ul>

3、定义列表dl: difine list。

定义列表包含两部分:
<dt></dt>:定义列表的标题,标题顶格显示,一般一个定义列表只有一个标题
<dd></dd>:定义列表的描述项,相对于标题向后缩进显示,一个标题可以有多个描述项。

<dl>
    <dt>定义列表的标题</dt>
    <dd>定义列表的描述项1</dd>
    <dd>定义列表的描述项2</dd>
    <dd>定义列表的描述项3</dd>
</dl>

2.4 了解:组合标签figure

包含两部分:
img 一张图片
figcaption: 图片的标题,在图片正下方显示。

<figure>
    <img src="img/icon.PNG" />
    <figcaption>图片的标题</figcaption>
</figure>

2.5 常用的行级标签

1、span标签:用于包裹行内的文字。常配合css使用修改文字样式。

↓栗子:“帅”字颜色变红,字体变48像素

我真<span style="color: red;font-size: 48px;">帅</span>!!!

2、em/strong/i/b 区别

1、em和i都能倾斜,strong和b都能加粗。但是,em和strong多了一层强调的含义。
(强调的作用,可以让搜索引擎快速的抓取网页的重点部分。可以实现代码的语义化。)
2、em和strong都有强调的作用,但是em是倾斜,strong是加粗,而且strong的强调程度要比em更高。

<em>em标签,倾斜+强调</em>
<strong>strong标签,加粗+强调</strong>
<i>i标签,倾斜</i>
<b>b标签,加粗</b>
<s>删除线</s>
 <u>u标签,下划线</u>

常见引用标签
常见的引用标签有:blockquoye、q、cite
区别:
1、显示效果上:blockquote整段缩进、q加引号、cite倾斜
2、从功能上:blockquote用于引用一整段内容,是块级标签。q引用一句话,是行级标签。cite常用于引用作品名、书画名。

3、img图片标签

①、src属性:表示图片所在的路径。
  [路径的表示方式]
  a网络上的图片地址。不建议使用。 使用http://协议
  b可以使用图片的绝对路径。仅供了解。使用file://协议。严禁使用。因为网页使用http协议,无法打开file://协议的文件
    绝对路径写法:file:///盘符:/文件路径
  c使用相对路径。推荐使用的唯一方式。
    a.图片在当前文件的下一层,“文件夹名/图片名(带后缀)”
    b.图片与当前文件在同一层,直接写“图片名”。
    c.图片在当前文件的上一层,“../图片名”。
    注意:图片必须包含在项目里面,不能退出项目根目录
②、width、height(宽度、高度)属性。
③、title:鼠标指上时显示的文字。
④、alt:图片无法加载时显示的文字,省略alt将默认显示title内容。
⑤、align:图片周围的文字,相对于图片的排列方式:
  top:文字居上
  center:文字居中
  bottom:文字居底

<img src="img/TX.JPG" width="100" height="100" title="鼠标指上时显示的文字" alt="" align="center"/>

4、a标签:超链接

a、href属性:超链接跳转的地址。可以是网页链接,也可以是本地html文件的相对路径。
b、target属性:超链接新页面打开的位置。
  _self在当前页面打开(默认) _blank在新页面打开
c、title属性:鼠标指在超链接上显示的文字。

【功能性超链接】
a、给指定邮箱发送邮件。mailto://协议。写法:mailto://邮箱地址
   eg:<a href="mailto://[email protected]">点击给帅哥发邮件!</a>
b、tencent:与指定QQ聊天。tencent://协议。写法:tencent://message/?uin=QQ号码
  eg:<a href="tencent://message/?uin=983364230">与帅哥聊天</a>
c、锚链接:点击超链接可以跳转到页面的指定位置(锚点)
  ①在页面的指定位置定义一个锚点:<a name="top"></a>
  ②将超链接的href属性,改为“#锚点名称”:<a href="#top">跳转顶部</a>
  ③跳转到其他页面锚点的方式:<a href="其他页面地址.html#锚点名称">跳转到其他页面指定位置</a>

 <a href="#top" target="_blank" title="百度">这是一个超链接</a>

5、字体大一号和小一号,已淘汰。修改字体统一使用css

<small>小一号字体</small>
 <big>大一号字体</big>


【其他行级标签,了解即可】
s标签:带删除线
u标签:带下划线
dfn标签:定义专业术语
abbr标签:专业术语缩写词
code:提示搜索引擎当前为一段计算机代码,但是不会保留代码格式,需要配合pre标签共同使用。pre包含code
var:声明变量
bdo:定义文本显示方向,有一个重要属性:dir, ltr从左往右 rtl从右往左
kbd:表示需要用户输入的文字
sub:下标
sup:上标
time:表示时间

        <u>u标签带下划线</u>
        <span style="text-decoration: underline;">css实现下划线</span>

        <s>s标签带删除线</s>
        <span style="text-decoration: line-through;">css实现删除线</span>

        我们正在学习<dfn>HTML5</dfn>,简称为<abbr>H5</abbr>。

        <pre>
        <code>
jsLoader({
    name : ‘iplookup‘,
    url : ‘http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js‘
});
        </code>
        </pre>

        <var>x</var>+<var>y</var>=1

        <bdo dir="rtl">我真帅</bdo>

        请输入“<kbd>Esc</kbd>”退出系统。

        H<sub>2</sub>O   X<sup>2</sup>

        现在是<time>16:10</time>                


【w3c倡导的web结构】
1、内容与表现分离。html与css分离
2、内容与行为分离。html与javascript分离
3、html代码,必须要实现语义化

【w3c的规范】
1、标签名和属性名必须小写
2、html标签必须关闭
3、属性值必须用引号括起来
4、标签必须正确嵌套
①嵌套的标签,不能发生交叉
②块级标签可以包裹行级,行级标签不能包裹块级;p标签不能包裹p标签等...


2.6 表格

表格table标签
表格中的一行,用tr表示;
一行中的每个单元格,用td表示;
首行的表头中每个单元格用th表示,th默认文字会加粗,居中。

【表格中的各种属性】
1、border:给表格的每个td和整个table加边框。如果border的值>1,则只有最外层边框加粗,td上的边框不变。

2、cellspacing:设置单元格与单元格之间的间距。
  cellspacing="0"可以设置边框之间的间距为0,但是相邻的边框不会合并,而是显示两条线的宽度。
[设置表格边框合并]
可以使用css设置:style="border-collapse: collapse;"
设置边框合并以后,cellspacing属性将会失效。

3、cellpadding:单元格内边距,单元格中文字与边框之间的距离。

4、width/height:表格的宽度 /高度

5、align:设置表格在浏览器中居左、居中、居右

6、Bgcolor:表格背景色
  bordercolor:表格的边框颜色
  background:表格背景图。背景色和背景图同时存在,背景图生效。

【表格的行列属性】
作用于tr或td上的属性

1、width/height:宽度/高度

2、bgcolor:背景色
当表格的属性与行列的属性发生冲突时,优先级采用“近者优先”的原则:table<tr<td

3、align:设置表格中的文字水平对齐方式(right、center、left)
Valign:设置表格中的文字垂直对齐方式(top、center、bottom)

【注意】当表格属性与行列属性相冲突时,以行列属性为准
                         (近者优先!!!)
table中的align控制表格在整个浏览器中的显示位置!
单元格中的align控制其中文字在单元格中的对齐方式!
表格的align属性并不影响单元格内文字的水平对齐方式!
tr的align属性可以控制一行中所有单元格的水平对齐方式!

【表格的跨行与跨列】
1、跨列:colspan="n" 如果某个单元格跨n列,择该单元格右侧n-1个td就不需要了。
2、跨行:rowspan="n" 如果某个单元格跨n行,择该单元格下方n-1个td就不需要了。

代码如下:

    <table border="1"; cellspacing="0"; style="border-collapse: collapse;" cellpadding="10"
            width="500"; height="400"; align="center"; Bbgcolor="yellow"; bordercolor="red";
            background="img/TX.JPG"; >

            <tr bgcolor="red">
                <th width="300"; bgcolor="cyan"; align="right"; valign="top"; rowspan="3">1-1</th>
                <th colspan="3">1-2</th>

            </tr>
            <tr>

                <td>2-2</td>
                <td>2-3</td>
                <td>2-4</td>
            </tr>
            <tr>
                <td>3-2</td>
                <td>3-3</td>
                <td>3-4</td>
            </tr>
        </table>

【表格的结构化】
完整的表格结构,包括
caption:表格的标题,无论caption标签放在表格的第几行,表格标题永远在表格的正上方居中
thead:表格的表头部分。永远在表格最上部
tbody:表格的身体部分。永远在表格的thead之下,tfoot之上
tfoot:表格的尾部。永远在表格的最下部。

表格的直列化:
表格有几列,就可以在表格的最上方写几个<col />标签,每个<col />就对应着第几列,可以对<col />标签修改样式、
添加name等属性,表示这一列的所有td同步修改;
如果,需要对多列修改共同样式,可以使用<colgroup></colgroup>包裹多个<col />

代码如下:

     <table>
            <col style="background-color: red;"/>
            <colgroup style="background-color: blue;"/>
                <col />
                <col />
            <caption>表格的标题</caption>
            <thead>
                <tr>
                    <th>序号</th>
                    <th>姓名</th>
                    <th>性别</th>
                </tr>
            </thead>

            <tbody>
                <tr>
                    <td>1</td>
                    <td>张三</td>
                    <td>男</td>
                </tr>
                <tr>
                    <td>2</td>
                    <td>李四</td>
                    <td>女</td>
                </tr>
                <tr>
                    <td>3</td>
                    <td>王二</td>
                    <td>不明</td>
                </tr>
            </tbody>

            <tfoot>
                <tr>
                    <td>合计</td>
                    <td></td>
                    <td>3</td>
                </tr>
            </tfoot>
        </table>

2.7 表单

【form表单】
1、form表单有两个重要的属性
  action:表示将表单提交给哪个服务器地址。
  method:表单提交数据的方式,可选值有get、post两种。

[get和post的区别]
  ①get使用url传递数据,所有内容在地址栏可见,不安全。
      post的数据无法在地址栏看到,较安全。
  ②get传递的数据量有限,而且只能传递纯文字内容;
           post可以传递大量数据,并且可以传递图片、视频等文件。
  ③get的传输速度要比post快。

[get传递数据的URL格式]
http://原来的地址.html?name1=value1&name2=value2
比如:http://127.0.0.1:8020/0595.html?username=123
所以,input使用时,name属性必不可少,缺少name,将导致该输入框的数据不向后台传递。

2、input的常用属性:
  ①type:表示当前输入框是何种类型的输入框;
  ②name:给输入框起别名。向后台传递时,使用name=value的形式传递。

  ③value:当前input的默认值;
  ④placeholder:输入框的提示内容,当输入框有value时提示内容消失。

  ⑤hidden:隐藏当前输入框。可以写为hidden="hidden",也可以省略属性值,只写<input type="text" hidden>
    隐藏的输入框依然可以向后台传递数据
  ⑥disabled:禁用当前输入框。可以显示,不能使用。
    被禁用的输入框内容,将不能向后台传递数据。
  ⑦ checked="checked" 设置单选/多选按钮,默认选中。
3、input的type类型:
  ①text:普通的文本框;
  ②password:密码框输入的内容,显示为小黑点。
  ③radio:单选按钮,单选按钮的value不能省略,这个value需要传到后台;
    单选按钮,凭借name是否相同,区分按钮是否为同一组。同一组按钮只能选中一个,name必须相同。
    checked="checked" 设置单选按钮,默认被选中。
  ④checkbox:多选按钮,其他与单选按钮相同。
  ⑤file:文件上传框。
    accept属性可以限制只能上传何种类型的文件。"*"表示可以接受所有文件,"image/*"表示只能接受图片。
    multiple="multiple" 设置可以上传多个文件。
  ⑥submit:表单提交按钮
  ⑦reset:表单重置按钮,点击将表单恢复为初始状态。
  ⑧image:图形提交按钮,src属性导入图片,与submit都具有提交表单的作用。
  ⑨button:显示为按钮形状,但是没有任何作用。
  ⑩hidden:隐藏的输入框,与 普通输入框+hidden="hidden" 的作用相同。
4、select 下拉选择区块
  ①select里面的每一项,用<option></option>标签表示;
  ②name属性,需要写到select标签上;
  ③option标签如果有value属性,择向后台传递的将是value属性的值,
    如果没有value属性,则传递的是<option></option>标签之间的文字。
  ④option添加属性中,selected="selected"设置选中默认项
  ⑤select添加属性multiple="multiple",设置当前下拉控件可以多选。
  ⑥option添加属性title,表示鼠标指上后的文字。
  ⑦select可以使用<optgroup></optgroup>标签对选项进行分组,用label属性显示分组名

              <select name="city">
                            <optgroup label="沿海">
                                <option value="123">青岛</option>
                                <option selected="selected">烟台</option>
                            </optgroup>
                            <optgroup label="内地">
                                <option title="济南">济南</option>
                                <option>淄博</option>
                            </optgroup>
                        </select>

5、textarea 文本域
  ①文本域大小控制:
    可以用文本域属性cols="20"(宽度多少字符) rows="20"(高度等于多少行)
    可以使用css样式style="width: 200px; height: 300px;"
  ②设置文本域大小不能拖动 style="resize:none;"
  ③设置文本域为只读模式,不能修改
    <textarea readnoly="readonly"></textarea>
  ④文字超出区域处理:
    使用style="overflow: xx"样式,可以设置文字超出区域的显示的方式:
    >>>overflow:hidden; 超出区域的文字隐藏不显示;
    >>>overflow: scroll:无论文字多少,都会显示水平垂直滚动条;
    >>>overflow: auto:自动,默认效果。文字多显示滚动条,文字少不显示滚动条
    >>>可以使用overflow-x和overflow-y单独修改两个方向的滚动条。
    overflow-x: scroll;overflow-y: hidden;

form表单 代码如下:

    <form action="" method="get" id="form1">
            <table>
                <tr>
                    <td>用户名</td>
                    <td>
                        <input type="text" name="username"  value="sdg"
                             disabled/>
                        <input type="text" name="username"  value="sdg"
                             hidden="hidden"/>

                    </td>
                </tr>
                <tr>
                    <td>密码</td>
                    <td>
                        <input type="password" name="password" value="" placeholder="请输入密码"/>
                    </td>
                </tr>
                <tr>
                    <td>性别</td>
                    <td>
                        <input type="radio" name="sex" value="男" />男
                        <input type="radio" name="sex" value="女" />女
                        <input type="radio" name="sex" value="不明" checked="checked" />不明
                    </td>
                </tr>
                <tr>
                    <td>兴趣</td>
                    <td>
                        <input type="checkbox" name="hobby" value="吃" />吃
                        <input type="checkbox" name="hobby" value="喝" />喝
                        <input type="checkbox" name="hobby" value="玩" />玩
                        <input type="checkbox" name="hobby" value="乐" />乐
                    </td>
                </tr>
                <tr>
                    <td>身份证</td>
                    <td>
                        <input type="file" name="card" accept="image/*" multiple="multiple"/>
                    </td>
                </tr>
                <tr>
                    <td>城市</td>
                    <td>
                        <select name="city">
                            <optgroup label="沿海">
                                <option value="123">青岛</option>
                                <option selected="selected">烟台</option>
                            </optgroup>
                            <optgroup label="内地">
                                <option title="济南">济南</option>
                                <option>淄博</option>
                            </optgroup>
                        </select>
                    </td>
                </tr>
                <tr>
                    <td>阅读服务协议:</td>
                </tr>
                <tr>
                    <td colspan="2">
                        <textarea style="width: 300px; height: 200px; resize: none; overflow: scroll;"
                            readonly="readonly">这是一份你必须同意的协议</textarea>
                    </td>
                </tr>
                <tr>
                    <td>
                        <input type="submit" value="注册"/>
                    </td>
                    <td>
                        <input type="reset"  name="重置"/>
                    </td>
                </tr>
                <tr>
                    <td>
                        <input type="image" src="img/icon.PNG"/>
                    </td>
                    <td>
                        <input type="button"  value="一个并没有什么卵用的按钮"/>

                    </td>
                </tr>
            </table>
        </form>

【html5智能表单】
1、H5给我们提供了将form外的input与表单关联的方式。只需要给form表单起一个id,
  然后给表单外面的input添加form属性,指向这个id,就可以实现表单与input的绑定
  <form id="ff"></form>
  <input form="ff"/>
2\H5给我们新增了许多input的新的type类型
  range color date email url等
3、H5新增的input属性:
  ①form属性:关联指定表单的id
  ②placeholder:输入框的提示内容
  ③required="required" 表示必填
  ④autofocus: 指定输入框自动获得焦点
  ⑤autocomplete:可以设置是否开启自动提示完成功能,默认 为开启状态,
  设置为off表示关闭,设置为on表示打开
  可以为form标签设置autocomplete,控制表单所有输入框的自动提示功能。

时间: 2024-10-12 18:51:17

HTML的正确入门姿势——基本结构与基本标签的相关文章

机器人程序设计——之如何正确入门ROS | 硬创公开课(附视频/PPT)【转】

转自:http://blog.exbot.net/archives/2966 导语:本期公开课面向想入手ROS却又不知从何下手的小伙伴,为大家梳理好学习思路. ROS和Android一样是开源的,功能上也是相差无几,它可以提供硬件抽象,底层设备控制,常用功能实现,进程间消息以及数据包管理.其独特之处在于,能够支持多种语言,如C++.Python.Octave和LISP,甚至支持多种语言混合使用,这可以简化开发者的工作.因为它是基于Linux的系统,其可靠性也会更高,体积可以做到更小,适合嵌入式设

Node.js入门:包结构

JavaScript缺少包结构.CommonJS致力于改变这种现状,于是定义了包的结构规范(http://wiki.commonjs.org/wiki/Packages/1.0 ).而NPM的出现则是为了在CommonJS规范的基础上,实现解决包的安装卸载,依赖管理,版本管理等问题.require的查找机制明了之后,我们来看一下包的细节. 一个符合CommonJS规范的包应该是如下这种结构: 一个package.json文件应该存在于包顶级目录下 二进制文件应该包含在bin目录下. JavaSc

二分查值,正确的姿势

04:网线主管 总时间限制:  1000ms 内存限制:  65536kB 描述 仙境的居民们决定举办一场程序设计区域赛.裁判委员会完全由自愿组成,他们承诺要组织一次史上最公正的比赛.他们决定将选手的电脑用星形拓扑结构连接在一起,即将它们全部连到一个单一的中心服务器.为了组织这个完全公正的比赛,裁判委员会主席提出要将所有选手的电脑等距离地围绕在服务器周围放置. 为购买网线,裁判委员会联系了当地的一个网络解决方案提供商,要求能够提供一定数量的等长网线.裁判委员会希望网线越长越好,这样选手们之间的距

高版本jquery尤其是1.10.2的版本设置input radio设置值的最正确的姿势。

$("input:radio[name="analyshowtype"]").attr("checked",false); $("input[name=jizai]:eq(0)").attr("checked",'checked'); $("input[@type=radio][name=sex][@value=1]").attr("checked",true); 以

【Android快速入门】目录结构及adb命令【附Android拨号器的实现,自作】

目录结构 src: 存放java代码 gen: 存放自动生成文件的. R.java 存放res文件夹下对应资源的id project.properties: 指定当前工程采用的开发工具包的版本 libs: 当前工程所依赖的jar包. assets: 放置一些程序所需要的媒体文件. bin: 工程的编译目录. 存放一些编译时产生的临时文件和当前工程的.apk文件. res(resources): 资源文件. drawable: 存放程序所用的图片. layout: 存放android的布局文件.

NSnotificationCenter 正确使用姿势, removeObject 探索

最近在做平板的过程中,发现了一些很不规范的代码.偶然修复支付bug的时候,看到其他项目代码,使用通知的地方没有移除,我以为我这个模块的支付闪退是因为他通知没有移除的缘故.而在debug和看了具体的代码的时候才发现和这里没有关系.在我印象中,曾经因为没有移除通知而遇到闪退的问题.所以让我很意外,于是写了个demo研究了下,同时来讲下NSNotificationCenter使用的正确姿势. NSNotificationCenter 对于这个没必要多说,就是一个消息通知机制,类似广播.观察者只需要向消

Gradle的依赖方式&mdash;&mdash;Lombok在Gradle中的正确配置姿势

写过java的都知道,lombok几乎在项目中处于不可或缺的一部分,但是lombok在Gradle的项目中配置并非人人都知道. 很多人在项目依赖中直接这样写 1 compile "org.projectlombok:lombok:1.18.4" 但这样的处理在Gradle 5.0以上被命令禁止了,在4.x的高级版本中编译时也会有对应的告警 12345 The following annotation processors were detected on the compile cla

WCF入门教程(三)属性标签

属性标签,成为定义协议的主要方式.先将最简单的标签进行简单介绍,以了解他们的功能以及使用规则. 服务协定标识,标识哪些接口是服务协定,哪些操作时服务协定的一部分,以及传输对象的定义.如果已经有所了解,请直接PASS. 1.ServiceContract(服务协定) 全名:System.ServiceModel.ServiceContractAttribute 功能:指示接口或类在应用程序中定义服务协定. 简单一句话:标识此接口是否是服务协定,是否需要公开为服务. 详细:使用接口(或类)上的 Se

正确的姿势很重要:该如何执笔

快速入门: 蔡新老师教书法-正确握笔姿势—专辑:<蔡新老师教书法>—在线播放—优酷网,视频高清在线观看 (蔡新老师应该是学的布衣老师的执笔方法:布衣老师的执笔方法_伏羲教育林美娟_新浪博客 ) 理论详解: 布衣的博客(需番羽墙):正确握笔姿势,矫正握姿,写字讨论的部落格 :: 随意窝 Xuite日志 目录如下,包括握笔姿势矫正,写字漂亮技巧等... 出了书<写字基本功>,教学视频,还有其他一些东西,官方网站(需番羽墙): 筆博士實業-最好寫的U-Pen矯姿筆.握筆器:專業正確握筆姿