前端(一):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/1950232190038110208.htm" title="day15|前端框架学习和算法" target="_blank">day15|前端框架学习和算法</a> <span class="text-muted">universe_01</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a> <div>T22括号生成先把所有情况都画出来,然后(在满足什么情况下)把不符合条件的删除。T78子集要画树状图,把思路清晰。可以用暴力法、回溯法和DFS做这个题DFS深度搜索:每个边都走完,再回溯应用:二叉树搜索,图搜索回溯算法=DFS+剪枝T200岛屿数量(非常经典BFS宽度把树状转化成队列形式,lambda匿名函数“一次性的小函数,没有名字”setup语法糖:让代码更简洁好写的语法ref创建:基本类型的</div> </li> <li><a href="/article/1950191208873652224.htm" title="vue element 封装表单" target="_blank">vue element 封装表单</a> <span class="text-muted">影子信息</span> <a class="tag" taget="_blank" href="/search/vue/1.htm">vue</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</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> <div>背景:在前端系统开发中,系统页面涉及到的表单组件比较多,所以进行了简单的封装。封装的包括一些Form表单组件,如下:input输入框、select下拉框、等实现效果:理论知识:表单组件官方链接:点击跳转封装组件:封装组件的思路:不封装element组件,每一个input组件绑定一个form对象,例如官网。简单封装element组件,利用for循环生成form表单的每一项el-form-item。进</div> </li> <li><a href="/article/1950191165710069760.htm" title="前端面试每日 3+1 —— 第39天" target="_blank">前端面试每日 3+1 —— 第39天</a> <span class="text-muted">浪子神剑</span> <div>今天的面试题(2019.05.25)——第39天[html]title与h1、b与strong、i与em的区别分别是什么?[css]写出你知道的CSS水平和垂直居中的方法[js]说说你对模块化的理解[软技能]公钥加密和私钥加密是什么?《论语》,曾子曰:“吾日三省吾身”(我每天多次反省自己)。前端面试每日3+1题,以面试题来驱动学习,每天进步一点!让努力成为一种习惯,让奋斗成为一种享受!欢迎在Iss</div> </li> <li><a href="/article/1950178477592342528.htm" title="前端数据库:IndexedDB从基础到高级使用指南" target="_blank">前端数据库:IndexedDB从基础到高级使用指南</a> <span class="text-muted"></span> <div>文章目录前端数据库:IndexedDB从基础到高级使用指南引言一、IndexedDB概述1.1什么是IndexedDB1.2与其他存储方案的比较二、基础使用2.1打开/创建数据库2.2基本CRUD操作添加数据读取数据更新数据删除数据三、高级特性3.1复杂查询与游标3.2事务高级用法3.3性能优化技巧四、实战案例:构建离线优先的待办事项应用4.1数据库设计4.2同步策略实现五、常见问题与解决方案5.</div> </li> <li><a href="/article/1950169524384886784.htm" title="【Java Web实战】从零到一打造企业级网上购书网站系统 | 完整开发实录(三)" target="_blank">【Java Web实战】从零到一打造企业级网上购书网站系统 | 完整开发实录(三)</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/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E7%8A%B6%E6%80%81%E6%A8%A1%E5%BC%8F/1.htm">状态模式</a> <div>核心功能设计用户管理系统用户管理是整个系统的基础,我设计了完整的用户生命周期管理:用户注册流程验证失败验证通过验证失败验证通过用户名已存在用户名可用失败成功用户访问注册页面填写注册信息前端表单验证显示错误提示提交到后端后端数据验证返回错误信息用户名唯一性检查提示用户名重复密码加密处理保存用户信息保存成功?显示系统错误注册成功跳转登录页面登录认证机制深度解析我实现了一套企业级的多层次安全认证机制:认</div> </li> <li><a href="/article/1950169526440095744.htm" title="从零到一:打造基于GigaChat AI的艺术创作平台 | 笙囧同学的全栈开发实战" target="_blank">从零到一:打造基于GigaChat AI的艺术创作平台 | 笙囧同学的全栈开发实战</a> <span class="text-muted"></span> <div>作者简介:笙囧同学,中科院计算机大模型方向硕士,全栈开发爱好者联系方式:3251736703@qq.com各大平台账号:笙囧同学座右铭:偷懒是人生进步的阶梯前言在AI技术飞速发展的今天,如何将前沿的大模型技术与实际应用相结合,一直是我们开发者关注的焦点。今天,笙囧同学将带大家从零开始,构建一个基于GigaChatAI的艺术创作平台,实现React前端+Django后端的完整全栈解决方案。这不仅仅是</div> </li> <li><a href="/article/1950164483057971200.htm" title="14.tornado操作之应用Websocket协议实现聊天室功能" target="_blank">14.tornado操作之应用Websocket协议实现聊天室功能</a> <span class="text-muted">孤寒者</span> <a class="tag" taget="_blank" href="/search/Tornado%E6%A1%86%E6%9E%B6%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E5%AE%9E%E6%88%98/1.htm">Tornado框架从入门到实战</a><a class="tag" taget="_blank" href="/search/websocket/1.htm">websocket</a><a class="tag" taget="_blank" href="/search/tornado/1.htm">tornado</a><a class="tag" taget="_blank" href="/search/%E8%81%8A%E5%A4%A9%E5%AE%A4%E5%8A%9F%E8%83%BD%E5%AE%9E%E7%8E%B0/1.htm">聊天室功能实现</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>目录:每篇前言:1.什么是WebSocket(1)定义(2)优点(3)和HTTP对比(4)适用场景2.WebSocket关键方法3.本tornado项目中使用WebSocket(1)准备一个聊天室的页面:第一步:编写视图:第二步:编写接口:(app.py中加入以下接口!)第三步:编写前端页面:测试接口——响应OK!(2)使用WebSocket:(3)聊天室的聊天功能的最终实现:第一步:战前准备第二</div> </li> <li><a href="/article/1950144218282389504.htm" title="为什么学习Web前端一定要掌握JavaScript?" target="_blank">为什么学习Web前端一定要掌握JavaScript?</a> <span class="text-muted">web前端学习指南</span> <div>为什么学习Web前端一定要掌握JavaScript?在前端的世界里,没有什么是JavaScript实现不了的,关于JS有一句话:凡是可以用JavaScript来写的应用,最终都会用JavaScript,JavaScript可运行在所有主要平台的所有主流浏览器上,也可运行在每一个主流操作系统的服务器端上。现如今我们在为网站写任何一个主要功能的时候都需要有懂能够用JavaScript写前端的开发人员。</div> </li> <li><a href="/article/1950143305194991616.htm" title="小架构step系列25:错误码" target="_blank">小架构step系列25:错误码</a> <span class="text-muted">秋千码途</span> <a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>1概述一个系统中,可能产生各种各样的错误,对这些错误进行编码。当错误发生时,通过这个错误码就有可能快速判断是什么错误,不一定需要查看代码就可以进行处理,提高问题处理效率。有了统一的错误码,还可以标准化错误信息,方便把错误信息纳入文档管理和对错误信息进行国际化等。没有错误码的管理,开发人员就会按自己的理解处理这些错误。有些直接把堆栈直接反馈到前端页面上,使用看不懂这些信息体验很差,也暴露了堆栈信息有</div> </li> <li><a href="/article/1950140903616212992.htm" title="Java朴实无华按天计划从入门到实战(强化速战版-66天)" target="_blank">Java朴实无华按天计划从入门到实战(强化速战版-66天)</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/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/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/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/%E6%97%B6%E9%97%B4%E5%AE%89%E6%8E%92/1.htm">时间安排</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E8%AE%A1%E5%88%92/1.htm">学习计划</a> <div>致敬读者感谢阅读笑口常开生日快乐⬛早点睡觉博主相关博主信息博客首页专栏推荐活动信息文章目录Java朴实无华按天计划从入门到实战(强化速战版-66天)1.基础(18)1.1JavaSE核心(5天)1.2数据库与SQL(5天)1.3前端基础(8天)2.进阶(17天)2.1JavaWeb核心(5天)2.2Mybatis与Spring全家桶(6天)2.3中间件入门(4天)2.4实践项目(2天)3.高阶(1</div> </li> <li><a href="/article/1950132204336115712.htm" title="《跨域资源共享CORS的深层逻辑与前端实践精要》" target="_blank">《跨域资源共享CORS的深层逻辑与前端实践精要》</a> <span class="text-muted"></span> <div>不同源头的资源交互已成为常态,而跨域资源共享(CORS)正是支撑这种交互的隐形架构。现代Web安全体系中平衡开放与防护的精妙设计。理解CORS的深层逻辑,不仅能解决实际开发中的跨域难题,更能触及网络安全与资源流通的核心矛盾,为前端工程师构建稳健的应用提供底层认知支撑。跨域资源共享的诞生,源于网络安全与应用发展的必然冲突。浏览器的同源策略,作为早期网络安全的基石,通过限制不同源文档的交互,有效阻挡了</div> </li> <li><a href="/article/1950131321980383232.htm" title="深入了解 Kubernetes(k8s):从概念到实践" target="_blank">深入了解 Kubernetes(k8s):从概念到实践</a> <span class="text-muted"></span> <div>目录一、k8s核心概念二、k8s的优势三、k8s架构组件控制平面组件节点组件四、k8s+docker运行前后端分离项目的例子1.准备前端项目2.准备后端项目3.创建k8s部署配置文件4.部署应用到k8s集群在当今云计算和容器化技术飞速发展的时代,Kubernetes(简称k8s)已成为容器编排领域的事实标准。无论是互联网巨头、传统企业还是初创公司,都在广泛采用k8s来管理和部署容器化应用。本文将带</div> </li> <li><a href="/article/1950119224630374400.htm" title="大厂都在用的前端缓存策略,你掌握了吗?" target="_blank">大厂都在用的前端缓存策略,你掌握了吗?</a> <span class="text-muted">AI架构全栈开发实战笔记</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E7%BC%93%E5%AD%98/1.htm">缓存</a><a class="tag" taget="_blank" href="/search/ai/1.htm">ai</a> <div>大厂都在用的前端缓存策略,你掌握了吗?关键词:前端缓存、HTTP缓存、ServiceWorker、CDN缓存、缓存策略、性能优化、浏览器缓存摘要:本文将深入探讨前端开发中常用的缓存策略,从浏览器缓存到ServiceWorker,从HTTP缓存头到CDN缓存,全面解析大厂都在使用的高效缓存技术。通过生动的比喻和实际代码示例,帮助开发者理解并掌握这些提升Web应用性能的关键技术。背景介绍目的和范围本文</div> </li> <li><a href="/article/1950115062781898752.htm" title="26. 什么是雪碧图,作用和原理了解吗" target="_blank">26. 什么是雪碧图,作用和原理了解吗</a> <span class="text-muted">yqcoder</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E9%9D%A2%E8%AF%95-CSS/1.htm">前端面试-CSS</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><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>总结小图合成一张,使用background来使用,减少资源请求一、什么是雪碧图?雪碧图(CSSSprite)是一种前端优化技术,指的是将多个小图标合并成一张大图,通过CSS控制显示其中的某一部分。它常用于网站中图标、按钮等小图较多的场景。二、雪碧图的作用作用说明✅减少HTTP请求次数合并多个图片为一张图,减少请求资源数✅提升页面加载速度尤其在图片较多时效果明显✅避免图片加载闪烁鼠标悬停切换图片时不</div> </li> <li><a href="/article/1950112039502409728.htm" title="H5UI微信小程序前端框架实战指南" target="_blank">H5UI微信小程序前端框架实战指南</a> <span class="text-muted">ai</span> <div>本文还有配套的精品资源,点击获取简介:H5UI是一个为微信小程序开发设计的前端框架,基于H5技术,提供简洁高效的组件库。框架集成了丰富的UI元素,如按钮、表格、导航栏等,简化了界面布局和交互的实现。通过安装、引入、使用组件和事件绑定四个步骤,开发者可以轻松构建功能齐全的应用。了解性能优化等注意事项对于高效开发同样重要。1.微信小程序前端开发框架介绍微信小程序概述微信小程序是微信官方推出的一种无需下</div> </li> <li><a href="/article/1950104854819041280.htm" title="Ubuntu安装LAMP" target="_blank">Ubuntu安装LAMP</a> <span class="text-muted">L_h1</span> <a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95/1.htm">测试</a><a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>在安装vim时遇到了一个问题:E:无法获得锁/var/lib/dpkg/lock-frontend-open(11:资源暂时不可用)E:无法获取dpkg前端锁(/var/lib/dpkg/lock-frontend),是否有其他进程正占用它?解决办法:强制解锁sudorm/var/lib/dpkg/lock-frontendsudorm/var/cache/apt/archives/locksud</div> </li> <li><a href="/article/1950104727928762368.htm" title="震惊!DOM变化监控神器MutationObserver,前端开发必知的隐藏武器!" target="_blank">震惊!DOM变化监控神器MutationObserver,前端开发必知的隐藏武器!</a> <span class="text-muted">coding随想</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/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a> <div>一、什么是MutationObserver?如果你是一个前端开发者,一定会遇到这样的场景:页面动态加载内容后,某些操作失效了。比如,你写了一个监听按钮点击的代码,但按钮是通过AJAX动态加载的,你的代码根本无法触发。这个时候,你就需要一个“监控哨兵”——MutationObserver,它能实时监听DOM树的变化,帮你捕获那些“暗中作祟”的节点变动。MutationObserver是HTML5引入</div> </li> <li><a href="/article/1950100184717389824.htm" title="11. HTML 中 DOCTYPE 的作用" target="_blank">11. HTML 中 DOCTYPE 的作用</a> <span class="text-muted">yqcoder</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E9%9D%A2%E8%AF%95-CSS/1.htm">前端面试-CSS</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>总结H5的声明HTML5的DOCTYPE声明HTML5中的声明用于告诉浏览器当前文档使用的是HTML5的文档类型。它必须是文档中的第一行内容(在任何HTML标签之前),以确保浏览器能够正确地解析和渲染页面。DOCTYPE的作用触发标准模式:DOCTYPE声明的主要作用是让浏览器以标准模式(StandardsMode)来解析和渲染页面,而不是以兼容模式(QuirksMode)。兼容性:在没有DOCT</div> </li> <li><a href="/article/1950094764498022400.htm" title="Coze Studio 架构拆解:AI Agent 开发平台项目结构全分析" target="_blank">Coze Studio 架构拆解:AI Agent 开发平台项目结构全分析</a> <span class="text-muted">代码简单说</span> <a class="tag" taget="_blank" href="/search/2025%E5%BC%80%E5%8F%91%E5%BF%85%E5%A4%87%28%E9%99%90%E6%97%B6%E7%89%B9%E6%83%A0%29/1.htm">2025开发必备(限时特惠)</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/Coze/1.htm">Coze</a><a class="tag" taget="_blank" href="/search/Studio/1.htm">Studio</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/AI/1.htm">AI</a><a class="tag" taget="_blank" href="/search/Agent/1.htm">Agent</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E5%B9%B3%E5%8F%B0/1.htm">开发平台</a><a class="tag" taget="_blank" href="/search/%E5%85%A8%E6%A0%88/1.htm">全栈</a><a class="tag" taget="_blank" href="/search/AI/1.htm">AI</a><a class="tag" taget="_blank" href="/search/%E5%B7%A5%E7%A8%8B%E5%8C%96/1.htm">工程化</a><a class="tag" taget="_blank" href="/search/%E5%9B%BE%E8%A7%A3%E6%9E%B6%E6%9E%84/1.htm">图解架构</a> <div>CozeStudio架构拆解:AIAgent开发平台项目结构全分析标签:CozeStudio项目架构、领域驱动设计DDD、全栈开发规范、Hertz框架、前后端协作、云原生容器、前端测试、IDL接口设计、微服务解耦、AI开发平台源码分析在最近研究AIAgent开发平台的过程中,我深入分析了刚刚开源的CozeStudio项目。这套系统是国内少有的开源全栈AI工程化项目,代码整洁、架构先进,特别是它基于</div> </li> <li><a href="/article/1950075480849838080.htm" title="关于前端的性能优化" target="_blank">关于前端的性能优化</a> <span class="text-muted"></span> <div>性能优化主要涵盖了以下四个方面:(tip:仅代表个人总结,如有不当,还希望看到的大佬多多指示)减少网络请求:合并文件、使用CDN、启用缓存。优化资源加载:代码分割、懒加载、图片压缩。提升渲染性能:减少重绘回流、防抖节流、使用WebWorker。监控和迭代:定期使用工具检测性能,持续优化。一、网络层面优化减少HTTP请求合并文件:将多个CSS或JavaScript文件合并成一个,减少请求次数。使用C</div> </li> <li><a href="/article/1950059723604684800.htm" title="linux网卡显示未知未托管,linux有线网络显示设备未托管" target="_blank">linux网卡显示未知未托管,linux有线网络显示设备未托管</a> <span class="text-muted"></span> <div>NetworkManagerNetworkManager是为了使网络配置尽可能简单而开发的网络管理软件包,如果使用DHCP,NetworkManager会替换默认的路由表、从DHCP服务器获取IP地址并根据情况设置域名服务器,NetworkManager的目标是使网络能够开箱即用。NetworkManager由两部分组成:一个以超级用户运行的守护进程(network-manager);一个前端管理</div> </li> <li><a href="/article/1950053798433058816.htm" title="页面开发样式和布局入门:Vite + Vue 3 + Less" target="_blank">页面开发样式和布局入门:Vite + Vue 3 + Less</a> <span class="text-muted"></span> <div>页面开发样式和布局入门:Vite+Vue3+Less引言在现代前端开发中,样式和布局是页面开发的核心部分。随着技术的不断发展,Vite、Vue3和Less等工具和框架的出现,使得前端开发变得更加高效和灵活。然而,尽管这些工具和框架提供了强大的功能,但在实际开发中仍然会遇到各种样式和布局的问题。本文将结合Vite、Vue3和Less,详细介绍在页面开发中常见的样式和布局问题,并提供解决方案和最佳实践</div> </li> <li><a href="/article/1950046229840850944.htm" title="推客系统小程序机构版开发上线全攻略(2025年最新版)" target="_blank">推客系统小程序机构版开发上线全攻略(2025年最新版)</a> <span class="text-muted">vx_qutudy</span> <a class="tag" taget="_blank" href="/search/%E6%8E%A8%E5%AE%A2%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">推客小程序</a><a class="tag" taget="_blank" href="/search/%E6%8E%A8%E5%AE%A2%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91/1.htm">推客系统开发</a><a class="tag" taget="_blank" href="/search/%E6%8E%A8%E5%AE%A2%E7%B3%BB%E7%BB%9F%E6%BA%90%E7%A0%81/1.htm">推客系统源码</a> <div>一、开发前准备:筑牢基础,合规先行1.1注册与认证账号注册:登录微信公众平台注册小程序账号,选择“机构版”类型,获取唯一AppID。资质认证:基础资质:企业营业执照、法人身份证、对公账户信息。特殊资质:涉及支付功能:需办理《增值电信业务经营许可证》(ICP证)。涉及教育/医疗内容:需《互联网信息服务许可证》或相关行业资质。1.2技术选型:高效与扩展并重模块推荐方案前端框架微信原生框架(WXML+W</div> </li> <li><a href="/article/1950042324155297792.htm" title="网络安全第14集" target="_blank">网络安全第14集</a> <span class="text-muted">不灭锦鲤</span> <a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a> <div>前言:小迪安全14集,这集重点内容:0、什么是js渗透测试?在javascript中也存在变量和函数,存在可控变量和函数就有可能存在在漏洞,js开发的web应用和php、java开发的区别是,js能看得到的源代码,php看不到,但是风险就是未授权访问、配置信息泄露(加密算法、key秘钥等),源代码看得到,存在更多的url泄露,从而可能会出现未授权访问,从url,前提:web应用可以采用前端语言或后</div> </li> <li><a href="/article/1950037152830124032.htm" title="怎么判断一个DAPP是否真正去中心化" target="_blank">怎么判断一个DAPP是否真正去中心化</a> <span class="text-muted"></span> <div>判断一个DAPP(去中心化应用)是否真正去中心化,需要从多个维度进行考察。以下是关键评估标准:1.区块链依赖程度✅真正去中心化:核心逻辑和数据处理完全依赖智能合约,运行在区块链上(如以太坊、Solana等)。❌伪去中心化:依赖中心化服务器处理关键数据或业务逻辑,仅前端去中心化。2.智能合约控制权✅去中心化:合约代码开源,无管理员密钥(adminkey)或可升级后门,治理由DAO(去中心化自治组织)</div> </li> <li><a href="/article/1950020001654173696.htm" title="Web前端交互利用Python跟大模型操作" target="_blank">Web前端交互利用Python跟大模型操作</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/%E4%BA%A4%E4%BA%92/1.htm">交互</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>Web前端交互利用Python跟大模型操作一个简单的演示,如何把大模型应用集成到自己的应用场景当中。这里的场景我们模拟的是在吃鸡游戏中,一个作战计划,是否符合老六的行为规范。吃鸡游戏已经风靡很多年,游戏里每个人的游戏风格都不一样,有喜欢钢枪的,有喜欢随机应变的,也有喜欢当老六苟分的。每种风格的游戏方式以及游戏里的行为都不同,所以这里将演示如何应用大模型,去判断一个人的游戏方式,是否符合一个老六的行</div> </li> <li><a href="/article/1950009162180128768.htm" title="尚硅谷微服务尚医通前端npm报错" target="_blank">尚硅谷微服务尚医通前端npm报错</a> <span class="text-muted"></span> <div>尚硅谷微服务尚医通前端npm报错血泪史我的版本的8.0.0,弹幕里说降级npm到6.多就能安装,经过许久挣扎还是各种报错,最后通过一下办法解决解决办法:不需要降低npm版本,办法如下这里需要使用到cnpm:1.导入下载好到的项目2.安装cnpm:npminstallcnpm-g3.安装node-sass:cnpminstallnode-sass4.继续安装:cnpminode-sass-D5.删除</div> </li> <li><a href="/article/1950005000038051840.htm" title="Layui核心语法快速入门指南" target="_blank">Layui核心语法快速入门指南</a> <span class="text-muted">bemyrunningdog</span> <a class="tag" taget="_blank" href="/search/layui/1.htm">layui</a><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>Layui基本语法学习指南Layui是一个经典的模块化前端框架,以其轻量易用、组件丰富著称。以下是Layui的核心语法结构和使用方法:一、模块加载机制(核心基础)//标准模块加载语法layui.use(['module1','module2'],function(){//回调函数中获取模块varmod1=layui.module1;varmod2=layui.module2;//模块功能调用mod</div> </li> <li><a href="/article/1950002983613820928.htm" title="前端基础知识Vue3系列 - 04(Vue3.0 所采用的 Composition Api 与 Vue2.x 使用的 Options Api 有什么不同)" target="_blank">前端基础知识Vue3系列 - 04(Vue3.0 所采用的 Composition Api 与 Vue2.x 使用的 Options Api 有什么不同)</a> <span class="text-muted"></span> <div>开始之前CompositionAPI可以说是Vue3的最大特点,那么为什么要推出CompositionApi,解决了什么问题?通常使用Vue2开发的项目,普遍会存在以下问题:代码的可读性随着组件变大而变差每一种代码复用的方式,都存在缺点TypeScript支持有限以上通过使用CompositionApi都能迎刃而解正文一、OptionsApiOptionsAPI,即大家常说的选项API,即以vue</div> </li> <li><a href="/article/1949984445817745408.htm" title="Vue 工程化开发入门" target="_blank">Vue 工程化开发入门</a> <span class="text-muted">dawn191228</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/vue.js/1.htm">vue.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/javascript/1.htm">javascript</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工程化开发概述二、Vue脚手架三、项目运行流程四、组件化开发五、组件注册六、总结在当今的前端开发领域,Vue.js以其简洁、高效的特性受到了广泛的欢迎。Vue的工程化开发能够帮助我们更好地组织和管理项目,提高开发效率和代码质量。本文将带你了解Vue工程化开发入门知识,包括脚手架、项目运行流程、组件化以及组件注册。一、Vue工程化开发概述工程化开发是一种将软件开发过程规范化、标准化</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>