前端(一):HTML+CSS

参考课程:23最新版web前端开发_哔哩哔哩_bilibili

文档:GitHub - codeNiuMa/HTML-md-file: 学习HTML课程时的资料

目录

 1 HTML

1.1 骨架

DOCTYPE

html标签

head标签

body标签

title标签

meta标签

1.2 标签标题h1

1.3 段落p

1.4 水平线

1.5 图片img

1.6 超链接

1.7 列表ul

有序

无序

1.8 table

合并

1.9 表单填写

文本框

密码框

按钮

1.10 块元素与行内元素

网站布局

2 CSS

1.1 引入方式

笨办法×  (内联样式

内部样式×

外部样式(推荐)

1.2 选择器用法

全局选择器

元素选择器

类选择器

1.3 选择器

ID选择器

合并选择器

选择器的优先级

1.4 背景

background-color属性

background-image属性

background-repeat属性

background-size属性

background-position属性

1.5 文本属性

text-align

text-decoration

text-transform

text-indent

1.6 表格

表格边框

折叠边框

表格宽度和高度

表格文字对齐

表格填充

表格颜色

1.7 关系选择器

后代选择器

子代选择器

相邻兄弟选择器

通用兄弟选择器

1.8 CSS 盒子模型

1.9 弹性盒模型

父元素上的属性

display 属性

flex-direction属性

justify-content 属性

子元素上的属性

flex

1.10 文档流

脱离文档流

1.11 浮动*

浮动副作用

1.12 定位

Z-index

1.13 圆角

1.14 动画

@keyframes创建动画

animation执行动画

切换背景颜色

1.15 设置meta标签

1.16 雪碧图

1.17 字体图

 1 HTML

1.1 骨架

  //html5版本标识


        

        
        

        

网页的根主体,有且仅有一个,HTML负责结构,无需关注表现,CSS负责表现

标签有两种表现形式:

  1. 双标签,例如:

  2. 单标签,例如:

  //html5版本标识

DOCTYPE

        是document type (文档类型) 的缩写,是H5的声明位于文档的最前面,处于标签之前。 他是网页必备的组成部分,避免浏览器的怪异模式。

html标签

定义 HTML 文档,这个元素我们浏览器看到后就明白这是个HTML文档了,所以你的其它元素要包裹在它里面,标签限定了文档的开始点和结束点。

head标签

        head标签用于定义文档的头部。文档的头部描述了文档的各种属性和信息,包括文档的标题、在 Web 中的位置以及和其他文档的关系等。绝大多数文档头部包含的数据都不会真正作为内容显示给读者。

body标签

body 元素定义文档的主体。body 元素包含文档的所有内容(比如文本、超链接、图像、表格和列表等等。)它会直接在页面中显示出来,也就是用户可以直观看到的内容

title标签

  第一个页面
  1. 可定义网页的标题。

  2. 它显示在浏览器窗口的标题栏或状态栏上。

  3. </code> 标签是 <code><head></code> 标签中唯一必须要求包含的东西,就是说写head一定要写title</p> </li> <li> <p><code><title></code>的增加有利于SEO优化(搜索引擎优化的英文缩写。通过对网站内容调整,满足搜索引擎的排名需求 )</p> </li> </ol> <h4 id="meta%E6%A0%87%E7%AD%BE">meta标签</h4> <p>        meta标签用来描述一个HTML网页文档的属性,关键词等,例如:<code>charset="utf-8"</code>是说当前使用的是<code>utf-8</code>编码格式,在开发中我们经常会看到<code>utf-8</code>,或是<code>gbk</code>,这些都是编码格式,通常使用<code>utf-8</code>。</p> <pre><code class="language-html"><meta charset="UTF-8"></code></pre> <h3 id="1.2%20%E6%A0%87%E7%AD%BE%E6%A0%87%E9%A2%98h1">1.2 标签标题h1</h3> <p>标题(Heading)是通过 <code><h1> - <h6></code>标签进行定义的。</p> <p><code><h1></code>定义最大的标题 <code><h6></code>定义最小的标题</p> <pre><code class="language-html"><h1>一级标题</h1> <h2>二级标题</h2> <h3>三级标题</h3> </code></pre> <p>在标签中添加属性:<code>align="left | center | right"</code> 默认居左  </p> <blockquote> <p>        请确保将 HTML 标题标签只用于标题。不要仅仅是为了生成粗体或大号的文本而使用标题。正确使用标题有益于SEO</p> </blockquote> <h3 id="1.3%20%E6%AE%B5%E8%90%BDp">1.3 段落p</h3> <p>段落是通过<code><p></code>标签定义的</p> <pre><code class="language-html"><p>这是一个段落 </p> <p>这是另一个段落</p></code></pre> <p>如果您希望在不产生一个新段落的情况下进行换行(新行),请使用 <code><br></code></p> <pre><code class="language-html"><p>这个<br>段落<br>演示了分行的效果</p></code></pre> <p><a href="http://img.e-com-net.com/image/info8/a0db223f5a644855bbe6069eace4fe66.jpg" target="_blank"><img alt="" height="89" src="http://img.e-com-net.com/image/info8/a0db223f5a644855bbe6069eace4fe66.jpg" width="178"></a></p> <table style="width:500px;"> <thead> <tr> <th style="text-align:center;">标签</th> <th style="text-align:center;">描述</th> </tr> </thead> <tbody> <tr> <td style="text-align:center;"><code><em></code></td> <td style="text-align:center;">定义着重文字</td> </tr> <tr> <td style="text-align:center;"><code><b></code></td> <td style="text-align:center;">定义粗体文本</td> </tr> <tr> <td style="text-align:center;"><code><i></code></td> <td style="text-align:center;">定义斜体字</td> </tr> <tr> <td style="text-align:center;"><code><strong></code></td> <td style="text-align:center;">定义加重语气</td> </tr> <tr> <td style="text-align:center;"><code><del></code></td> <td style="text-align:center;">定义删除字</td> </tr> <tr> <td style="text-align:center;"><code><span></code></td> <td style="text-align:center;">元素没有特定的含义</td> </tr> </tbody> </table> <h3 id="1.4%20%E6%B0%B4%E5%B9%B3%E7%BA%BF">1.4 水平线</h3> <p><code><hr/></code>标签在 HTML 页面中创建水平线</p> <pre><code class="language-html"><hr color="" width="" size="" align=""/> 1. color:设置水平线的颜色 2. width:设置水平线的宽度 3. size:设置水平线的高度 4. align:设置水平线的对齐方式(默认居中),可取值left|right</code></pre> <h3 id="1.5%20%E5%9B%BE%E7%89%87img">1.5 图片img</h3> <p><code><img></code> 标签定义 HTML 页面中的图像,<code><img></code>是单标签,不需要进行闭合操作</p> <pre><code class="language-html"><img src="" alt="" title="" width="" height=""> 1. src:路径(图片地址与名字) 2. alt:规定图像的替代文本 3. width:规定图像的宽度 4. height:规定图像的高度 5. title:鼠标悬停在图片上给予提示</code></pre> <h3 id="1.6%20%E8%B6%85%E9%93%BE%E6%8E%A5">1.6 超链接</h3> <p>        HTML使用标签 <code><a></code>来设置超文本链接,超链接可以是一个字,一个词,或者一组词,也可以是一幅图像,您可以点击这些内容来跳转到新的文档</p> <pre><code class="language-html"><a href="url">链接文本</a></code></pre> <p>在标签<code><a></code>中使用了<code>href</code>属性来描述链接的地址</p> <p>默认情况下,链接将以,以下形式出现在浏览器中:</p> <ol> <li> <p>一个未访问过的链接显示为蓝色字体并带有下划线。</p> </li> <li> <p>访问过的链接显示为紫色并带有下划线。</p> </li> <li> <p>点击链接时,链接显示为红色并带有下划线。</p> </li> </ol> <blockquote> <p>后期会通过CSS样式修改掉这些效果</p> </blockquote> <h3 id="1.7%20%E5%88%97%E8%A1%A8ul">1.7 列表ul</h3> <h4 id="%E6%9C%89%E5%BA%8F">有序</h4> <p>有序列表是一列项目,列表项目使用数字进行标记。 有序列表始于<code><ol></code> 标签。每个列表项始于 <code><li></code>标签</p> <pre><code class="language-html"><ol> <li>坤坤</li> <li>姬霓太美</li> </ol> `<ol>`的属性type 拥有的选项 1. 1 表示列表项目用数字标号(1,2,3...) 2. a 表示列表项目用小写字母标号(a,b,c...) 3. A 表示列表项目用大写字母标号(A,B,C...) 4. i 表示列表项目用小写罗马数字标号(i,ii,iii...) 5. I 表示列表项目用大写罗马数字标号(I,II,III...)</code></pre> <p>列表是可以进行嵌套的</p> <pre><code class="language-html"><ol> <li>鸡</li> <li> <ol> <li>你</li> <li>太</li> </ol> </li> <li>美</li> </ol></code></pre> <p><a href="http://img.e-com-net.com/image/info8/d0e4ad645c34470c9740de07cce51f8a.jpg" target="_blank"><img alt="前端(一):HTML+CSS_第1张图片" height="242" src="http://img.e-com-net.com/image/info8/d0e4ad645c34470c9740de07cce51f8a.jpg" width="650" style="border:1px solid black;"></a></p> <h4 id="%E6%97%A0%E5%BA%8F">无序</h4> <p>无序列表是一个项目的列表,此列项目使用粗体圆点(典型的小黑圆圈)进行标记</p> <p>无序列表始于 <code><ul></code> 标签。每个列表项始于<code><li></code> 标签。</p> <p><code><ul></code>的属性type 拥有的选项</p> <ul> <li> <p>disc 默认实心圆</p> </li> <li> <p>circle 空心圆</p> </li> <li> <p>square 小方块</p> </li> <li> <p>none 不显示</p> </li> </ul> <h3 id="1.8%20table">1.8 table</h3> <blockquote> <p>表格:<code><table></code></p> <p>行:<code><tr></code></p> <p>单元格(列):<code><td></code></p> </blockquote> <pre><code class="language-html"><table> <tr> <td>尚学堂</td> <td>百战程序员</td> </tr> <tr> <td>阿里</td> <td>京东</td> </tr> </table> 1. border:设置表格的边框 2. width:设置表格的宽度 3. height:设置表格的高度</code></pre> <p><a href="http://img.e-com-net.com/image/info8/8ca2717614fe4c518bdf170aa4ecd559.jpg" target="_blank"><img alt="前端(一):HTML+CSS_第2张图片" height="184" src="http://img.e-com-net.com/image/info8/8ca2717614fe4c518bdf170aa4ecd559.jpg" width="650" style="border:1px solid black;"></a></p> <h4 id="%E5%90%88%E5%B9%B6">合并</h4> <ul> <li> <p>水平合并:colspan,保留左边,删掉右边</p> </li> <li> <p>垂直合并:rowspan,保留上边,删除下边</p> </li> </ul> <pre><code class="language-html"> <table border="1" width="500px" height="200px"> <tr> <td colspan="3">单元格1单元格2单元格3</td> <td>单元格4</td> <td>单元格5</td> </tr> <tr> <td rowspan="2">单元格6-11</td> <td>单元格7</td> <td rowspan="3">单元格81318</td> <td colspan="2" rowspan="2">单元格9101415</td> </tr> <tr> <td>单元格12</td> </tr> <tr> <td>单元格16</td> <td>单元格17</td> <td>单元格19</td> <td>单元格20</td> </tr> </table></code></pre> <p><a href="http://img.e-com-net.com/image/info8/77fc35248bf54f17a1c532d3d031524a.jpg" target="_blank"><img alt="前端(一):HTML+CSS_第3张图片" height="200" src="http://img.e-com-net.com/image/info8/77fc35248bf54f17a1c532d3d031524a.jpg" width="475" style="border:1px solid black;"></a>麻烦!</p> <h3 id="1.9%20%E8%A1%A8%E5%8D%95%E5%A1%AB%E5%86%99">1.9 表单填写</h3> <p>表单在 Web 网页中用来给用户填写信息,从而能采用户信息,使网页具有交互的功能。</p> <p>所有的用户输入内容的地方都用表单来写,如登录注册、搜索框</p> <p></p> <p>表单是由容器和控件组成的,一个表单一般应该包含用户填写信息的输入框,按钮等</p> <ul> <li>这些输入框,按钮叫做控件</li> <li>表单就是容器,它能够容纳各种各样的控件</li> </ul> <pre><code class="language-html"><form action="url" method="get|post" name="myform"></form></code></pre> <p>一个完整的表单包含三个基本组成部分:表单标签、表单域、表单按钮</p> <ol> <li> <p>表单标签</p> </li> <li> <p>表单域</p> </li> <li> <p>表单按钮  </p> </li> </ol> <p><a href="http://img.e-com-net.com/image/info8/6947c8952ba146029ec2685f6b0c7fd5.jpg" target="_blank"><img alt="前端(一):HTML+CSS_第4张图片" height="217" src="http://img.e-com-net.com/image/info8/6947c8952ba146029ec2685f6b0c7fd5.jpg" width="650" style="border:1px solid black;"></a></p> <h4 id="%E6%96%87%E6%9C%AC%E6%A1%86">文本框</h4> <p>文本域通过<code><input type="text"></code> 标签来设定,当用户要在表单中键入字母、数字等内容时,就会用到文本域</p> <pre><code class="language-html"><form> First name: <input type="text" name="firstname"> <br> Last name: <input type="text" name="lastname"> </form></code></pre> <p><a href="http://img.e-com-net.com/image/info8/305999e7ee9046888a480ebccaae59ea.jpg" target="_blank"><img alt="" height="70" src="http://img.e-com-net.com/image/info8/305999e7ee9046888a480ebccaae59ea.jpg" width="294"></a></p> <h4 id="%E5%AF%86%E7%A0%81%E6%A1%86">密码框</h4> <p>密码字段通过标签<code><input type="password"></code> 来定义</p> <pre><code class="language-html"><form> Password: <input type="password" name="pwd"> </form></code></pre> <p><a href="http://img.e-com-net.com/image/info8/ad686c9e9c9345169974e51c66e4ba10.jpg" target="_blank"><img alt="" height="46" src="http://img.e-com-net.com/image/info8/ad686c9e9c9345169974e51c66e4ba10.jpg" width="290"></a></p> <h4 id="%E6%8C%89%E9%92%AE">按钮</h4> <p>当用户单击确认按钮时,表单的内容会被传送到另一个文件。表单的动作属性定义了目的文件的文件名。由动作属性定义的这个文件通常会对接收到的输入数据进行相关的处理</p> <pre><code class="language-html"><form name="input" action="https://www.baidu.com" method="get"> Username: <input type="text" name="user"> <input type="submit" value="Submit"> </form></code></pre> <h3 id="1.10%20%E5%9D%97%E5%85%83%E7%B4%A0%E4%B8%8E%E8%A1%8C%E5%86%85%E5%85%83%E7%B4%A0">1.10 块元素与行内元素</h3> <p>        HTML5出现之前,经常把元素按照块级元素和内联元素来区分。在HTML5中,元素不再按照这种⽅式来区分, 而是按照内容模型来区分,分为元数据型(metadata content)、区块型(sectioning content)、标题型(heading content)、文档流型(flow content)、语句型(phrasing content)、内嵌型(embedded content)、交互型 (interactive content)。元素不属于任何⼀个类别,被称为穿透的,元素可能属于不止⼀个类别,称为混合的</p> <p>        虽然到了HTML5的版本,元素分类更细致了,但是这对初学者并不友好,所以我们仍然按照块元素和内联元素做区分,这对我们的布局起到了至关重要的作用</p> <table> <thead> <tr> <th style="text-align:center;">块级元素</th> <th style="text-align:center;">内联元素</th> </tr> </thead> <tbody> <tr> <td style="text-align:center;">块元素会在页面中独占一行(自上向下垂直排列)</td> <td style="text-align:center;">行内元素不会独占页面中的一行,只占自身的大小</td> </tr> <tr> <td style="text-align:center;">可以设置width,height属性</td> <td style="text-align:center;">行内元素设置width,height属性无效</td> </tr> <tr> <td style="text-align:center;">⼀般块级元素可以包含行内元素和其他块级元素</td> <td style="text-align:center;">⼀般内联元素包含内联元素不包含块级元素</td> </tr> </tbody> </table> <p>常见块级元素</p> <blockquote> <p>div、form、h1~h6、hr、p、table、ul、等</p> </blockquote> <p>常见内联元素(行内元素)</p> <blockquote> <p>a、b、em、i、span、strong等</p> </blockquote> <p>行内块级元素(特点:不换行、能够识别宽高)</p> <blockquote> <p>button、img、input等</p> </blockquote> <h3 id="%E7%BD%91%E7%AB%99%E5%B8%83%E5%B1%80">网站布局</h3> <p><code>div</code>容器元素,也是页面中见到的最多的元素</p> <p>div实现</p> <p><a href="http://img.e-com-net.com/image/info8/8fa273a3247e43d685a315c62e2f5894.jpg" target="_blank"><img alt="前端(一):HTML+CSS_第5张图片" height="250" src="http://img.e-com-net.com/image/info8/8fa273a3247e43d685a315c62e2f5894.jpg" width="496" style="border:1px solid black;"></a></p> <p>H5新标签实现</p> <ol> <li> <p><code><header></header></code> 头部</p> </li> <li> <p><code><nav></nav></code> 导航</p> </li> <li> <p><code><section></section></code>定义文档中的节,比如章节、页眉、页脚</p> </li> <li> <p><code><aside></aside></code> 侧边栏</p> </li> <li> <p><code><footer></footer></code> 脚部</p> </li> <li> <p><code><article></article></code> 代表一个独立的、完整的相关内容块,例如一篇完整的论坛帖子,一篇博客文章,一个用户评论等</p> </li> </ol> <p><a href="http://img.e-com-net.com/image/info8/957f58bf81b3425f9e851ac96f7ef6a7.jpg" target="_blank"><img alt="前端(一):HTML+CSS_第6张图片" height="257" src="http://img.e-com-net.com/image/info8/957f58bf81b3425f9e851ac96f7ef6a7.jpg" width="515" style="border:1px solid black;"></a></p> <p></p> <p></p> <p></p> <h2 id="2%20CSS">2 CSS</h2> <p>CSS(Cascading Style Sheets)层叠样式表,又叫级联样式表,简称样式表</p> <p>CSS文件后缀名为<code>.css</code>,用于HTML文档中元素样式的定义</p> <p>CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明(样式)</p> <p><a href="http://img.e-com-net.com/image/info8/ad90503abc2e448c9c9350a6945207b4.jpg" target="_blank"><img alt="前端(一):HTML+CSS_第7张图片" height="111" src="http://img.e-com-net.com/image/info8/ad90503abc2e448c9c9350a6945207b4.jpg" width="554" style="border:1px solid black;"></a></p> <ul> <li>选择器通常是您需要改变样式的 HTML 元素</li> <li>每条声明由一个属性和一个值组成:属性(property)是您希望设置的样式属性(style attribute)。每个属性有一个值。属性和值被冒号分开</li> </ul> <pre><code class="language-html"><style> h1{ color: blue; font-size: 12px; } </style></code></pre> <h3 id="1.1%20%E5%BC%95%E5%85%A5%E6%96%B9%E5%BC%8F">1.1 引入方式</h3> <h4 id="%E7%AC%A8%E5%8A%9E%E6%B3%95%C3%97%C2%A0%20%EF%BC%88%E5%86%85%E8%81%94%E6%A0%B7%E5%BC%8F">笨办法×  (内联样式</h4> <p>要使用内联样式,在相关的标签内使用样式(style)属性。Style 可以包含任何 CSS 属性</p> <pre><code class="language-html"><p style="background: orange; font-size: 24px;">CSS<p></code></pre> <p>缺乏整体性和规划性,不利于维护,维护成本高</p> <h4 id="%E5%86%85%E9%83%A8%E6%A0%B7%E5%BC%8F%C3%97">内部样式×</h4> <p>当单个文档需要特殊的样式时,就应该使用内部样式表。你可以使用 <code><style></code> 标签在文档头部定义内部样式表</p> <pre><code class="language-html"><head> <style> h1 { background: red; } </style> </head></code></pre> <h4 id="%E5%A4%96%E9%83%A8%E6%A0%B7%E5%BC%8F%EF%BC%88%E6%8E%A8%E8%8D%90%EF%BC%89">外部样式(推荐)</h4> <p>当样式需要应用于很多页面时,外部样式表将是理想的选择。在使用外部样式表的情况下,你可以通过改变一个文件来改变整个站点的外观。每个页面使用 <code><link></code> 标签链接到样式表。 <code><link></code> 标签在(文档的)头部</p> <pre><code class="language-html"><link rel="stylesheet" type="text/css" href="xxx.css"></code></pre> <h3 id="1.2%20%E9%80%89%E6%8B%A9%E5%99%A8%E7%94%A8%E6%B3%95">1.2 选择器用法</h3> <h4 id="%E5%85%A8%E5%B1%80%E9%80%89%E6%8B%A9%E5%99%A8">全局选择器</h4> <p>可以与任何元素匹配,优先级最低,一般做样式初始化</p> <pre><code class="language-css">*{ margin: 0; padding: 0; }</code></pre> <h4 id="%E5%85%83%E7%B4%A0%E9%80%89%E6%8B%A9%E5%99%A8">元素选择器</h4> <p>HTML文档中的元素,<code>p、b、div、a、img、body</code>等。</p> <p>标签选择器,选择的是页面上所有这种类型的标签,所以经常描述“共性”,无法描述某一个元素的“个性”</p> <pre><code class="language-css">p{    font-size:14px; }</code></pre> <h4 id="%E7%B1%BB%E9%80%89%E6%8B%A9%E5%99%A8">类选择器</h4> <p>规定用圆点 <code>.</code> 来定义,针对你想要的所有标签使用</p> <pre><code class="language-css"><h2 class="oneclass">你好</h2> /*定义类选择器*/ .oneclass{ width:800px; }</code></pre> <ol> <li> <p>类选择器可以被多种标签使用</p> </li> <li> <p>类名不能以数字开头</p> </li> <li> <p>同一个标签可以使用多个类选择器。用空格隔开</p> </li> </ol> <pre><code class="language-css"><h3 class="classone classtwo">我是一个h3啊</h3> <h3 class="classone" class="classtwo">我是一个h3啊</h3> // error</code></pre> <h3 id="1.3%20%E9%80%89%E6%8B%A9%E5%99%A8">1.3 选择器</h3> <h4 id="ID%E9%80%89%E6%8B%A9%E5%99%A8">ID选择器</h4> <p>针对某一个特定的标签来使用,只能使用一次。<code>css</code>中的<code>ID选择器</code>以 <code>#</code> 来定义</p> <ol> <li> <p>ID是<strong>唯一的</strong></p> </li> <li> <p>ID不能以数字开头</p> </li> </ol> <pre><code class="language-css"><h2 id="mytitle">你好</h2> #mytitle{ border:3px dashed green; }</code></pre> <h4 id="%E5%90%88%E5%B9%B6%E9%80%89%E6%8B%A9%E5%99%A8">合并选择器</h4> <p>语法:<code>选择器1,选择器2,...{ }</code></p> <p>作用:提取共同的样式,减少重复代码</p> <pre><code class="language-css">.header, .footer, .cxk{ height:300px; }</code></pre> <h4 id="%E9%80%89%E6%8B%A9%E5%99%A8%E7%9A%84%E4%BC%98%E5%85%88%E7%BA%A7">选择器的优先级</h4> <p>CSS中,权重用数字衡量</p> <blockquote> <p>元素选择器的权重为: 1</p> <p>class选择器的权重为: 10</p> <p>id选择器的权重为: 100</p> <p>内联样式的权重为: 1000</p> <p>优先级从高到低: 行内样式 > ID选择器 > 类选择器 > 元素选择器</p> </blockquote> <h3 id="1.4%20%E8%83%8C%E6%99%AF">1.4 背景</h3> <table> <thead> <tr> <th>属性</th> <th>描述</th> </tr> </thead> <tbody> <tr> <td>background-color</td> <td>设置背景颜色</td> </tr> <tr> <td>background-image</td> <td>设置背景图片</td> </tr> <tr> <td>background-position</td> <td>设置背景图片显示位置</td> </tr> <tr> <td>background-repeat</td> <td>设置背景图片如何填充</td> </tr> <tr> <td>background-size</td> <td>设置背景图片大小属性</td> </tr> </tbody> </table> <h4 id="background-color%E5%B1%9E%E6%80%A7">background-color属性</h4> <p>该属性设置背景颜色</p> <pre><div class="box"></div> .box{    width: 300px;    height: 300px;    background-color: palevioletred; }</pre> <p></p> <h4 id="background-image%E5%B1%9E%E6%80%A7">background-image属性</h4> <p>设置元素的背景图像</p> <p>元素的背景是元素的总大小,包括填充和边界(不包括外边距)。默认情况下background-image属性放置在元素的左上角,如果图像不够大的话会在垂直和水平方向平铺图像,如果图像大小超过元素大小从图像的左上角显示元素大小的那部分</p> <pre><div class="box"></div> .box{    width: 600px;    height: 600px;    background-image: url("images/img1.jpg"); }</pre> <p></p> <p></p> <h4 id="background-repeat%E5%B1%9E%E6%80%A7">background-repeat属性</h4> <p>该属性设置如何平铺背景图像</p> <table> <thead> <tr> <th>值</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td>repeat</td> <td>默认值</td> </tr> <tr> <td>repeat-x</td> <td>只向水平方向平铺</td> </tr> <tr> <td>repeat-y</td> <td>只向垂直方向平铺</td> </tr> <tr> <td>no-repeat</td> <td>不平铺</td> </tr> </tbody> </table> <pre>.box{    width: 600px;    height: 600px;    background-color: #fcc;    background-image: url("images/img1.jpg");    background-repeat: no-repeat; }</pre> <p></p> <p></p> <h4 id="background-size%E5%B1%9E%E6%80%A7">background-size属性</h4> <p>该属性设置背景图像的大小</p> <table> <thead> <tr> <th>值</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td>length</td> <td>设置背景图片的宽度和高度,第一个值宽度,第二个值高度,如果只是设置一个,第二个值auto</td> </tr> <tr> <td>percentage</td> <td>计算相对位置区域的百分比,第一个值宽度,第二个值高度,如果只是设置一个,第二个值auto</td> </tr> <tr> <td>cover</td> <td>保持图片纵横比并将图片缩放成完全覆盖背景区域的最小大小</td> </tr> <tr> <td>contain</td> <td>保持图片纵横比并将图像缩放成适合背景定位区域的最大大小</td> </tr> </tbody> </table> <pre>.box{    width: 600px;    height: 600px;    background-image: url("images/img1.jpg");    background-repeat: no-repeat;    background-size: 100% 100%; }</pre> <p></p> <h4 id="background-position%E5%B1%9E%E6%80%A7">background-position属性</h4> <p>该属性设置背景图像的起始位置,其默认值是:0% 0%</p> <p></p> <h3 id="1.5%20%E6%96%87%E6%9C%AC%E5%B1%9E%E6%80%A7">1.5 文本属性</h3> <h4 id="text-align">text-align</h4> <p>指定元素文本的水平对齐方式</p> <table> <thead> <tr> <th>值</th> <th>描述</th> </tr> </thead> <tbody> <tr> <td>left</td> <td>文本 居左排列,默认值</td> </tr> <tr> <td>right</td> <td>把文本排列到右边</td> </tr> <tr> <td>center</td> <td>把文本排列到中间</td> </tr> </tbody> </table> <pre><code class="language-css">h1 {text-align:center} h2 {text-align:left} h3 {text-align:right}</code></pre> <h4 id="text-decoration">text-decoration</h4> <p>text-decoration 属性规定添加到文本的修饰,下划线、上划线、删除线等</p> <table> <thead> <tr> <th>值</th> <th>描述</th> </tr> </thead> <tbody> <tr> <td>underline</td> <td>定义下划线</td> </tr> <tr> <td>overline</td> <td>定义上划线</td> </tr> <tr> <td>line-through</td> <td>定义删除线</td> </tr> </tbody> </table> <pre><code class="language-css">h1 {text-decoration:overline} h2 {text-decoration:line-through} h3 {text-decoration:underline}</code></pre> <h4 id="text-transform">text-transform</h4> <p>text-transform 属性控制文本的大小写</p> <table> <thead> <tr> <th>值</th> <th>描述</th> </tr> </thead> <tbody> <tr> <td>captialize</td> <td>定义每个单词开头大写</td> </tr> <tr> <td>uppercase</td> <td>定义全部大写字母</td> </tr> <tr> <td>lowercase</td> <td>定义全部小写字母</td> </tr> </tbody> </table> <pre><code class="language-css">h1 {text-transform:uppercase;} h2 {text-transform:capitalize;} p {text-transform:lowercase;}</code></pre> <h4 id="text-indent">text-indent</h4> <p>text-indent 属性规定文本块中首行文本的缩进</p> <pre><code class="language-css">p{ text-indent:50px; }</code></pre> <blockquote> <p><strong>温馨提示</strong></p> <p>负值是允许的。如果值是负数,将第一行左缩进</p> </blockquote> <h3 id="1.6%20%E8%A1%A8%E6%A0%BC">1.6 表格</h3> <h4 id="%E8%A1%A8%E6%A0%BC%E8%BE%B9%E6%A1%86">表格边框</h4> <p>指定CSS表格边框,使用border属性</p> <pre>table, td {    border: 1px solid black; } </pre> <h4 id="%E6%8A%98%E5%8F%A0%E8%BE%B9%E6%A1%86">折叠边框</h4> <p>border-collapse 属性设置表格的边框是否被折叠成一个单一的边框或隔开</p> <pre>table { border-collapse:collapse; } table,td { border: 1px solid black; }</pre> <p></p> <h4 id="%E8%A1%A8%E6%A0%BC%E5%AE%BD%E5%BA%A6%E5%92%8C%E9%AB%98%E5%BA%A6">表格宽度和高度</h4> <p>width和height属性定义表格的宽度和高度</p> <pre>table { width:100%; } td { height:50px; }</pre> <p></p> <h4 id="%E8%A1%A8%E6%A0%BC%E6%96%87%E5%AD%97%E5%AF%B9%E9%BD%90">表格文字对齐</h4> <p>表格中的文本对齐和垂直对齐属性</p> <p>text-align属性设置水平对齐方式,向左,右,或中心</p> <pre>td { text-align:right; }</pre> <p>垂直对齐属性设置垂直对齐</p> <pre>td { height:50px; vertical-align:bottom; }</pre> <p></p> <h4 id="%E8%A1%A8%E6%A0%BC%E5%A1%AB%E5%85%85">表格填充</h4> <p>如果在表的内容中控制空格之间的边框,应使用td和th元素的填充属性</p> <pre>td { padding:15px; }</pre> <p></p> <h4 id="%E8%A1%A8%E6%A0%BC%E9%A2%9C%E8%89%B2">表格颜色</h4> <p>下面的例子指定边框的颜色,和th元素的文本和背景颜色</p> <pre>table, td, th { border:1px solid green; } td { background-color:green; color:white; }</pre> <h3 id="1.7%20%E5%85%B3%E7%B3%BB%E9%80%89%E6%8B%A9%E5%99%A8">1.7 关系选择器</h3> <h4 id="%E5%90%8E%E4%BB%A3%E9%80%89%E6%8B%A9%E5%99%A8">后代选择器</h4> <p>选择所有被E元素包含的F元素,中间用空格隔开</p> <p>语法:E F{ }</p> <pre><code class="language-css"><ul> <li>宝马</li> <li>奔驰</li> </ul> <ol> <li>奥迪</li> </ol> ul li{ color:green; }</code></pre> <h4 id="%E5%AD%90%E4%BB%A3%E9%80%89%E6%8B%A9%E5%99%A8">子代选择器</h4> <p><strong>定义</strong></p> <p>选择所有作为E元素的<strong>直接子元素</strong>F,对更深一层的元素不起作用,用>表示</p> <p>语法:E>F{ }</p> <pre><code class="language-css"><div> <a href="#">子元素1</a> <p> <a href="#">孙元素</a> </p> <a href="#">子元素2</a> </div> div>a{ color:red }</code></pre> <h4 id="%E7%9B%B8%E9%82%BB%E5%85%84%E5%BC%9F%E9%80%89%E6%8B%A9%E5%99%A8">相邻兄弟选择器</h4> <p><strong>定义</strong></p> <p>选择<strong>紧跟</strong>E元素后的F元素,用加号表示,选择相邻的第一个兄弟元素,只能向下选择</p> <p>语法:E+F{ }</p> <pre><code class="language-css"><h1>h1元素</h1> <p>第一个元素</p> <p>第二个元素</p> h1+p{ color:red; }</code></pre> <h4 id="%E9%80%9A%E7%94%A8%E5%85%84%E5%BC%9F%E9%80%89%E6%8B%A9%E5%99%A8">通用兄弟选择器</h4> <p><strong>定义</strong></p> <p>选择E元素之后的所有<strong>同级兄弟元素</strong>F,作用于多个元素,用~隔开,只能向下选择</p> <p>E~F{ }</p> <pre><code class="language-css"><h1>h1元素</h1> <p>第一个元素</p> <p>第二个元素</p> h1~p{ color:red; }</code></pre> <h3 id="1.8%C2%A0CSS%20%E7%9B%92%E5%AD%90%E6%A8%A1%E5%9E%8B">1.8 CSS 盒子模型</h3> <p>所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用</p> <p>CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:</p> <p>外边距(margin),边框(border),内边距(padding),和实际内容(content)</p> <p><a href="http://img.e-com-net.com/image/info8/9e229d0564d24cf1aa2f49b054fb040a.png" target="_blank"><img alt="前端(一):HTML+CSS_第8张图片" height="302" src="http://img.e-com-net.com/image/info8/9e229d0564d24cf1aa2f49b054fb040a.png" width="379" style="border:1px solid black;"></a></p> <blockquote> <ol> <li> <p>Margin(外边距) - 清除边框外的区域,外边距是透明的(两个值:第一个值上下,第二个值左右)</p> </li> <li> <p>Border(边框) - 围绕在内边距和内容外的边框</p> </li> <li> <p>Padding(内边距) - 清除内容周围的区域(两个值:第一个值上下,第二个值左右)</p> </li> <li> <p>Content(内容) - 盒子的内容,显示文本和图像</p> </li> </ol> </blockquote> <pre><code class="language-css">div{ width: 100px; height: 100px; padding: 10px; border: 2px solid red; margin: 10px; background: green; }</code></pre> <p><span style="color:#fe2c24;">人开始麻了</span></p> <h3 id="1.9%C2%A0%E5%BC%B9%E6%80%A7%E7%9B%92%E6%A8%A1%E5%9E%8B">1.9 弹性盒模型</h3> <p>        CSS3 弹性盒是一种当页面需要适应不同的屏幕大小以及设备类型时确保元素拥有恰当的行为的布局方式,引入弹性盒布局模型的目的是提供一种更加有效的方式来对一个容器中的子元素进行排列、对齐和分配空白空间</p> <p>弹性盒子由弹性容器(Flex container)和弹性子元素(Flex item)组成</p> <p>弹性容器通过设置 <code>display</code>属性的值为 <code>flex</code>将其定义为弹性容器</p> <p><a href="http://img.e-com-net.com/image/info8/72723bb0a6ff41ca87ba375e55ff7507.jpg" target="_blank"><img alt="前端(一):HTML+CSS_第9张图片" height="383" src="http://img.e-com-net.com/image/info8/72723bb0a6ff41ca87ba375e55ff7507.jpg" width="650" style="border:1px solid black;"></a></p> <h4 id="%E7%88%B6%E5%85%83%E7%B4%A0%E4%B8%8A%E7%9A%84%E5%B1%9E%E6%80%A7">父元素上的属性</h4> <h5 id="display%20%E5%B1%9E%E6%80%A7"><strong>display 属性</strong></h5> <p><code>display:flex;</code>开启弹性盒,属性设置后子元素默认水平排列</p> <p></p> <h5 id="flex-direction%E5%B1%9E%E6%80%A7"><strong>flex-direction属性</strong></h5> <p><strong>定义</strong></p> <p>flex-direction 属性指定了弹性子元素在父容器中的位置</p> <pre><code class="language-css">flex-direction: row | row-reverse | column | column-reverse</code></pre> <h5 id="justify-content%20%E5%B1%9E%E6%80%A7">justify-content 属性</h5> <p><strong>定义</strong></p> <p>内容对齐(justify-content)属性应用在弹性容器上,把弹性项沿着弹性容器的主轴线(main axis)对齐</p> <pre><code class="language-css">justify-content: flex-start | flex-end | center </code></pre> <ol> <li> <p><code>flex-start</code> 弹性项目向行头紧挨着填充。这个是默认值。第一个弹性项的main-start外边距边线被放置在该行的main-start边线,而后续弹性项依次平齐摆放</p> </li> <li> <p><code>flex-end</code> 弹性项目向行尾紧挨着填充。第一个弹性项的main-end外边距边线被放置在该行的main-end边线,而后续弹性项依次平齐摆放</p> </li> <li> <p><code>center</code> 弹性项目居中紧挨着填充。(如果剩余的自由空间是负的,则弹性项目将在两个方向上同时溢出)</p> </li> </ol> <h4 id="%E5%AD%90%E5%85%83%E7%B4%A0%E4%B8%8A%E7%9A%84%E5%B1%9E%E6%80%A7"><strong>子元素上的属性</strong></h4> <h5 id="flex">flex</h5> <p><code>flex</code> 根据弹性盒子元素所设置的扩展因子作为比率来分配剩余空间</p> <p>默认为0,即如果存在剩余空间,也不放大</p> <p>如果只有一个子元素设置,那么按扩展因子转化的百分比对其分配剩余空间。0.1即10%,1即100%,超出按100%</p> <h3 id="1.10%20%E6%96%87%E6%A1%A3%E6%B5%81">1.10 文档流</h3> <p>块元素自上而下摆放,内联元素,从左到右摆放</p> <ol> <li> <p>高矮不齐,底边对齐</p> </li> <li> <p>空白折叠现象</p> <ol> <li> <p>无论多少个空格、换行、tab,都会折叠为一个空格</p> </li> <li> <p>如果我们想让img标签之间没有空隙,必须紧密连接</p> </li> </ol></li> </ol> <p><a href="http://img.e-com-net.com/image/info8/c3485e9045434c35a633e8e10dbd3b49.jpg" target="_blank"><img alt="前端(一):HTML+CSS_第10张图片" height="226" src="http://img.e-com-net.com/image/info8/c3485e9045434c35a633e8e10dbd3b49.jpg" width="361" style="border:1px solid black;"></a></p> <p>如果我们现在就要并排顶部对齐,那该怎么办呢?办法是:移民!脱离标准流!</p> <h4 id="%E8%84%B1%E7%A6%BB%E6%96%87%E6%A1%A3%E6%B5%81">脱离文档流</h4> <p>使⼀个元素脱离标准文档流有三种方式</p> <ol> <li> <p>浮动</p> </li> <li> <p>绝对定位</p> </li> <li> <p>固定定位</p> </li> </ol> <h3 id="1.11%20%E6%B5%AE%E5%8A%A8*">1.11 浮动*</h3> <p><code>float</code>属性定义元素在哪个方向浮动,任何元素都可以浮动。</p> <table style="width:200px;"> <thead> <tr> <th>值</th> <th>描述</th> </tr> </thead> <tbody> <tr> <td>left</td> <td>元素向左浮动</td> </tr> <tr> <td>right</td> <td>元素向右浮动</td> </tr> </tbody> </table> <p>脱离文档流之后,元素相当于在页面上面增加一个浮层来放置内容。此时可以理解为有两层页面,一层是底层的原页面,一层是脱离文档流的上层页面,所以会出现折叠现象</p> <p>元素向左浮动</p> <pre><code class="language-css"><div class="box"></div> <div class="container"></div> .container{ width: 200px; height: 200px; background-color: #81c784; } .box{ width: 100px; height: 100px; background-color: #fff176; float: left; }</code></pre> <p><a href="http://img.e-com-net.com/image/info8/12393f8ffe5f4818be7d61cde7414b91.jpg" target="_blank"><img alt="前端(一):HTML+CSS_第11张图片" height="339" src="http://img.e-com-net.com/image/info8/12393f8ffe5f4818be7d61cde7414b91.jpg" width="650" style="border:1px solid black;"></a></p> <p>元素向右浮动</p> <pre><code class="language-css"><div class="box"></div> <div class="container"></div> .container{ width: 200px; height: 200px; background-color: #81c784; } .box{ width: 100px; height: 100px; background-color: #fff176; float: right; }</code></pre> <p><a href="http://img.e-com-net.com/image/info8/f1162bc27b3e4fd4af367a8aa4183650.png" target="_blank"><img alt="前端(一):HTML+CSS_第12张图片" height="415" src="http://img.e-com-net.com/image/info8/f1162bc27b3e4fd4af367a8aa4183650.png" width="820" style="border:1px solid black;"></a></p> <p>当所有元素同时浮动的时候,会变成水平摆放,向左或者向右</p> <p>当容器不足以横向摆放内容时候,会在下一行摆放</p> <h4 id="%E6%B5%AE%E5%8A%A8%E5%89%AF%E4%BD%9C%E7%94%A8">浮动副作用</h4> <p>当元素设置float浮动后,该元素就会脱离文档流并向左/向右浮动,</p> <ol> <li> <p>浮动元素会造成父元素高度塌陷</p> </li> <li> <p>后续元素会受到影响</p> </li> </ol> <p>当父元素出现塌陷的时候,对布局是不利的,所以我们必须清除副作用</p> <p>解决方案有很多种</p> <p>1. 父元素设置高度<br> 2. 受影响的元素增加clear属性<br> 3. overflow清除浮动<br> 4. 伪对象方式</p> <h3 id="1.12%20%E5%AE%9A%E4%BD%8D">1.12 定位</h3> <table> <thead> <tr> <th>值</th> <th>描述</th> </tr> </thead> <tbody> <tr> <td>relative</td> <td>相对定位</td> </tr> <tr> <td>absolute</td> <td>绝对定位</td> </tr> <tr> <td>fixed</td> <td>固定定位</td> </tr> </tbody> </table> <p>设置定位之后:可以使用四个方向值进行调整位置:<code>left、top、right、bottom</code></p> <pre><code class="language-css">.box{ width: 200px; height: 200px; background-color: red; position: relative; left: 100px; }</code></pre> <blockquote> <p>设置定位之后,相对定位和绝对定位他是相对于具有定位的父级元素进行位置调整,如果父级元素不存在定位,则继续向上逐级寻找,直到顶层文档</p> </blockquote> <h4 id="Z-index">Z-index</h4> <p><code>z-index</code>属性设置元素的堆叠顺序。拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面</p> <h3 id="1.13%20%E5%9C%86%E8%A7%92">1.13 圆角</h3> <p>使用 CSS3 <code>border-radius</code> 属性,你可以给任何元素制作 "圆角"</p> <p><code>border-radius</code> 属性,可以使用以下规则:</p> <ol> <li> <p>四个值: 第一个值为左上角,第二个值为右上角,第三个值为右下角,第四个值为左下角</p> </li> <li> <p>三个值: 第一个值为左上角, 第二个值为右上角和左下角,第三个值为右下角</p> </li> <li> <p>两个值: 第一个值为左上角与右下角,第二个值为右上角与左下角</p> </li> <li> <p>一个值: 四个圆角值相同</p> </li> </ol> <h3 id="1.14%20%E5%8A%A8%E7%94%BB">1.14 动画</h3> <p>动画是使元素从一种样式逐渐变化为另一种样式的效果</p> <p>您可以改变任意多的样式任意多的次数</p> <p>请用百分比来规定变化发生的时间,或用关键词 "from" 和 "to",等同于 0% 和 100%</p> <p>0% 是动画的开始,100% 是动画的完成</p> <h4 id="%40keyframes%E5%88%9B%E5%BB%BA%E5%8A%A8%E7%94%BB">@keyframes创建动画</h4> <p>使用<code>@keyframes</code>规则,你可以创建动画</p> <pre><code class="language-css">@keyframes name { from|0%{ css样式 } percent{ css样式 } to|100%{ css样式 } } name:动画名称,开发人员自己命名; percent:为百分比值,可以添加多个百分比值;</code></pre> <h4 id="animation%E6%89%A7%E8%A1%8C%E5%8A%A8%E7%94%BB">animation执行动画</h4> <pre><code class="language-css">animation: name duration timing-function delay iteration-count direction;</code></pre> <table> <thead> <tr> <th>值</th> <th>描述</th> </tr> </thead> <tbody> <tr> <td>name</td> <td>设置动画的名称</td> </tr> <tr> <td>duration</td> <td>设置动画的持续时间</td> </tr> <tr> <td>timing-function</td> <td>设置动画效果的速率(如下)</td> </tr> <tr> <td>delay</td> <td>设置动画的开始时间(延时执行)</td> </tr> <tr> <td>iteration-count</td> <td>设置动画循环的次数,infinite为无限次数的循环</td> </tr> <tr> <td>direction</td> <td>设置动画播放的方向(如下)</td> </tr> <tr> <td>animation-play-state</td> <td>控制动画的播放状态:running代表播放,而paused代表停止播放</td> </tr> </tbody> </table> <table> <thead> <tr> <th>timing-function值</th> <th>描述</th> </tr> </thead> <tbody> <tr> <td>ease</td> <td>逐渐变慢(默认)</td> </tr> <tr> <td>linear</td> <td>匀速</td> </tr> <tr> <td>ease-in</td> <td>加速</td> </tr> <tr> <td>ease-out</td> <td>减速</td> </tr> <tr> <td>ease-in-out</td> <td>先加速后减速</td> </tr> </tbody> </table> <table> <thead> <tr> <th>direction值</th> <th>描述</th> </tr> </thead> <tbody> <tr> <td>normal</td> <td>默认值为normal表示向前播放</td> </tr> <tr> <td>alternate</td> <td>动画播放在第偶数次向前播放,第奇数次向反方向播放</td> </tr> </tbody> </table> <h4 id="%E5%88%87%E6%8D%A2%E8%83%8C%E6%99%AF%E9%A2%9C%E8%89%B2">切换背景颜色</h4> <pre><code class="language-css">.animation { width: 300px; height: 300px; background-color: red; animation: anima 5s linear 5s infinite; } .animation:hover { animation-play-state: paused; } @keyframes anima { 0% { background-color: red; } 50% { background-color: green; } 100% { background-color: blueviolet; } }</code></pre> <p></p> <h3 id="1.15%C2%A0%E8%AE%BE%E7%BD%AEmeta%E6%A0%87%E7%AD%BE">1.15 设置meta标签</h3> <p>使用设备的宽度作为视图宽度并禁止初始的缩放。在<code><head></code>标签里加入这个meta标签</p> <pre><code class="language-css"><meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1, user-scalable=no"></code></pre> <pre><code class="language-css">@media screen and (max-width: 768px) { /* 设备小于768px加载样式 */ body{ background-color: red; } } @media screen and (max-width: 992px) and (min-width: 768px) { /* 设备小于768px但小于992px加载样式 */ body{ background-color: pink; } } @media screen and (min-width: 992px) { /* 设备大于992px加载样式 */ body{ background-color: green; } }</code></pre> <h3 id="1.16%C2%A0%E9%9B%AA%E7%A2%A7%E5%9B%BE">1.16 雪碧图</h3> <p>CSS Sprite也叫CSS精灵图、CSS雪碧图,是一种网页图片应用处理方式。它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去</p> <ol> <li> <p>减少图片的字节</p> </li> <li> <p>减少网页的http请求,从而大大的提高页面的性能</p> </li> </ol> <p>原理</p> <ol> <li> <p>通过background-image引入背景图片</p> </li> <li> <p>通过background-position把背景图片移动到自己需要的位置</p> </li> </ol> <p></p> <h3 id="1.17%C2%A0%E5%AD%97%E4%BD%93%E5%9B%BE%E6%A0%87">1.17 字体图标</h3> <p>我们会经常用到一些图标。但是我们在使用这些图标时,往往会遇到失真的情况,而且图片数量很多的话,页面加载就越慢。所以,我们可以使用字体图标的方式来显示图标,既解决了失真的问题,也解决了图片占用资源的问题</p> <ol> <li> <p>轻量性:加载速度快,减少http请求</p> </li> <li> <p>灵活性:可以利用CSS设置大小颜色等</p> </li> <li> <p>兼容性:网页字体支持所有现代浏览器,包括IE低版本</p> </li> </ol> <p></p> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1735311172279787520"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(html5,前端)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1773504513622212608.htm" title="大前端-postcss安装使用指南" target="_blank">大前端-postcss安装使用指南</a> <span class="text-muted">黑夜照亮前行的路</span> <a class="tag" taget="_blank" href="/search/postcss/1.htm">postcss</a> <div>PostCSS是一款强大的CSS处理工具,可以用来自动添加浏览器前缀、代码合并、代码压缩等,提升代码的可读性,并支持使用最新的CSS语法。以下是一份简化的PostCSS安装使用指南:一、安装PostCSS在你的项目目录中,通过npm(NodePackageManager)来安装PostCSS。打开命令行窗口,输入以下命令:bash复制代码npminstallpostcss--save-dev这将把</div> </li> <li><a href="/article/1773504261557125120.htm" title="谷歌浏览器驱动Chromedriver(114-120版本)文件以及驱动下载教程" target="_blank">谷歌浏览器驱动Chromedriver(114-120版本)文件以及驱动下载教程</a> <span class="text-muted">pigerr杨</span> <a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/chrome/1.htm">chrome</a><a class="tag" taget="_blank" href="/search/drivers/1.htm">drivers</a> <div>ChromeDriver官方网站GitHub||GoogleChromeLabs/chrome-for-testingChromeDriver113-125_JSONChromeforTestingavailability123-125zip白月黑羽Python基础|进阶|Qt图形界面|Django|自动化测试|性能测试|JS语言|JS前端|原理与安装</div> </li> <li><a href="/article/1773501994674225152.htm" title="虚拟 DOM 的优缺点有哪些" target="_blank">虚拟 DOM 的优缺点有哪些</a> <span class="text-muted">咕噜签名分发</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>虚拟DOM(VirtualDOM)技术作为现代前端开发中的重要组成部分,已经成为了众多流行前端框架的核心特性。它的引入为前端开发带来了诸多优势,同时也需要我们认真思考其潜在的考量。下面简单的介绍一下虚拟DOM技术的优势与缺点,深入探讨其在实际应用中的影响。提升性能虚拟DOM的最大优势之一是提升页面性能。通过比较前后两次虚拟DOM树的差异,最小化实际DOM操作,从而减少页面重渲染时的性能消耗。这种优</div> </li> <li><a href="/article/1773495574226599936.htm" title="3、JavaWeb-Ajax/Axios-前端工程化-Element" target="_blank">3、JavaWeb-Ajax/Axios-前端工程化-Element</a> <span class="text-muted">所谓远行Misnearch</span> <a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/JavaWeb/1.htm">JavaWeb</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/ajax/1.htm">ajax</a><a class="tag" taget="_blank" href="/search/elementui/1.htm">elementui</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E6%A1%86%E6%9E%B6/1.htm">前端框架</a> <div>P34Ajax介绍Ajax:AsynchroousJavaScriptAndXML,异步的JS和XMLJS网页动作,XML一种标记语言,存储数据,作用:数据交换:通过Ajax给服务器发送请求,并获取服务器响应的数据异步交互:在不重新加载整个页面的情况下,与服务器交换数据并实现更新部分网页的技术,例如:搜索联想、用户名是否可用的校验等等。同步与异步:同步:服务器在处理中客户端要处于等待状态,输入域名</div> </li> <li><a href="/article/1773382031552610304.htm" title="java实体中返回前端的double类型四舍五入(格式化)" target="_blank">java实体中返回前端的double类型四舍五入(格式化)</a> <span class="text-muted">婲落ヽ紅顏誶</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>根据业务,需要通过后端给前端返回部分double类型的数值,一般需要保留两位小数,使用jackson转换对象packagecom.ruoyi.common.core.config;importcom.fasterxml.jackson.core.JsonGenerator;importcom.fasterxml.jackson.databind.JsonSerializer;importcom.f</div> </li> <li><a href="/article/1773360885226602496.htm" title="Django forms组件" target="_blank">Django forms组件</a> <span class="text-muted">在飞行-米龙</span> <a class="tag" taget="_blank" href="/search/Django/1.htm">Django</a><a class="tag" taget="_blank" href="/search/django/1.htm">django</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>【一】引入【1】实现登陆验证功能(1)需求分析登陆验证需要前后端交互,采用form表单提交数据对数据进行校验用户名必须以英文大写字母开头密码必须大于三位数反馈给用户错误的信息除了反馈错误的信息还有保留原始输入内容(2)后端代码使用user_info_dict字典每次刷新存储存储前端发送的信息存储后端进行验证的信息defhome(request):#每次后刷新这个信息字典user_info_dict</div> </li> <li><a href="/article/1773308900838277120.htm" title="Web前端Html的表单" target="_blank">Web前端Html的表单</a> <span class="text-muted">任家伟</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a> <div>表单的关键字:form标签表示一个表单区域action=“后端地址”method=“提交数据方式:get/post”input单行输入框type=“text”文本name=“定义名称名字自定义”向后端提交的键readonly=“readonly”只读,不可修改,但是可以提交disabled=“disabled”禁用组件不可修改,不能提交type=“password”密码框type=“radio”单</div> </li> <li><a href="/article/1773279695408791552.htm" title="Thinkphp - 详细实现网站系统登录功能,附带 Mysql 数据库设置、Web 前端展示界面、信息校验等(详细代码,即设计过程)" target="_blank">Thinkphp - 详细实现网站系统登录功能,附带 Mysql 数据库设置、Web 前端展示界面、信息校验等(详细代码,即设计过程)</a> <span class="text-muted">王佳斌</span> <a class="tag" taget="_blank" href="/search/%2B/1.htm">+</a><a class="tag" taget="_blank" href="/search/Thinkphp/1.htm">Thinkphp</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>前言登录功能,是我们几乎开发每个系统都必须的模块。登录功能设计思路,主要包括几个方面。用户输入网址展示登录页面用户输入用户名,密码等点击登录进行信息校验校验通过之后,记录用户登录信息,跳转指定页面用户校验失败,提示失败信息页面目录具体功能实现为了快速搭建可用、美观的页面,我们采用一个比较成熟的前端框架Bootstrap。下面我们到Bootstrap的官网Bootsrap官网下载bootstrap。</div> </li> <li><a href="/article/1772795036136701952.htm" title="程序员开发技术整理" target="_blank">程序员开发技术整理</a> <span class="text-muted">laizhixue</span> <a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E6%A1%86%E6%9E%B6/1.htm">前端框架</a> <div>前端技术:vue-前端框架element-前端框架bootstrap-前端框架echarts-图标组件C#后端技术:webservice:soap架构:简单的通信协议,用于服务通信ORM框架:对象关系映射,如EF:对象实体模型,是ado.net中的应用技术soap服务通讯:xml通讯ado.net:OAuth2:登录授权认证:Token认证:JWT:jsonwebtokenJava后端技术:便捷工</div> </li> <li><a href="/article/1772773132000624640.htm" title="【前端学习——js篇】7.函数缓存" target="_blank">【前端学习——js篇】7.函数缓存</a> <span class="text-muted">笔下无竹墨下有鱼</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E5%AD%A6%E4%B9%A0/1.htm">前端学习</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a> <div>具体见:https://github.com/febobo/web-interview7.函数缓存函数缓存,就是将函数运算过的结果进行缓存本质上就是用空间(缓存存储)换时间(计算过程)常用于缓存数据计算结果和缓存对象。其实现主要通过闭包、柯里化和高阶函数。下面主要介绍下柯里化:①柯里化柯里化(currying)是一种函数式编程的概念,指的是将一个带有多个参数的函数转换成一系列只接受一个参数的函数的</div> </li> <li><a href="/article/1772673815097180160.htm" title="Websocket服务监听收发消息" target="_blank">Websocket服务监听收发消息</a> <span class="text-muted">beiback</span> <a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8%E9%97%AE%E9%A2%98/1.htm">服务器问题</a><a class="tag" taget="_blank" href="/search/websocket/1.htm">websocket</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE/1.htm">网络协议</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a> <div>目录1.pom依赖坐标2.项目配置端口和项目包名2.创建处理器3.注册处理器4.前端页面1.pom依赖坐标org.springframework.bootspring-boot-starter-websocket2.项目配置端口和项目包名application.propertiesserver.port=8088//路径规范:为应用的所有servlet提供一个统一的前缀,使URL结构更加清晰和一致</div> </li> <li><a href="/article/1772673816238030848.htm" title="Netty服务器结合WebSocke协议监听和接收数据" target="_blank">Netty服务器结合WebSocke协议监听和接收数据</a> <span class="text-muted">beiback</span> <a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8%E9%97%AE%E9%A2%98/1.htm">服务器问题</a><a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/netty/1.htm">netty</a> <div>目录1.pom依赖2.配置属性3.创建netty服务器4.建立监听和响应5.创建启动器6.前端static下页面7.前端js8.注意异常问题9.创建netty服务器--使用守护线程1.pom依赖io.nettynetty-all4.1.86.Final2.配置属性application.properties#启动端口server.port=8088server.servlet.context-pa</div> </li> <li><a href="/article/1772654174425645056.htm" title="基于SSM+Vue企业销售培训系统 企业人才培训系统 企业课程培训管理系统 企业文化培训班系统Java" target="_blank">基于SSM+Vue企业销售培训系统 企业人才培训系统 企业课程培训管理系统 企业文化培训班系统Java</a> <span class="text-muted">计算机程序老哥</span> <div>作者主页:计算机毕业设计老哥有问题可以主页问我一、开发介绍1.1开发环境开发语言:Java数据库:MySQL系统架构:B/S后端:SSM(Spring+SpringMVC+Mybatis)前端:Vue工具:IDEA或者Eclipse,JDK1.8,Maven二、系统介绍2.1图片展示注册登录页面:登陆.png前端页面功能:首页、培训班、在线学习、企业文化、交流论坛、试卷列表、系统公告、留言反馈、个</div> </li> <li><a href="/article/1772631263593693184.htm" title="javascript实现SM2加密解密" target="_blank">javascript实现SM2加密解密</a> <span class="text-muted">人生在勤,不索何获</span> <a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a> <div>前提JavaWeb环境前端代码window.sm2=function(t){functioni(e){if(r[e])returnr[e].exports;varn=r[e]={i:e,l:!1,exports:{}};returnt[e].call(n.exports,n,n.exports,i),n.l=!0,n.exports}varr={};returni.m=t,i.c=r,i.d=fu</div> </li> <li><a href="/article/1772541266194661376.htm" title="前端埋点解决方案" target="_blank">前端埋点解决方案</a> <span class="text-muted">zhu_zhu_xia</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>一、前言:基于神策数据的前端埋点解决方案JavaScript快速使用·神策分析使用手册[预览版]二、sdkgitlab下载地址https://github.com/sensorsdata/sa-sdk-javascript/releases或者npm安装npmisa-sdk-javascript三、入门3.1接入sdk以及配置(version1.17.2),入口文件接入sdk以及添加配置(func</div> </li> <li><a href="/article/1772399131164213248.htm" title="如何提出令人爱回答的好问题?" target="_blank">如何提出令人爱回答的好问题?</a> <span class="text-muted">兮若耶</span> <div>我们经常会遇到这样的问题,如我适合做什么?这个名词怎么解释?大部分人面对这样的问题时,要么答非所问,要么无从下手。现在的很多事物都是速成的,只是好的问题并没有那么容易被提出来。而提不好的问题,可能会拿不到想要的信息等等。所以提出一个好问题很重要。01提问的功能我们参加各种聚会、会议时,能听到很多的比喻和新观点,而这些是在书上和网上找不到的。这些新的有用的东西,都在前端被实践着,暂时来不及把知识系统</div> </li> <li><a href="/article/1772378002940821504.htm" title="谈谈对前端性能监控的理解和实践" target="_blank">谈谈对前端性能监控的理解和实践</a> <span class="text-muted">Layla_c</span> <a class="tag" taget="_blank" href="/search/web/1.htm">web</a><a class="tag" taget="_blank" href="/search/jave/1.htm">jave</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>一、谈谈对前端性能监控的理解和实践前端性能监控是确保网页或应用高效、稳定运行的关键环节,它涉及对前端页面加载速度、资源消耗、错误率等指标的实时监控和预警。通过前端性能监控,开发者和运维团队能够及时发现并解决性能瓶颈,从而提升用户体验和系统稳定性。理解前端性能监控,首先要明确其重要性。在移动互联网时代,用户对网页和应用的响应速度有着极高的要求。如果页面加载缓慢或出现卡顿,用户可能会选择离开,这对企业</div> </li> <li><a href="/article/1772365540988354560.htm" title="mineadmin使用docker启动方式" target="_blank">mineadmin使用docker启动方式</a> <span class="text-muted">qq_38812523</span> <a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a> <div>找个目录,git下来mineadmin代码,在根目录,创建文件名docker-compose.yml然后复制下面代码version:'3'services:#首先下载前端,https://gitee.com/mineadmin/mineadmin-vue#在后端根目录建立mine-ui目录,把前端文件复制过来。#容器内访问宿主机的地址用:host.docker.internal#宿主机也可以在ho</div> </li> <li><a href="/article/1772335078576291840.htm" title="为什么需要使用版本控制工具(如Git)?它如何帮助管理前端开发项目?" target="_blank">为什么需要使用版本控制工具(如Git)?它如何帮助管理前端开发项目?</a> <span class="text-muted">智伴科技</span> <a class="tag" taget="_blank" href="/search/git/1.htm">git</a> <div>版本控制工具(如Git)在前端开发项目中扮演着重要的角色,主要有以下几方面的作用:1.**版本管理**:版本控制工具可以帮助开发团队管理项目的不同版本,记录每次代码变动的历史记录,方便追踪和回溯。开发人员可以通过版本控制工具轻松地查看、对比和恢复以前的版本。2.**协同合作**:多人开发同一个项目时,版本控制工具可以协助团队成员协同工作,避免代码冲突、重复工作和混乱。开发人员可以通过版本控制工具共</div> </li> <li><a href="/article/1772307893329133568.htm" title="低代码与前端开发架构:重塑软件开发的未来" target="_blank">低代码与前端开发架构:重塑软件开发的未来</a> <span class="text-muted">快乐非自愿</span> <a class="tag" taget="_blank" href="/search/%E4%BD%8E%E4%BB%A3%E7%A0%81/1.htm">低代码</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>随着技术的不断进步和数字化转型的深入,软件开发领域正经历着一场革命性的变革。在这场变革中,低代码开发平台和前端开发架构扮演着越来越重要的角色。本文将探讨低代码与前端开发架构之间的关系,并分析它们如何共同推动软件开发的创新与发展。低代码开发平台的崛起低代码开发平台(Low-CodeDevelopmentPlatform,LCDP)是一种新型的软件开发方式,它允许开发者通过图形化界面、预构建的模块和模</div> </li> <li><a href="/article/1772083971480420352.htm" title="接口测试之测试原则、测试用例、测试流程......" target="_blank">接口测试之测试原则、测试用例、测试流程......</a> <span class="text-muted">程序员老鹰</span> <a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7/1.htm">测试工具</a><a class="tag" taget="_blank" href="/search/%E5%8A%9F%E8%83%BD%E6%B5%8B%E8%AF%95/1.htm">功能测试</a><a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95%E7%94%A8%E4%BE%8B/1.htm">测试用例</a><a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95%E8%A6%86%E7%9B%96%E7%8E%87/1.htm">测试覆盖率</a><a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F%E5%AE%89%E5%85%A8/1.htm">系统安全</a> <div>一、接口的介绍软件测试中,常说的接口有两种:图形用户接口(GUI,人与程序的接口)、应用程序编程接口(API)。接口(API)是系统与系统之间,模块与模块之间或者服务与服务之间相互调用的入口。它的本质:其实就是一种约定,在开发前期,我们约定接口会接收什么数据;在处理完成后,它又会返回什么数据。开发岗位分为前端和后端,他们相互配合完成工作,会协商接口的定义方法。一般后端定义接口,前端调用接口。前后端</div> </li> <li><a href="/article/1772071635629703168.htm" title="html5 websocket 手机,websocket在h5上正常,编译到手机上就连不上" target="_blank">html5 websocket 手机,websocket在h5上正常,编译到手机上就连不上</a> <span class="text-muted">猫研所</span> <a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a><a class="tag" taget="_blank" href="/search/websocket/1.htm">websocket</a><a class="tag" taget="_blank" href="/search/%E6%89%8B%E6%9C%BA/1.htm">手机</a> <div>对接的网易云信微信IMSDK,在h5上能建立起连接,在手机端不行,截图是h5的链接,下面是app的日志:20:10:34.247连接websocket参数"wss://wlnimsc0.netease.im/socket.io/1/websocket/378166b5-af18-4372-a0a5-05aee5a1d882"atuni-app:///sdk/yunxin-wx/vendors/NI</div> </li> <li><a href="/article/1772015996245180416.htm" title="【前端】CommonJS和ES Module" target="_blank">【前端】CommonJS和ES Module</a> <span class="text-muted">Lucky小维</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>区别语法差异:CommonJS:使用require()导入模块,使用module.exports或exports导出模块。ESModule:使用import导入模块,使用export导出模块。编译时vs运行时:CommonJS是在运行时加载模块,模块代码是动态执行的。ESModule是在编译时静态解析模块依赖关系,以便更好地进行优化和静态分析。异步加载:CommonJS不支持异步加载模块,只能同步</div> </li> <li><a href="/article/1771980751349284864.htm" title="基于python+vue高校毕业生离校管理系统flask-django-php-nodejs" target="_blank">基于python+vue高校毕业生离校管理系统flask-django-php-nodejs</a> <span class="text-muted">QQ511008285</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/flask/1.htm">flask</a><a class="tag" taget="_blank" href="/search/django/1.htm">django</a><a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a> <div>课题主要采用Uni-weixin、django架构技术,前端以小程序页面呈现给用户,结合后台java语言使页面更加完善,后台使用MySQL数据库进行数据存储。微信小程序主要包括学生、教务人员、宿管员、图书管理员、财务人员、离校申请、物流信息、钥匙归还、图片归还、欠费信息、催缴信息等功能,从而实现智能化的管理方式,提高工作效率。关键字:高校毕业生离校管理系统;django框架;MySQL数据库语言:</div> </li> <li><a href="/article/1771974961003560960.htm" title="Vue项目使用process.env关键字及Vue.config.js配置解决前端跨域问题" target="_blank">Vue项目使用process.env关键字及Vue.config.js配置解决前端跨域问题</a> <span class="text-muted">百思不得小李</span> <a class="tag" taget="_blank" href="/search/JS%E5%AE%9E%E6%88%98%E8%AE%B0%E5%BD%95/1.htm">JS实战记录</a><a class="tag" taget="_blank" href="/search/vue2%E5%AE%9E%E6%88%98%E8%AE%B0%E5%BD%95/1.htm">vue2实战记录</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a> <div>1.process.env是Node.js中的一个环境1.打开命令行查看环境:2.process.env与VueCLI项目VueCli有以下三种运行模式development模式用于vue-cli-serviceservetest模式用于vue-cli-servicetest:unitproduction模式用于vue-cli-servicebuild和vue-cli-servicetest:e2</div> </li> <li><a href="/article/1771963631177629696.htm" title="浅谈前端路由history和hash的理解" target="_blank">浅谈前端路由history和hash的理解</a> <span class="text-muted">怂怂敲代码</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%93%88%E5%B8%8C%E7%AE%97%E6%B3%95/1.htm">哈希算法</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a> <div>hash和history在前端面试中是很常考的一道题目,可能很多人对于history和hash的理解差异性就是,他们两者的url字段一个没有#号一个有#号,但是有没有想过为什么这样呢,有无#号又有什么差异呢,这篇文章谈一谈我对前端路由history和hash的理解。hash和history都可以用于前后端分离项目,且两者有各自的特点和各自的使用场景。一、前端路由原理1、SPASPA,即单页面应用(</div> </li> <li><a href="/article/1771630580518158336.htm" title="Yarn 管理的前端项目转换为使用 npm" target="_blank">Yarn 管理的前端项目转换为使用 npm</a> <span class="text-muted">577wq</span> <a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/npm/1.htm">npm</a><a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a> <div>如果你想将一个使用Yarn管理的前端项目转换为使用npm,你需要执行一些步骤来确保成功迁移。以下是一种可能的方法:步骤:备份项目:在执行任何更改之前,确保你对项目进行了备份。这样可以防止意外的数据丢失。删除yarn.lock文件:在项目根目录中,删除yarn.lock文件。这个文件记录了使用Yarn安装的确切的依赖版本信息。修改package.json文件:打开项目的package.json文件,</div> </li> <li><a href="/article/1771628691311362048.htm" title="accessToken" target="_blank">accessToken</a> <span class="text-muted">星梦清河</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/1.htm">经验分享</a><a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a> <div>1、介绍accessToken,通常是用于身份验证和授权的令牌,它可以用于前端和后端,具体使用方式取决于应用程序的架构和需求。前端应用accessToken通常用于向后端API发送请求时进行身份验证和授权。(1)前端应用程序会在用户登录成功后获取accessToken;(2)并将accessToken存储在本地;(3)然后在每次请求API时,将accessToken作为请求头或参数发送给后端;(4</div> </li> <li><a href="/article/1771565373594861568.htm" title="python社区垃圾分类管理平台的设计与实现flask-django-php-nodejs" target="_blank">python社区垃圾分类管理平台的设计与实现flask-django-php-nodejs</a> <span class="text-muted">QQ_511008285</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/flask/1.htm">flask</a><a class="tag" taget="_blank" href="/search/django/1.htm">django</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a> <div>近些年来,随着科技的飞速发展,互联网的普及逐渐延伸到各行各业中,给人们生活带来了十分的便利,社区垃圾分类管理平台利用计算机网络实现信息化管理,使整个社区垃圾分类管理的发展和服务水平有显著提升。语言:Python框架:django/flask软件版本:python3.7.7数据库:mysql数据库工具:Navicat前端框架:vue.js通过比较两个不同因素的框架,可以看出Flask和Django不</div> </li> <li><a href="/article/1770965590861742080.htm" title="springboot项目学习-瑞吉外卖(1)" target="_blank">springboot项目学习-瑞吉外卖(1)</a> <span class="text-muted">两仪式quq</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%91%9E%E5%90%89%E5%A4%96%E5%8D%96/1.htm">瑞吉外卖</a> <div>第一天任务如下:建立基本架构完成登录、退出功能注意:本博客没有使用网上教程里的mybatis-plus,使用的是mybatis;数据库连接池也没有使用教程里的druid,使用的是spring自带的连接池基本架构common包:存放的通用类R,用来给前端返回Json格式的数据config包:存放配置类,在今天的任务中主要解决静态资源路径映射问题controller包entity包:存放实体类mapp</div> </li> <li><a href="/article/59.htm" title="html" target="_blank">html</a> <span class="text-muted">周华华</span> <a class="tag" taget="_blank" href="/search/html/1.htm">html</a> <div>js 1,数组的排列 var arr=[1,4,234,43,52,]; for(var x=0;x<arr.length;x++){    for(var y=x-1;y<arr.length;y++){      if(arr[x]<arr[y]){     &</div> </li> <li><a href="/article/186.htm" title="【Struts2 四】Struts2拦截器" target="_blank">【Struts2 四】Struts2拦截器</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/struts2%E6%8B%A6%E6%88%AA%E5%99%A8/1.htm">struts2拦截器</a> <div>Struts2框架是基于拦截器实现的,可以对某个Action进行拦截,然后某些逻辑处理,拦截器相当于AOP里面的环绕通知,即在Action方法的执行之前和之后根据需要添加相应的逻辑。事实上,即使struts.xml没有任何关于拦截器的配置,Struts2也会为我们添加一组默认的拦截器,最常见的是,请求参数自动绑定到Action对应的字段上。   Struts2中自定义拦截器的步骤是:</div> </li> <li><a href="/article/313.htm" title="make:cc 命令未找到解决方法" target="_blank">make:cc 命令未找到解决方法</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E5%91%BD%E4%BB%A4%E6%9C%AA%E7%9F%A5/1.htm">命令未知</a><a class="tag" taget="_blank" href="/search/make+cc/1.htm">make cc</a> <div>安装rz sz程序时,报下面错误:   [root@slave2 src]# make posix cc   -O -DPOSIX -DMD=2 rz.c -o rz make: cc:命令未找到 make: *** [posix] 错误 127   系统:centos 6.6 环境:虚拟机   错误原因:系统未安装gcc,这个是由于在安</div> </li> <li><a href="/article/440.htm" title="Oracle之Job应用" target="_blank">Oracle之Job应用</a> <span class="text-muted">周凡杨</span> <a class="tag" taget="_blank" href="/search/oracle+job/1.htm">oracle job</a> <div> 最近写服务,服务上线后,需要写一个定时执行的SQL脚本,清理并更新数据库表里的数据,应用到了Oracle 的 Job的相关知识。在此总结一下。   一:查看相关job信息    1、相关视图  dba_jobs  all_jobs  user_jobs  dba_jobs_running 包含正在运行</div> </li> <li><a href="/article/567.htm" title="多线程机制" target="_blank">多线程机制</a> <span class="text-muted">朱辉辉33</span> <a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a> <div>转至http://blog.csdn.net/lj70024/archive/2010/04/06/5455790.aspx 程序、进程和线程: 程序是一段静态的代码,它是应用程序执行的蓝本。进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程。线程是比进程更小的单位,一个进程执行过程中可以产生多个线程,每个线程有自身的</div> </li> <li><a href="/article/694.htm" title="web报表工具FineReport使用中遇到的常见报错及解决办法(一)" target="_blank">web报表工具FineReport使用中遇到的常见报错及解决办法(一)</a> <span class="text-muted">老A不折腾</span> <a class="tag" taget="_blank" href="/search/web%E6%8A%A5%E8%A1%A8/1.htm">web报表</a><a class="tag" taget="_blank" href="/search/finereport/1.htm">finereport</a><a class="tag" taget="_blank" href="/search/java%E6%8A%A5%E8%A1%A8/1.htm">java报表</a><a class="tag" taget="_blank" href="/search/%E6%8A%A5%E8%A1%A8%E5%B7%A5%E5%85%B7/1.htm">报表工具</a> <div>FineReport使用中遇到的常见报错及解决办法(一) 这里写点抛砖引玉,希望大家能把自己整理的问题及解决方法晾出来,Mark一下,利人利己。   出现问题先搜一下文档上有没有,再看看度娘有没有,再看看论坛有没有。有报错要看日志。下面简单罗列下常见的问题,大多文档上都有提到的。   1、address pool is full: 含义:地址池满,连接数超过并发数上</div> </li> <li><a href="/article/821.htm" title="mysql rpm安装后没有my.cnf" target="_blank">mysql rpm安装后没有my.cnf</a> <span class="text-muted">林鹤霄</span> <a class="tag" taget="_blank" href="/search/%E6%B2%A1%E6%9C%89my.cnf/1.htm">没有my.cnf</a> <div>Linux下用rpm包安装的MySQL是不会安装/etc/my.cnf文件的, 至于为什么没有这个文件而MySQL却也能正常启动和作用,在这儿有两个说法, 第一种说法,my.cnf只是MySQL启动时的一个参数文件,可以没有它,这时MySQL会用内置的默认参数启动, 第二种说法,MySQL在启动时自动使用/usr/share/mysql目录下的my-medium.cnf文件,这种说法仅限于r</div> </li> <li><a href="/article/948.htm" title="Kindle Fire HDX root并安装谷歌服务框架之后仍无法登陆谷歌账号的问题" target="_blank">Kindle Fire HDX root并安装谷歌服务框架之后仍无法登陆谷歌账号的问题</a> <span class="text-muted">aigo</span> <a class="tag" taget="_blank" href="/search/root/1.htm">root</a> <div>原文:http://kindlefireforkid.com/how-to-setup-a-google-account-on-amazon-fire-tablet/   Step 4: Run ADB command from your PC   On the PC, you need install Amazon Fire ADB driver and instal</div> </li> <li><a href="/article/1075.htm" title="javascript 中var提升的典型实例" target="_blank">javascript 中var提升的典型实例</a> <span class="text-muted">alxw4616</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a> <div>// 刚刚在书上看到的一个小问题,很有意思.大家一起思考下吧 myname = 'global'; var fn = function () { console.log(myname); // undefined var myname = 'local'; console.log(myname); // local }; fn() // 上述代码实际上等同于以下代码 m</div> </li> <li><a href="/article/1202.htm" title="定时器和获取时间的使用" target="_blank">定时器和获取时间的使用</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/%E6%97%B6%E9%97%B4%E7%9A%84%E8%BD%AC%E6%8D%A2/1.htm">时间的转换</a><a class="tag" taget="_blank" href="/search/%E5%AE%9A%E6%97%B6%E5%99%A8/1.htm">定时器</a> <div>定时器:定时创建任务在游戏设计的时候用的比较多   Timer();定时器 TImerTask();Timer的子类  由 Timer 安排为一次执行或重复执行的任务。       定时器类Timer在java.util包中。使用时,先实例化,然后使用实例的schedule(TimerTask task, long delay)方法,设定</div> </li> <li><a href="/article/1329.htm" title="JDK1.5 Queue" target="_blank">JDK1.5 Queue</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/thread/1.htm">thread</a><a class="tag" taget="_blank" href="/search/java%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">java多线程</a><a class="tag" taget="_blank" href="/search/Queue/1.htm">Queue</a> <div>JDK1.5 Queue LinkedList: LinkedList不是同步的。如果多个线程同时访问列表,而其中至少一个线程从结构上修改了该列表,则它必须 保持外部同步。(结构修改指添加或删除一个或多个元素的任何操作;仅设置元素的值不是结构修改。)这一般通过对自然封装该列表的对象进行同步操作来完成。如果不存在这样的对象,则应该使用 Collections.synchronizedList 方</div> </li> <li><a href="/article/1456.htm" title="http认证原理和https" target="_blank">http认证原理和https</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/http/1.htm">http</a><a class="tag" taget="_blank" href="/search/https/1.htm">https</a> <div>一.基础介绍         在URL前加https://前缀表明是用SSL加密的。 你的电脑与服务器之间收发的信息传输将更加安全。         Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。 http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后</div> </li> <li><a href="/article/1583.htm" title="【Java范型五】范型继承" target="_blank">【Java范型五】范型继承</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>定义如下一个抽象的范型类,其中定义了两个范型参数,T1,T2   package com.tom.lang.generics; public abstract class SuperGenerics<T1, T2> { private T1 t1; private T2 t2; public abstract void doIt(T</div> </li> <li><a href="/article/1710.htm" title="【Nginx六】nginx.conf常用指令(Directive)" target="_blank">【Nginx六】nginx.conf常用指令(Directive)</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/Directive/1.htm">Directive</a> <div>1. worker_processes    8; 表示Nginx将启动8个工作者进程,通过ps -ef|grep nginx,会发现有8个Nginx Worker Process在运行   nobody 53879 118449 0 Apr22 ? 00:26:15 nginx: worker process </div> </li> <li><a href="/article/1837.htm" title="lua 遍历Header头部" target="_blank">lua 遍历Header头部</a> <span class="text-muted">ronin47</span> <a class="tag" taget="_blank" href="/search/lua+header+%E9%81%8D%E5%8E%86%E3%80%80/1.htm">lua header 遍历 </a> <div> local headers = ngx.req.get_headers()   ngx.say("headers begin", "<br/>")   ngx.say("Host : ", he</div> </li> <li><a href="/article/1964.htm" title="java-32.通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小(两数组的差最小)。" target="_blank">java-32.通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小(两数组的差最小)。</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div> import java.util.Arrays; public class MinSumASumB { /** * Q32.有两个序列a,b,大小都为n,序列元素的值任意整数,无序. * * 要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小。 * 例如: * int[] a = {100,99,98,1,2,3</div> </li> <li><a href="/article/2091.htm" title="redis" target="_blank">redis</a> <span class="text-muted">开窍的石头</span> <a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a> <div>在redis的redis.conf配置文件中找到# requirepass foobared 把它替换成requirepass 12356789 后边的12356789就是你的密码 打开redis客户端输入config get requirepass 返回 redis 127.0.0.1:6379> config get requirepass 1) "require</div> </li> <li><a href="/article/2218.htm" title="[JAVA图像与图形]现有的GPU架构支持JAVA语言吗?" target="_blank">[JAVA图像与图形]现有的GPU架构支持JAVA语言吗?</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/java%E8%AF%AD%E8%A8%80/1.htm">java语言</a> <div>       无论是opengl还是cuda,都是建立在C语言体系架构基础上的,在未来,图像图形处理业务快速发展,相关领域市场不断扩大的情况下,我们JAVA语言系统怎么从这么庞大,且还在不断扩大的市场上分到一块蛋糕,是值得每个JAVAER认真思考和行动的事情        </div> </li> <li><a href="/article/2345.htm" title="安装ubuntu14.04登录后花屏了怎么办" target="_blank">安装ubuntu14.04登录后花屏了怎么办</a> <span class="text-muted">cuiyadll</span> <a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a> <div>这个情况,一般属于显卡驱动问题。 可以先尝试安装显卡的官方闭源驱动。 按键盘三个键:CTRL + ALT  +  F1 进入终端,输入用户名和密码登录终端: 安装amd的显卡驱动 sudo  apt-get  install  fglrx 安装nvidia显卡驱动 sudo  ap</div> </li> <li><a href="/article/2472.htm" title="SSL 与 数字证书 的基本概念和工作原理" target="_blank">SSL 与 数字证书 的基本概念和工作原理</a> <span class="text-muted">darrenzhu</span> <a class="tag" taget="_blank" href="/search/%E5%8A%A0%E5%AF%86/1.htm">加密</a><a class="tag" taget="_blank" href="/search/ssl/1.htm">ssl</a><a class="tag" taget="_blank" href="/search/%E8%AF%81%E4%B9%A6/1.htm">证书</a><a class="tag" taget="_blank" href="/search/%E5%AF%86%E9%92%A5/1.htm">密钥</a><a class="tag" taget="_blank" href="/search/%E7%AD%BE%E5%90%8D/1.htm">签名</a> <div>SSL 与 数字证书 的基本概念和工作原理 http://www.linuxde.net/2012/03/8301.html SSL握手协议的目的是或最终结果是让客户端和服务器拥有一个共同的密钥,握手协议本身是基于非对称加密机制的,之后就使用共同的密钥基于对称加密机制进行信息交换。 http://www.ibm.com/developerworks/cn/webspher</div> </li> <li><a href="/article/2599.htm" title="Ubuntu设置ip的步骤" target="_blank">Ubuntu设置ip的步骤</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a> <div>在单位的一台机器完全装了Ubuntu Server,但回家只能在XP上VM一个,装的时候网卡是DHCP的,用ifconfig查了一下ip是192.168.92.128,可以ping通。 转载不是错: Ubuntu命令行修改网络配置方法 /etc/network/interfaces打开后里面可设置DHCP或手动设置静态ip。前面auto eth0,让网卡开机自动挂载. 1. 以D</div> </li> <li><a href="/article/2726.htm" title="php包管理工具推荐" target="_blank">php包管理工具推荐</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/Composer/1.htm">Composer</a> <div>http://www.phpcomposer.com/   Composer是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。 中文文档  入门指南  下载  安装包列表 Composer 中国镜像 </div> </li> <li><a href="/article/2853.htm" title="Gson使用四(TypeAdapter)" target="_blank">Gson使用四(TypeAdapter)</a> <span class="text-muted">eksliang</span> <a class="tag" taget="_blank" href="/search/json/1.htm">json</a><a class="tag" taget="_blank" href="/search/gson/1.htm">gson</a><a class="tag" taget="_blank" href="/search/Gson%E8%87%AA%E5%AE%9A%E4%B9%89%E8%BD%AC%E6%8D%A2%E5%99%A8/1.htm">Gson自定义转换器</a><a class="tag" taget="_blank" href="/search/gsonTypeAdapter/1.htm">gsonTypeAdapter</a> <div>转载请出自出处:http://eksliang.iteye.com/blog/2175595 一.概述        Gson的TypeAapter可以理解成自定义序列化和返序列化 二、应用场景举例        例如我们通常去注册时(那些外国网站),会让我们输入firstName,lastName,但是转到我们都</div> </li> <li><a href="/article/2980.htm" title="JQM控件之Navbar和Tabs" target="_blank">JQM控件之Navbar和Tabs</a> <span class="text-muted">gundumw100</span> <a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a> <div>在JQM中使用导航栏Navbar是简单的。 只需要将data-role="navbar"赋给div即可: <div data-role="navbar"> <ul> <li><a href="#" class="ui-btn-active&qu</div> </li> <li><a href="/article/3107.htm" title="利用归并排序算法对大文件进行排序" target="_blank">利用归并排序算法对大文件进行排序</a> <span class="text-muted">iwindyforest</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BD%92%E5%B9%B6%E6%8E%92%E5%BA%8F/1.htm">归并排序</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%96%87%E4%BB%B6/1.htm">大文件</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E6%B2%BB%E6%B3%95/1.htm">分治法</a><a class="tag" taget="_blank" href="/search/Merge+sort/1.htm">Merge sort</a> <div>  归并排序算法介绍,请参照Wikipeida zh.wikipedia.org/wiki/%E5%BD%92%E5%B9%B6%E6%8E%92%E5%BA%8F 基本思想: 大文件分割成行数相等的两个子文件,递归(归并排序)两个子文件,直到递归到分割成的子文件低于限制行数 低于限制行数的子文件直接排序 两个排序好的子文件归并到父文件 直到最后所有排序好的父文件归并到输入</div> </li> <li><a href="/article/3234.htm" title="iOS UIWebView URL拦截" target="_blank">iOS UIWebView URL拦截</a> <span class="text-muted">啸笑天</span> <a class="tag" taget="_blank" href="/search/UIWebView/1.htm">UIWebView</a> <div>本文译者:candeladiao,原文:URL filtering for UIWebView on the iPhone说明:译者在做app开发时,因为页面的javascript文件比较大导致加载速度很慢,所以想把javascript文件打包在app里,当UIWebView需要加载该脚本时就从app本地读取,但UIWebView并不支持加载本地资源。最后从下文中找到了解决方法,第一次翻译,难免有</div> </li> <li><a href="/article/3361.htm" title="索引的碎片整理SQL语句" target="_blank">索引的碎片整理SQL语句</a> <span class="text-muted">macroli</span> <a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a> <div>SET NOCOUNT ON DECLARE @tablename VARCHAR (128) DECLARE @execstr VARCHAR (255) DECLARE @objectid INT DECLARE @indexid INT DECLARE @frag DECIMAL DECLARE @maxfrag DECIMAL --设置最大允许的碎片数量,超过则对索引进行碎片</div> </li> <li><a href="/article/3488.htm" title="Angularjs同步操作http请求with $promise" target="_blank">Angularjs同步操作http请求with $promise</a> <span class="text-muted">qiaolevip</span> <a class="tag" taget="_blank" href="/search/%E6%AF%8F%E5%A4%A9%E8%BF%9B%E6%AD%A5%E4%B8%80%E7%82%B9%E7%82%B9/1.htm">每天进步一点点</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E6%B0%B8%E6%97%A0%E6%AD%A2%E5%A2%83/1.htm">学习永无止境</a><a class="tag" taget="_blank" href="/search/AngularJS/1.htm">AngularJS</a><a class="tag" taget="_blank" href="/search/%E7%BA%B5%E8%A7%82%E5%8D%83%E8%B1%A1/1.htm">纵观千象</a> <div>// Define a factory app.factory('profilePromise', ['$q', 'AccountService', function($q, AccountService) { var deferred = $q.defer(); AccountService.getProfile().then(function(res) { </div> </li> <li><a href="/article/3615.htm" title="hibernate联合查询问题" target="_blank">hibernate联合查询问题</a> <span class="text-muted">sxj19881213</span> <a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/Hibernate/1.htm">Hibernate</a><a class="tag" taget="_blank" href="/search/HQL/1.htm">HQL</a><a class="tag" taget="_blank" href="/search/%E8%81%94%E5%90%88%E6%9F%A5%E8%AF%A2/1.htm">联合查询</a> <div>最近在用hibernate做项目,遇到了联合查询的问题,以及联合查询中的N+1问题。 针对无外键关联的联合查询,我做了HQL和SQL的实验,希望能帮助到大家。(我使用的版本是hibernate3.3.2)   1 几个常识:  (1)hql中的几种join查询,只有在外键关联、并且作了相应配置时才能使用。  (2)hql的默认查询策略,在进行联合查询时,会产</div> </li> <li><a href="/article/3742.htm" title="struts2.xml" target="_blank">struts2.xml</a> <span class="text-muted">wuai</span> <a class="tag" taget="_blank" href="/search/struts/1.htm">struts</a> <div><?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache</div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>