zoukankan      html  css  js  c++  java
  • html css 笔记

    html概述和基本结构

    相关概述

    web 万维网
    web前端的构成:结构(html实现),样式(css),行为(js)
    html 超文本标记语言,超文本指的是超链接,标记指的是标签,是一种用来制作网页的语言,这种语言由一个个的标签组成,用这种语言制作的文件保存的是一个文本文件,文件的扩展名为html或者htm,一个html文件就是一个网页,html文件用编辑器打开显示的是文本,可以用文本的方式编辑它,如果用浏览器打开,浏览器会按照标签描述内容将文件渲染成网页,显示的网页可以从一个网页链接跳转到另外一个网页。

    html基本结构

    <!DOCTYPE html>
    <html lang="en">
        <head>            
            <meta charset="UTF-8">
            <title>网页标题</title>
        </head>
        <body>
              网页显示内容
        </body>
    </html>
    

    html标题标签

    通过h1 h2 h3 h3 h4 h5 h6 ,标签可以在网页上定义6种级别的标题,h1定义最大的标题,h6定义最小的标题。

    <h1>这是一级标题</h1>
    <h2>这是二级标题</h2>
    <h3>这是三级标题</h3>

    p标签

    标签定义一个文本段落,一个段落含有默认的上下间距,段落之间会用这种默认间距隔开。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>段落</title>
    </head>
    <body>
        <p>HTML是 HyperText Mark-up Language 的首字母简写,意思是超文本标记语言,超
        文本指的是超链接,标记指的是标签,是一种用来制作网页的语言,这种语言由一个个的
        标签组成,用这种语言制作的文件保存的是一个文本文件,文件的扩展名为html或者htm</p>
    
        <p>一个html文件就是一个网页,html文件用编辑器打开显示的是文本,可以用文本的方
        式编辑它,如果用浏览器打开,浏览器会按照标签描述内容将文件渲染成网页,显示的网
        页可以从一个网页链接跳转到另外一个网页。</p>
    </body>
    </html>

    斜体标签和粗体标签

    em和i标签为斜体,em有语义。 strong和b标签为粗体,strong有语意。strong可以从字面理解知道它是强调的意思,strong是逻辑标签,强调文档逻辑。对于搜索引擎(SEO)来说,strong比b重要的多。

    span标签

    span 标签 行内元素,表示一行中的一小段内容,没有具体的语义。

    换行标签和分隔线标签

    <br>用来换行,<hr>水平线

    <p>
    一个html文件就是一个网页,html文件用编辑器打开显示的是文本,可以用<br />
    文本的方式编辑它,如果用浏览器打开,浏览器会按照标签描述内容将文件<br />
    渲染成网页,显示的网页可以从一个网页链接跳转到另外一个网页。
    <hr />
    </p>
    

    列表

    1.有序列表 在网页上定义一个有编号的内容列表可以用<ol>、<li>配合使用来实现,代码如下:

    <ol>
        <li>列表文字一</li>
        <li>列表文字二</li>
        <li>列表文字三</li>
    </ol>
    1. 无序列表 在网页上定义一个无编号的内容列表可以用<ul>、<li>配合使用来实现,代码如下:
    <ul>
        <li><a href="#">新闻标题一</a></li>
        <li><a href="#">新闻标题二</a></li>
        <li><a href="#">新闻标题三</a></li>
    </ul
    1. 自定义列表 定义列表通常用于术语的定义。<dl>标签表示列表的整体。<dt>标签定义术语的题目。<dd>标签是术语的解释。一个<dl>中可以有多个题目和解释,代码如下:
    <h3>前端三大块</h3>
    <dl>
        <dt>html</dt>
        <dd>负责页面的结构</dd>
    
        <dt>css</dt>
        <dd>负责页面的表现</dd>
    
        <dt>javascript</dt>
        <dd>负责页面的行为</dd>
    
    </dl>

    图像标签

    <img>标签可以在网页上插入一张图片,它是独立使用的标签,它的常用属性有:

    • src属性 定义图片的引用地址
    • alt属性 定义图片加载失败时显示的文字,搜索引擎会使用这个文字收录图片、盲人读屏软件会读取这个文字让盲人识别图片,所以此属性非常重要。
    • title属性 鼠标移入图像时提示的文本
    相对路径和绝对路径
    • 绝对地址:相对于磁盘的位置去定位文件的地址
    • 相对地址:相对于引用文件本身去定位被引用的文件地址

    相对路径的常见表达符号:

    • ./  代表当前目录
    • ../  代表父级目录
    • /  代表根目录

    表格

    1.<table>标签:声明一个表格,它的常用属性如下:

    • border属性定义表格的边框,设置值是数值
    • cellpadding属性定义单元格内容与边框的距离,设置值是数值
    • cellspacing属性定义单元格与单元格之间的距离,设置值是数值
    • align属性设置整体表格相对于浏览器窗口的水平对齐方式,设置值有:left | center | right

    2.<tr>标签:定义表格中的一行

    3.<td>和<th>标签:定义一行中的一个单元格,td代表普通单元格,th表示表头单元格,它们的常用属性如下:

    • align 设置单元格中内容的水平对齐方式,设置值有:left | center | right
    • valign 设置单元格中内容的垂直对齐方式 top | middle | bottom
    • colspan 设置单元格可横跨的列数,设置值是数值
    • rowspan 设置单元格可纵跨的行数,设置值是数值

    表单

    表单用于搜集不同类型的用户输入,表单由不同类型的标签组成,相关标签及属性用法如下:

    1. <form>标签 定义整体的表单区域
    • action属性 定义表单数据提交地址
    • method属性 定义表单提交的方式,一般有“get”方式和“post”方式
    1. <input>标签 定义通用的表单元素
    • type属性
      • type="text" 定义单行文本输入框
      • type="password" 定义密码输入框
      • type="radio" 定义单选框
      • type="checkbox" 定义复选框
      • type="file" 定义上传文件
      • type="submit" 定义提交按钮
      • type="reset" 定义重置按钮
      • type="button" 定义一个普通按钮
      • type="image" 定义图片作为提交按钮,用src属性定义图片地址
      • type="hidden" 定义一个隐藏的表单域,用来存储值
    • name属性 
      在一个表单域里,每一个表单元素(除了按钮)必须包含一个name属性,否则该表单元素的数据无法正确提交
    • value属性 
      用户选择的项需要设置value值(单选按钮、复选框、下拉列表项),输入框的value值就是用户输入的内容,
    1. <select>标签 定义下拉表单元素
    2. <textarea>标签 定义多行文本输入框
    3. <option>标签 与<select>标签配合,定义下拉表单元素中的选项

    注册表单实例:

    <form action="http://www..." method="get">
    <p>
    <label>姓名:</label><input type="text" name="username" />
    </p>
    <p>
    <label>密码:</label><input type="password" name="password" />
    </p>
    <p>
    <label>性别:</label>
    <input type="radio" name="gender" value="0" /> <input type="radio" name="gender" value="1" /> </p>
    <p>
    <label>爱好:</label>
    <input type="checkbox" name="like" value="sing" /> 唱歌
    <input type="checkbox" name="like" value="run" /> 跑步
    <input type="checkbox" name="like" value="swiming" /> 游泳
    </p>
    <p>
    <label>照片:</label>
    <input type="file" name="person_pic">
    </p>
    <p>
    <label>个人描述:</label>
    <textarea name="about"></textarea>
    </p>
    <p>
    <label>籍贯:</label>
    <select name="site">
        <option value="0">北京</option>
        <option value="1">上海</option>
        <option value="2">广州</option>
        <option value="3">深圳</option>
    </select>
    </p>
    <p>
    <input type="submit" name="" value="提交">
    <!-- input类型为submit定义提交按钮  
         还可以用图片控件代替submit按钮提交,一般会导致提交两次,不建议使用。如:
         <input type="image" src="xxx.gif">
    -->
    <input type="reset" name="" value="重置">
    </p>
    </form>

    CSS样式

    css简介

    CSS层叠样式表,是用来布局和美化网页的

    css引入的三种方式

    1. 行内式 
      通过标签的style属性,在标签上直接写样式。
    <link rel="stylesheet" type="text/css" href="css/main.css">
    
    1. 内嵌式 
      在head里添加一个style标签,把样式写在style标签之间
    <style type="text/css">
        div{ 100px; height:100px; color:red }
        ......
    </style>
    
    1. 外链式
      在head标签之间放入link标签,引入外部的.css文件,把样式写在文件里
    <link rel="stylesheet" type="text/css" href="css/main.css">
    

    三种引入方式遵守就近原则

    CSS常用选择器

    1. 标签选择器
      标签选择器,此种选择器影响范围大,作用于页面上所有的元素。 举例:
    div{color:red}   
    
    <div>....</div>   <!-- 对应以上两条样式 -->
    <div class="box">....</div>   <!-- 对应以上两条样式 -->
    
    1. id选择器
      通过id名来选择元素,元素的id名称不能重复,所以一个样式设置项只能对应于页面上一个元素,不能复用,id名一般给程序使用,所以不推荐使用id作为选择器。 举例:
    #box{color:red} 
    
    <div id="box">....</div>   <!-- 对应以上一条样式,其它元素不允许应用此样式 -->
    
    1. 类选择器
      通过类名来选择元素,一个类可应用于多个元素,一个元素上也可以使用多个类,应用灵活,可复用,是css中应用最多的一种选择器。
    .red{color:red}
    .big{font-size:20px}
    .mt10{margin-top:10px} 
    
    <div class="red">....</div>
    <h1 class="red big mt10">....</h1>
    <p class="red mt10">....</p>
    
    1. 后代和子代选择器
      主要应用在选择父元素下的子元素,或者子元素下面的子元素,可与标签元素结合使用,减少命名,同时也可以通过层级,防止命名冲突。
    .box>span{color:red} <!--子代  -->
    .box .red{color:pink}<!--后代  -->
    .red{color:red}
    
    <div class="box">
        <span>....</span>
        <a href="#" class="red">....</a>
    </div>
    
    <h3 class="red">....</h3>
    
    1. 伪类选择器
      常用的伪类选择器有hover,表示鼠标悬浮在元素上时的状态,伪元素选择器有before和after,它们可以通过样式在元素中插入内容。
    .box1:hover{color:red}
    .box2:before{content:'行首文字';}
    .box3:after{content:'行尾文字';}
    
    
    <div class="box1">....</div>
    <div class="box2">....</div>
    <div class="box3">....</div>
    
    1. 通用选择器
      作用于所有标签
    *{margin:0;padding:0}
    

    css颜色表示法

    css颜色值主要有三种表示方法:

    1、颜色名表示,比如:red 红色,gold 金色

    2、rgb表示,比如:rgb(255,0,0)表示红色

    3、16进制数值表示,比如:#ff0000 表示红色,这种可以简写成 #f00

    CSS盒子模型

    盒子模型解释 
    元素在页面中显示成一个方块,类似一个盒子,CSS盒子模型就是使用现实中盒子来做比喻,帮助我们设置元素对应的样式。盒子模型示意图如下: image 把元素叫做盒子,设置对应的样式分别为:盒子的宽度(width)、盒子的高度(height)、盒子的边框(border)、盒子内的内容和边框之间的间距(padding)、盒子与盒子之间的间距(margin)。
    设置宽高

    200px;  /* 设置盒子的宽度,此宽度是指盒子内容的宽度,不是盒子整体宽度(难点) */ 
    height:200px; /* 设置盒子的高度,此高度是指盒子内容的高度,不是盒子整体高度(难点) */
    

    设置边框 
    设置一边的边框,比如顶部边框,可以按如下设置:

    border-top-color:red;    /* 设置顶部边框颜色为红色 */  
    border-top-10px;   /* 设置顶部边框粗细为10px */   
    border-top-style:solid;  /* 设置顶部边框的线性为实线,常用的有:solid(实线)  
      dashed(虚线)  dotted(点线); */
    

    上面三句可以简写成一句:

    border-top:10px solid red;
    

    设置其它三个边的方法和上面一样,把上面的'top'换成'left'就是设置左边,换成'right'就是设置右边,换成'bottom'就是设置底边。

    四个边如果设置一样,可以将四个边的设置合并成一句:

    border:10px solid red;
    

    设置内间距padding

    设置盒子四边的内间距,可设置如下:

    padding-top:20px;     /* 设置顶部内间距20px */ 
    padding-left:30px;     /* 设置左边内间距30px */ 
    padding-right:40px;    /* 设置右边内间距40px */ 
    padding-bottom:50px;   /* 设置底部内间距50px */
    

    上面的设置可以简写如下:

    padding:20px 40px 50px 30px; /* 四个值按照顺时针方向,分别设置的是 上 右 下 左
    四个方向的内边距值。 */ padding后面还可以跟3个值,2个值和1个值,它们分别设置的项目如下:

    padding20px 40px 50px; /* 设置顶部内边距为20px,左右内边距为40px,底部内边距为50px */ 
    padding20px 40px; /* 设置上下内边距为20px,左右内边距为40px*/ 
    padding20px; /* 设置四边内边距为20px */
    

    设置外间距margin

    外边距的设置方法和padding的设置方法相同,将上面设置项中的'padding'换成'margin'就是外边距设置方法。

    css文本设置

    常用的应用文本的css样式:

    • color 设置文字的颜色,可继承,如: color:red;
    • font-size 设置文字的大小,如:font-size:12px;
    • font-family 设置文字的字体,如:font-family:'微软雅黑';
    • font-style 设置字体是否倾斜,如:font-style:'normal'; 设置不倾斜,font-style:'italic';设置文字倾斜
    • font-weight 设置文字是否加粗,如:font-weight:bold; 设置加粗 font-weight:normal 设置不加粗
    • line-height 设置文字的行高,设置行高相当于在每行文字的上下同时加间距, 如:line-height:24px; image
    • font 同时设置文字的几个属性,写的顺序有兼容问题,建议按照如下顺序写: font:是否加粗 字号/行高 字体;如: font:normal 12px/36px '微软雅黑';
    • text-decoration 设置文字的下划线,如:text-decoration:none; 将文字下划线去掉
    • text-indent 设置文字首行缩进,可继承,如:text-indent:24px; 设置文字首行缩进24px
    • text-align 设置文字水平对齐方式,可继承。left || right || center || justif.如text-align:center 设置文字水平居中
    • vertical-align: baseline | sub | super | top | text-top | middle | bottom | text-bottom | inherit 文本的垂直对齐方式。

    css元素溢出

    当子元素的尺寸超过父元素的尺寸时,需要设置父元素显示溢出的子元素的方式,设置的方法是通过overflow属性来设置。
    overflow的设置项: 
    1、visible 默认值。内容不会被修剪,会呈现在元素框之外。
    2、hidden 内容会被修剪,并且其余内容是不可见的,此属性还有清除浮动、清除margin-top塌陷的功能。
    3、scroll 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
    4、auto 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。
    5、inherit 规定应该从父元素继承 overflow 属性的值。

    块元素、内联元素、内联块元素

    元素就是标签,布局中常用的有三种标签,块元素、内联元素、内联块元素,了解这三种元素的特性,才能熟练的进行页面布局。

    块元素
    块元素,也可以称为行元素,布局中常用的标签如:div、p、ul、li、h1~h6、dl、dt、dd等等都是块元素,它在布局中的行为:

    • 支持全部的样式
    • 如果没有设置宽度,默认的宽度为父级宽度100%
    • 盒子占据一行、即使设置了宽度

    内联元素
    内联元素,也可以称为行内元素,布局中常用的标签如:a、span、em、b、strong、i等等都是内联元素,它们在布局中的行为:

    • 支持部分样式(不支持宽、高、margin上下、padding上下)
    • 宽高由内容决定
    • 盒子并在一行
    • 代码换行,盒子之间会产生间距
    • 子元素是内联元素,父元素可以用text-align属性设置子元素水平对齐方式

    解决内联元素间隙的方法
    1、去掉内联元素之间的换行
    2、将内联元素的父级设置font-size为0,内联元素自身再设置font-size

    内联块元素
    内联块元素,也叫行内块元素,是新增的元素类型,现有元素没有归于此类别的,img和input元素的行为类似这种元素,但是也归类于内联元素,我们可以用display属性将块元素或者内联元素转化成这种元素。它们在布局中表现的行为:

    • 支持全部样式
    • 如果没有设置宽高,宽高由内容决定
    • 盒子并在一行
    • 代码换行,盒子会产生间距
    • 子元素是内联块元素,父元素可以用text-align属性设置子元素水平对齐方式。

    这三种元素,可以通过display属性来相互转化,不过实际开发中,块元素用得比较多,所以我们经常把内联元素转化为块元素,少量转化为内联块,而要使用内联元素时,直接使用内联元素,而不用块元素转化了。

    display属性
    display属性是用来设置元素的类型及隐藏的,常用的属性有:
    1、none 元素隐藏且不占位置
    2、block 元素以块元素显示
    3、inline 元素以内联元素显示
    4、inline-block 元素以内联块元素显示

    浮动

    浮动特性

    1、浮动元素有左浮动(float:left)和右浮动(float:right)两种

    2、浮动的元素会向左或向右浮动,碰到父元素边界、其他元素才停下来

    3、相邻浮动的块元素可以并在一行,超出父级宽度就换行

    4、浮动让行内元素或块元素自动转化为行内块元素(此时不会有行内块元素间隙问题)

    5、浮动元素后面没有浮动的元素会占据浮动元素的位置,没有浮动的元素内的文字会避开浮动的元素,形成文字饶图的效果

    6、父元素如果没有设置尺寸(一般是高度不设置),父元素内整体浮动的元素无法撑开父元素,父元素需要清除浮动

    7、浮动元素之间没有垂直margin的合并

    清除浮动

    • 父级上增加属性overflow:hidden
    • 在最后一个子元素的后面加一个空的div,给它样式属性 clear:both(不推荐)
    • 使用成熟的清浮动样式类,clearfix
    .clearfix:after,.clearfix:before{ content: "";display: table;}
    .clearfix:after{ clear:both;}
    .clearfix{zoom:1;}
    

    清除浮动的使用方法:

    .con2{... overflow:hidden}
    或者
    <div class="con2 clearfix">
    

    定位

    文档流

    文档流,是指盒子按照html标签编写的顺序依次从上到下,从左到右排列,块元素占一行,行内元素在一行之内从左到右排列,先写的先排列,后写的排在后面,每个盒子都占据自己的位置。

    相对定位

    position: relative;
    

    让元素相对于它应该所在的位置进行偏移,也就是说相对定位的参照物是元素本身.
    特点

    • 相对定位的元素还在文档流内
    • 相对定位的元素不会对其他元素产生影响
    • 相对定位会覆盖在文档流内元素的上面

    绝对定位

    position:absolute 
    

    生成绝对定位元素,元素脱离文档流,不占据文档流的位置,可以理解为漂浮在文档流的上方,相对于上一个设置了定位(position)属性的父级元素来进行定位,如果找不到,则相对于body元素进行定位。

    固定定位

    position:fixed
    

    z-index

    定位元素是浮动的正常的文档流之上的,可以用z-index属性来设置元素的层级.越往后层级越高,可以设置负值

    H5和CSS3新特性

    HTML5新增标签

    新增语义标签

    1、<header> 页面头部、页眉
    2、<nav> 页面导航
    3、<article> 一篇文章
    4、<section> 文章中的章节
    5、<aside> 侧边栏
    6、<footer> 页面底部、页脚

    • 块级元素
      div、p、h1~h6、ul、ol、dl、li、dd、table、hr、blockquote、address、table、menu、pre,HTML5 新增的 header、section、aside、footer 等
    • 行内元素
      span、img、a、lable、input、abbr(缩写)、em(强调)、big、cite(引用)、i(斜体)、q(短引用)、textarea、select、small、sub、sup,strong、u(下划线)、button
    多媒体
    1. 音频
    <audio controls="controls">
    	<source src="./img/DreamItPossible.mp3" type="audio/mpeg">
    </audio>
    

    	<audio controls="controls"src="./img/DreamItPossible.mp3"></audio>
    
    1. 视频
    <video src="./img/1.mp4" width="320" height="240" controls="controls"></video>
    

    CSS3

    选择器

    • E[attr]:只使用属性名,但没有确定任何属性值;
    • E[attr="value"]:指定属性名,并指定了该属性的属性值;
    • E[attr~="value"]:指定属性名,并且具有属性值,此属性值是一个词列表,并且以空格隔开,其中词列表中包含了一个value词,而且等号前面的“〜”不能不写;
    • E[attr^="value"]:指定了属性名,并且有属性值,属性值是以value开头的;
    • E[attr$="value"]:指定了属性名,并且有属性值,而且属性值是以value结束的;
    • E[attr * ="value"]:指定了属性名,并且有属性值,而且属值中包含了value;
    • E[attr|="value"]:指定了属性名,并且属性值是value或者以“value-”开头的值;
    • :hover用于当用户把鼠标移动到元素上面时的效果;
    • :active用于用户点击元素那一下的效果(正发生在点的那一下,松开鼠标左键此动作也就完成了)
    • :focus用于元素成为焦点,这个经常用在表单元素上。
    • :first-child选择某个元素的第一个子元素;
    • :last-child选择某个元素的最后一个子元素;
    • :nth-child()选择某个元素的一个或多个特定的子元素;
    • :nth-last-child()选择某个元素的一个或多个特定的子元素,从这个元素的最后一个子元素开始算;
    • :nth-of-type()选择指定的元素;
    • :nth-last-of-type()选择指定的元素,从元素的最后一个开始计算;
    • :first-of-type选择一个上级元素下的第一个同类子元素;
    • :last-of-type选择一个上级元素的最后一个同类子元素;
    • :only-child选择的元素是它的父元素的唯一一个了元素;
    • :only-of-type选择一个元素是它的上级元素的唯一一个相同类型的子元素;
    • :empty选择的元素里面没有任何内容。 变形
    transform:translate(X|Y|Z)//位移 单位px
    transform:rotate(X|Y|Z)//旋转 单位deg 若为负值,元素将逆时针旋转。
    transform:scale(X|Y|Z)//缩放 缩放
    transform:skew(X|Y|Z)//倾斜  单位deg
    
    变形基准点   //默认的基准点是元素中间位置
    transform-origin:top center;  //中上方也可以用百分比
    
    border-radius
    作用:为元素添加圆角边框
    border-radius:5px 10px 20px 40px /*左上 右上 右下 左下*/
    border-radius:5px 100px /*左上和右下  右上和左下*/
    border-radius:5px 100px 60px /*左上 右上和左下  右下*/
    
    
    box-shadow
    作用:给元素设置阴影效果
    阴影水平偏移值(正负)
    阴影垂直偏移值(正负)
    阴影模糊值
    阴影颜色
    box-shadow: 50px 50px 1px red;
    /*阴影  水平方向 垂直方向  模糊值  阴影颜色*/
            /* 正数  水平往右  垂直往下
               负号  水平往左 垂直往上 */
                /*box-shadow: -10px -100px 100px blue;*/
            /*    变形  transform
                旋转度数   deg 度数单位 */
                /*transform: rotate(180deg);*/
                /*位移   水平  垂直 */
                /*transform: translate(100px,200px);*/
                /*缩放  水平方向  垂直方向*/
                /*transform: scale(0.5,0.5);*/
                /*倾斜    水平方向度数  垂直方向度数*/
                /*transform: skew(30deg,30deg);*/
                /*水平方向*/
                /*transform: skewX(30deg);*/
                /*垂直方向*/
                /*transform: skewY();*/
    

    动画效果

    <style type="text/css">
    		div{
    			border: 1px solid red;
    			 200px;
    			height: 20px;
    			background-color: #00FFFF;
    			position: relative;
    			margin: 5px auto;
    			
    			animation: mymove 3s ease infinite alternate;
    			-webkit-animation: mymove 3s infinite alternate;
    		}
    		@keyframes mymove{
    			  0% {
    			     200px;
    			}
    			100% {
    			     500px;
    			}
    		}
    		@-webkit-keyframes mymove{
    			  0% {
    			     200px;
    			}
    			100% {
    			     500px;
    			}
    		}
    		#box1{
    			animation-delay: 0s;
    			-webkit-animation-delay: 0s;
    		}
    		#box2{
    			animation-delay: 0.5s;
    			-webkit-animation-delay: 0.5s;
    		}
    		#box3{
    			animation-delay: 1;
    			-webkit-animation-delay: 1s;
    		}
    		#box4{
    			animation-delay: 1.5s;
    			-webkit-animation-delay: 1.5s;
    		}
    		
    	</style>
    	<body>
    		<div id="box1"></div>
    		<div id="box2"></div>
    		<div id="box3"></div>
    		<div id="box4"></div>
    	</body>
  • 相关阅读:
    JDK里的设计模式
    设计模式之注册表模式
    设计模式多线程方面之Thread-Per-Message 模式
    UML类图关系大全
    记大三开学的第一个月末
    【OC加强】NSDate的使用方法——日期时间在实际开发中比較有用
    iOS 多线程开发之OperationQueue(二)NSOperation VS GCD
    Cocos2d-x Layout简单使用
    POJ 1205 Water Treatment Plants(递推)
    Troubleshooting &quot;Global Enqueue Services Deadlock detected&quot; (Doc ID 1443482.1)
  • 原文地址:https://www.cnblogs.com/songdanlee/p/11368482.html
Copyright © 2011-2022 走看看