用户界面样式

参考一

参考二

参考三

系统字体
css2定义了6个系统字体关键字,如下:
1.caption 由标题控件使用的字体样式,如按钮和下拉控件
2.icon 操作系统图表标签使用的字体样式,如硬盘驱动器,文件夹和文件图标
3.menu 下拉菜单和菜单列表中文本使用的字体样式
4.message-box 对话框中文本使用的字体样式
5.small-caption 对话框中文本使用的字体样式
6.status-bar 窗口状态中文本使用的字体样式
这些属性只能适用于font属性

        body{
            font:caption;
        }123

系统颜色
如果你想重用用户操作系统中指定的颜色,css2为此定义了一系列系统颜色关键字。只要能用color值的环境,就可以使用这些值。例如,下面声明可以让一个元素的背景与用户的桌面颜色一致:

        body{
            background: Background
        }123

可以如下为文档指定系统的默认文本颜色和背景颜色

        body{
            color: WindowText;
            background: Window;
        }1234

光标 cursor
值:url | default | auto | crosshair | pointer | move | e-resize| nw-resize | ne-resize| n-resize| se-resize | sw-resize| s-resize| s-resize | w-resize | text | wait | help | url | inherit
1.url 需使用的自定义光标的 URL。(请在此列表的末端始终定义一种普通的光标,以防没有由 URL 定义的可用光标。)
default 默认光标(通常是一个箭头)
auto 默认。浏览器设置的光标。
crosshair 光标呈现为十字线。
pointer 光标呈现为指示链接的指针(一只手)
move 此光标指示某对象可被移动。
e-resize 此光标指示矩形框的边缘可被向右(东)移动。
ne-resize 此光标指示矩形框的边缘可被向上及向右移动(北/东)。
nw-resize 此光标指示矩形框的边缘可被向上及向左移动(北/西)。
n-resize 此光标指示矩形框的边缘可被向上(北)移动。
se-resize 此光标指示矩形框的边缘可被向下及向右移动(南/东)。
sw-resize 此光标指示矩形框的边缘可被向下及向左移动(南/西)。
s-resize 此光标指示矩形框的边缘可被向下移动(南)。
w-resize 此光标指示矩形框的边缘可被向左移动(西)。
text 此光标指示文本。
wait 此光标指示程序正忙(通常是一只表或沙漏)。
help 此光标指示可用的帮助(通常是一个问号或一个气球)

轮廓样式 outline-style
值:none | dotted | dashed | double | groove |ridge | inset | outset | inherit
1.none 默认。定义无轮廓。
dotted 定义点状的轮廓。
dashed 定义虚线轮廓。
solid 定义实线轮廓。
double 定义双线轮廓。双线的宽度等同于 outline-width 的值。
groove 定义 3D 凹槽轮廓。此效果取决于 outline-color 值。
ridge 定义 3D 凸槽轮廓。此效果取决于 outline-color 值。
inset 定义 3D 凹边轮廓。此效果取决于 outline-color 值。
outset 定义 3D 凸边轮廓。此效果取决于 outline-color 值。
inherit 规定应该从父元素继承轮廓样式的设置。

轮廓宽度 outline-width
值:thin | medium | thick | length | inherit
1.thin 规定细轮廓。
medium 默认。规定中等的轮廓。
thick 规定粗的轮廓。
length 允许您规定轮廓粗细的值。
inherit 规定应该从父元素继承轮廓宽度的设置。
2.outline-width 属性设置元素整个轮廓的宽度,只有当轮廓样式不是 none 时,这个宽度才会起作用。如果样式为 none,宽度实际上会重置为 0。不允许设置负长度值。

轮廓颜色 outline-color
值:color_name | hex_number | rgb_number | invert | inherit
1.color_name 规定颜色值为颜色名称的轮廓颜色(比如 red)。
hex_number 规定颜色值为十六进制值的轮廓颜色(比如 #ff0000)。
rgb_number 规定颜色值为 rgb 代码的轮廓颜色(比如 rgb(255,0,0))。
invert 默认。执行颜色反转(逆向的颜色)。可使轮廓在不同的背景颜色中都是可见。
inherit 规定应该从父元素继承轮廓颜色的设置。

汇总 outline
值:outline-color | outline-style | outline-width | inherit
1.outline (轮廓)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。
2.inherit 规定应该从父元素继承 outline 属性的设置。

防止拖拽文本域

resize

描述
none 用户无法调整元素的尺寸。
both 用户可调整元素的高度和宽度。
horizontal 用户可调整元素的宽度。
vertical 用户可调整元素的高度。

行内块元素与文字的对齐

既然看到这就先来看看浮动

  • 盖不住的文本
  • 浮动元素后面不是块级元素,后面的元素将会和它并排(除非设置了元素的宽度,并且屏幕放不下时将会换行)
  • 浮动元素的上一个元素如果没有浮动,浮动只在当前行浮动;当浮动遇到浮动,它们将在一行排序,除非没有位置了
  • 当元素设置定位值为absolute、fixed时,浮动将被忽略
  • float引起父元素高度塌陷
  • 浮动元素会被后一个元素的margin-top影响

示例

浮动的本质:文字环绕图片

display:inline-blockfloat"left在某些场合作用是一样的,区别只是float有方向

浮动的破坏性

浮动破坏了正常的line boxes

ok,那lineboxes是个什么东西(懂的同学请绕过)

CSS 框模型 (Box Model) 规定了元素框处理元素内容、内边距、边框 和 外边距 的方式,我们常见的盒模型大致有两种,一种是块级的盒子(Block Box),一种是行级的盒子(Line Box)

盒子模型是处理盒子本身内部属性,像比如边距,边框的,而视觉格式化模型是来处理这些盒子摆放的

Block Box

displayblocklist-item 以及 table 会让一个元素成为块级元素。

Line Box

每一行称为一条Line Box,它又是由这一行的许多inline-box组成
displayinline会让一个元素称为行内元素

inline-block

将对象呈现为inline对象,但是对象的内容作为block对象呈现。之后的内联对象会被排列在同一行内。比如我们可以给一个link(a元素)inline-block属性值,使其既具有block的宽度高度特性又具有inline的同行特性。

Formatting context

每个元素,或者说每个Box会根据设置的display值,去选择渲染它的方式,不同的display有不同层级:block-level box(块级)inline-level box(行级),run-in box(插入型框 css3),不同的层级会参与不同的环境(formatting context)去渲染

视觉格式化模型

CSS 视觉格式化模型(visual formatting model)是用来处理和在视觉媒体上显示文档时使用的计算规则。该模型是 CSS 的基础概念之一。

视觉格式化模型会根据CSS盒子模型将文档中的元素转换为一个个盒子,每个盒子的布局由以下因素决定:

  • 盒子的尺寸:精确指定、由约束条件指定或没有指定
  • 盒子的类型:行内盒子(inline)、行内级盒子(inline-level)、原子行内级盒子(atomic inline-level)、块盒子(block)
  • 定位方案(positioning scheme):普通流定位、浮动定位或绝对定位
  • 文档树中的其它元素:即当前盒子的子元素或兄弟元素
  • 视口尺寸与位置
  • 所包含的图片的尺寸
  • 其他的某些外部因素

该模型会根据盒子的包含块(containing block)的边界来渲染盒子。通常,盒子会创建一个包含其后代元素的包含块,但是盒子并不由包含块所限制,当盒子的布局跑到包含块的外面时称为溢出(overflow)

:block,一个抽象的概念,一个块在文档流上占据一个独立的区域,块与块之间在垂直方向上按照顺序依次堆叠。

包含块:containing block,包含其他盒子的块称为包含块。

盒子:box,一个抽象的概念,由CSS引擎根据文档中的内容所创建,主要用于文档元素的定位、布局和格式化等用途。盒子与元素并不是一一对应的,有时多个元素会合并生成一个盒子,有时一个元素会生成多个盒子(如匿名盒子)。

块级元素:block-level element,元素的 displayblocklist-itemtable 时,该元素将成为块级元素。元素是否是块级元素仅是元素本身的属性,并不直接用于格式化上下文的创建或布局。

块级盒子:block-level box,由块级元素生成。一个块级元素至少会生成一个块级盒子,但也有可能生成多个(例如列表项元素)。

块盒子:block box,如果一个块级盒子同时也是一个块容器盒子(见下),则称其为块盒子。除具名块盒子之外,还有一类块盒子是匿名的,称为匿名块盒子(Anonymous block box),匿名盒子无法被CSS选择符选中。

块容器盒子:block container box或block containing box,块容器盒子侧重于当前盒子作为“容器”的这一角色,它不参与当前块的布局和定位,它所描述的仅仅是当前盒子与其后代之间的关系。换句话说,块容器盒子主要用于确定其子元素的定位、布局等。

行内级元素:inline-level element,displayinlineinline-blockinline-table 的元素称为行内级元素。与块级元素一样,元素是否是行内级元素仅是元素本身的属性,并不直接用于格式化上下文的创建或布局。

行内级盒子:inline-level box,由行内级元素生成。行内级盒子包括行内盒子和原子行内级盒子两种,区别在于该盒子是否参与行内格式化上下文的创建。

行内盒子:inline box,参与行内格式化上下文创建的行内级盒子称为行内盒子。与块盒子类似,行内盒子也分为具名行内盒子和匿名行内盒子(anonymous inline box)两种。

原子行内级盒子:atomic inline-level box,不参与行内格式化上下文创建的行内级盒子。原子行内级盒子一开始叫做原子行内盒子(atomic inline box),后被修正。原子行内级盒子的内容不会拆分成多行显示。

快级元素

块状元素排斥其他元素与其位于同一行,可以设定元素的宽(width)和高(height),块级元素一般是其他元素的容器,可容纳块级元素和行内元素

 1 >//定义地址
 2 >//定义表格标题
 3 
//定义列表中定义条目 4 <div> //定义文档中的分区或节 5
//定义列表 6
//定义列表中的项目 7
//定义一个框架集 8
//创建 HTML 表单 9

//定义最大的标题 10

// 定义副标题 11

//定义标题 12

//定义标题 13

//定义标题 14
//定义最小的标题 15
//创建一条水平线 16 //元素为 fieldset 元素定义标题 17
  • //标签定义列表项目 18 <span class="hljs-comment"> //为那些不支持框架的浏览器显示文本,于 frameset 元素内部</span> <span class="hljs-number">19</span> <noscript> <span class="hljs-comment"> //定义在脚本未被执行时的替代内容</span> <span class="hljs-number">20</span> <ol> <span class="hljs-comment"> //定义有序列表</span> <span class="hljs-number">21</span> <ul> <span class="hljs-comment"> //定义无序列表</span> <span class="hljs-number">22</span> <p> <span class="hljs-comment"> //标签定义段落</span> <span class="hljs-number">23</span> <pre> <span class="hljs-comment"> //定义预格式化的文本</span> <span class="hljs-number">24</span> <table> <span class="hljs-comment"> //标签定义 HTML 表格</span> <span class="hljs-number">25</span> <tbody> <span class="hljs-comment"> //标签表格主体(正文)</span> <span class="hljs-number">26</span> <td> <span class="hljs-comment"> //表格中的标准单元格</span> <span class="hljs-number">27</span> <tfoot> <span class="hljs-comment"> //定义表格的页脚(脚注或表注)</span> <span class="hljs-number">28</span> <th> <span class="hljs-comment"> //定义表头单元格</span> <span class="hljs-number">29</span> <thead> <span class="hljs-comment"> //标签定义表格的表头</span> <span class="hljs-number">30</span> <tr> <span class="hljs-comment"> //定义表格中的行</span></code></pre> <p><strong>行内元素</strong></p> <p>行内元素不可以设置宽(width)和高(height),但可以与其他行内元素位于同一行,行内元素内一般不可以包含块级元素。行内元素的高度一般由元素内部的字体大小决定,宽度由内容的长度控制。</p> <pre class="prettyprint"><code class=" hljs oxygene"> <span class="hljs-number">1</span> <a> <span class="hljs-comment">//标签可定义锚</span> <span class="hljs-number">2</span> <abbr> <span class="hljs-comment">//表示一个缩写形式</span> <span class="hljs-number">3</span> <acronym> <span class="hljs-comment">//定义只取首字母缩写</span> <span class="hljs-number">4</span> <b> <span class="hljs-comment">//字体加粗</span> <span class="hljs-number">5</span> <bdo> <span class="hljs-comment">//可覆盖默认的文本方向</span> <span class="hljs-number">6</span> <big> <span class="hljs-comment">//大号字体加粗</span> <span class="hljs-number">7</span> <br> <span class="hljs-comment">//换行</span> <span class="hljs-number">8</span> <cite> <span class="hljs-comment">//引用进行定义</span> <span class="hljs-number">9</span> <code> <span class="hljs-comment">// 定义计算机代码文本</span> <span class="hljs-number">10</span> <dfn> <span class="hljs-comment">//定义一个定义项目</span> <span class="hljs-number">11</span> <em> <span class="hljs-comment">//定义为强调的内容</span> <span class="hljs-number">12</span> <i> <span class="hljs-comment">//斜体文本效果</span> <span class="hljs-number">13</span> <img> <span class="hljs-comment">//向网页中嵌入一幅图像</span> <span class="hljs-number">14</span> <input> <span class="hljs-comment">//输入框</span> <span class="hljs-number">15</span> <kbd> <span class="hljs-comment">//定义键盘文本</span> <span class="hljs-number">16</span> <label> <span class="hljs-comment">//标签为 input 元素定义标注(标记)</span> <span class="hljs-number">17</span> <q> <span class="hljs-comment">//定义短的引用</span> <span class="hljs-number">18</span> <samp> <span class="hljs-comment">//定义样本文本</span> <span class="hljs-number">19</span> <<span class="hljs-keyword">select</span>> <span class="hljs-comment">// 创建单选或多选菜单</span> <span class="hljs-number">20</span> <small> <span class="hljs-comment">//呈现小号字体效果</span> <span class="hljs-number">21</span> <span> <span class="hljs-comment">//组合文档中的行内元素</span> <span class="hljs-number">22</span> <<span class="hljs-keyword">strong</span>> <span class="hljs-comment">//加粗</span> <span class="hljs-number">23</span> <sub> <span class="hljs-comment">//定义下标文本</span> <span class="hljs-number">24</span> <sup> <span class="hljs-comment">//定义上标文本</span> <span class="hljs-number">25</span> <textarea> <span class="hljs-comment">//多行的文本输入控件</span> <span class="hljs-number">26</span> <tt> <span class="hljs-comment">//打字机或者等宽的文本效果</span> <span class="hljs-number">27</span> <<span class="hljs-keyword">var</span>> <span class="hljs-comment">// 定义变量</span></code></pre> <p><strong>可变元素</strong></p> <p>根据上下文语境决定转为块级元素还是行内元素。</p> <p><img src="http://img.e-com-net.com/image/info8/ab544354af934f8997b79d5b4245e68a.gif" alt="复制代码" title="" width="0" height="0"></p> <pre class="prettyprint"><code class=" hljs xml">1 <span class="hljs-tag"><<span class="hljs-title">button</span>></span> //按钮 2 <span class="hljs-tag"><<span class="hljs-title">del</span>></span> // 定义文档中已被删除的文本 3 <span class="hljs-tag"><<span class="hljs-title">iframe</span>></span> //创建包含另外一个文档的内联框架(即行内框架) 4 <span class="hljs-tag"><<span class="hljs-title">ins</span>></span> //标签定义已经被插入文档中的文本 5 <span class="hljs-tag"><<span class="hljs-title">map</span>></span> //客户端图像映射(即热区) 6 <span class="hljs-tag"><<span class="hljs-title">object</span>></span> //object对象 7 <span class="hljs-tag"><<span class="hljs-title">script</span>></span><span class="javascript"> <span class="hljs-comment">//客户端脚本</span></span></code></pre> <p>块级元素和行内元素区别</p> <ol> <li>行内元素同一行水平排列。</li> <li>块级元素各占据一行,垂直方向排列。</li> <li>块级元素可以包含行内元素和块级元素。但行内元素不能包含块级元素。</li> <li>行内元素与块级元素属性的不同,主要是盒模型属性上。</li> <li>行内元素设置width无效,height无效(可以设置line-height),margin上下无效,padding上下无效</li> </ol> <p>可以通过修改样式display属性改变元素是以块级还是行内元素呈现,当display的值设为block时,元素将以块级方式呈现;当display值设为inline时,元素将以行内形式呈现。</p> <p>如果想让一个元素可以设置宽度高度,又让它以行内形式显示,我们可以设置display的值为inline-block。</p> <p><strong>快级元素与快盒子</strong></p> <p>当元素的 <code>display</code> 为 <code>block</code>、<code>list-item</code> 或 <code>table</code> 时,该元素将成为块级元素。一个块级元素会被格式化成一个块(例如文章的一个段落),默认按照垂直方向依次排列。</p> <p>每个块级盒子都会参与块格式化上下文(block formatting context)的创建,而每个块级元素都会至少生成一个块级盒子,即主块级盒子(<em>principal block-level</em> <em>box)。有</em>一些元素,比如列表项会生成额外的盒子来放置项目符号,而那些会生成列表项的元素可能会生成更多的盒子。不过,多数元素只生成一个主块级盒子。 </p> <p>主块级盒子包含由后代元素生成的盒子以及内容,同时它也会参与定位方案。</p> <p><img src="http://img.e-com-net.com/image/info8/fcff4005c4534335963e36ffeff31ade.jpg" alt="venn_blocks.png" title="" width="0" height="0">一个块级盒子可能也是一个块容器盒子。块容器盒子(<em>block container box)要么</em>只包含其它块级盒子,要么只包含行内盒子并同时创建一个行内格式化上下文(inline formatting context)。</p> <p>能够注意到块级盒子与块容器盒子是不同的这一点很重要。前者描述了元素与其父元素和兄弟元素之间的行为,而后者描述了元素跟其后代之间的行为。有些块级盒子并不是块容器盒子,比如表格;而有些块容器盒子也不是块级盒子,比如非替换行内块和非替换表格单元格。</p> <p>一个同时是块容器盒子的块级盒子称为块盒子(<em>block box)。</em></p> <h4 id="匿名块盒子">匿名块盒子</h4> <p>在某些情况下进行视觉格式化时,需要添加一些增补性的盒子,这些盒子不能用CSS选择符选中,因此称为匿名盒子(<em>anonymous boxes)</em>。</p> <p>不能被 CSS 选择符选中意味着不能用样式表添加样式,也就是说,此时所有可继承的 CSS 属性值都为 <code>inherit</code> ,而所有不可继承的 CSS 属性值都为 <code>initial</code>。</p> <p>块包含盒子可能只包含行内级盒子,也可能只包含块级盒子,但通常的文档都会同时包含两者,在这种情况下,就会在相邻的行内级盒子外创建匿名块盒子。</p> <h3 id="行内级元素和行内盒子">行内级元素和行内盒子</h3> <p>如果一个元素的 <code>display</code> 属性为 <code>inline</code>、<code>inline-block</code> 或 <code>inline-table</code>,则称该元素为行内级元素。显示时,它不会生成内容块,但是可以与其他行内级内容一起显示为多行。一个典型的例子是包含多种格式内容(如强调文本、图片等)的段落,就可以由行内级元素组成。</p> <p>行内级元素会生成行内级盒子,该盒子同时会参与行内格式化上下文(inline formatting context)的创建。行内盒子既是行内级盒子,也是一个其内容会参与创建其容器的行内格式化上下文的盒子,比如所有具有 <code>display:inline</code> 样式的非替换盒子。如果一个行内级盒子的内容不参与行内格式化上下文的创建,则称其为原子行内级盒子。而通过替换行内级元素或 <code>display</code> 值为 <code>inline-block</code> 或 <code>inline-table</code> 的元素创建的盒子不会像行内盒子一样可以被拆分为多个盒子。</p> <h4 id="匿名行内盒子">匿名行内盒子</h4> <p>类似于块盒子,CSS引擎有时候也会自动创建一些行内盒子。这些行内盒子无法被选择符选中,因此是匿名的,它们从父元素那里继承那些可继承的属性,其他属性保持默认值 <code>initial</code>。 </p> <p>一种常见的情况是CSS引擎会自动为直接包含在块盒子中的文本创建一个行内格式化上下文,在这种情况下,这些文本会被一个足够大的匿名行内盒子所包含。但是如果仅包含空格则有可能不会生成匿名行内盒子,因为空格有可能会由于 <code>white-space</code> 的设置而被移除,从而导致最终的实际内容为空。</p> <h4 id="行盒子">行盒子</h4> <p>行盒子由行内格式化上下文创建,用来显示一行文本。在块盒子内部,行盒子总是从块盒子的一边延伸到另一边(译注:即占据整个块盒子的宽度)。当有浮动元素时,行盒子会从向左浮动的元素的右边缘延伸到向右浮动的元素的左边缘。</p> <p>行盒子更多是以技术性目的而存在的,Web开发者通常不需要关心。</p> <h4 id="run-in-盒子">Run-in 盒子</h4> <p>Run-in 盒子通过 <code>display:run-in</code> 来定义,它可以是块盒子,也可以是行内盒子,这取决于紧随其后的盒子的类型。Run-in 盒子可以用来在可能的情况下将标题嵌入文章的第一个段落中。</p> <h4 id="定位规则">定位规则</h4> <p>一旦生成了盒子以后,CSS引擎就需要定位它们以完成布局。下面是定位盒子时所使用的规则:</p> <ul> <li>普通流:按照次序依次定位每个盒子</li> <li>浮动:将盒子从普通流中单独拎出来,将其放到外层盒子的某一边</li> <li>绝对定位:按照绝对位置来定位盒子,其位置根据盒子的包含元素所建立的绝对坐标系来计算,因此绝对定位元素有可能会覆盖其他元素</li> </ul> <h3 id="普通流">普通流</h3> <p>在普通流中,盒子会依次放置。在块格式化上下文中,盒子在垂直方向依次排列;而在行内格式化上下文中,盒子则水平排列。当CSS的 <code>position</code> 属性为 <code>static</code> 或 <code>relative</code>,并且 <code>float</code> 为 <code>none</code> 时,其布局方式为普通流。</p> <h3 id="浮动">浮动</h3> <p>在浮动定位中,浮动盒子会浮动到当前行的开始或尾部位置。这会导致普通流中的文本及其他内容会“流”到浮动盒子的边缘处,除非元素通过 <code>clear</code> 清除了前面的浮动。</p> <p>一个盒子的 <code>float</code> 值不为 <code>none</code>,并且其 <code>position</code> 为 <code>static</code> 或 <code>relative</code> 时,该盒子为浮动定位。如果将 <code>float</code> 设置为 <code>left</code>,浮动盒子会定位到当前行盒子的开始位置(左侧),如果设置为 <code>right</code>,浮动盒子会定位到当前行盒子的尾部位置(右侧)。不管是左浮动还是右浮动,行盒子都会伸缩以适应浮动盒子的大小。</p> <h3 id="绝对定位">绝对定位</h3> <p>在绝对定位中,盒子会完全从当前流中移除,并且不会再与其有任何联系(译注:此处仅指定位和位置计算,而绝对定位的元素在文档树中仍然与其他元素有父子或兄弟等关系),其位置会使用 <code>top</code>、<code>bottom</code>、<code>left</code> 和 <code>right</code> 相对其包含块进行计算。</p> <p>如果元素的 <code>position</code> 为 <code>absolute</code> 或 <code>fixed</code>,该元素为绝对定位。</p> <p>对固定位置的元素来说,其包含块为整个视口,该元素相对视口进行绝对定位,因此滚动时元素的位置并不会改变。</p> <h3 id="元素框">元素框</h3> <blockquote> <p>css假设每个元素都会生成一个或者多个Box,称为元素框,元素框中心有内容区,内容区外周围包括了padding,border,margin,盒模型就是用来处理这些内容的一个模型</p> </blockquote> <h3 id="包含块">包含块</h3> <blockquote> <p>每个元素都是相对于包含块摆放,包含块就是一个元素的“布局上下文”,</p> </blockquote> <pre class="prettyprint"><code class=" hljs xml"><span class="hljs-tag"><<span class="hljs-title">body</span>></span> <span class="hljs-tag"><<span class="hljs-title">div</span>></span><span class="hljs-tag"><<span class="hljs-title">p</span>></span>p的包含块是div<span class="hljs-tag"></<span class="hljs-title">p</span>></span><span class="hljs-tag"><<span class="hljs-title">div</span>></span> //div的包含块是body <span class="hljs-tag"></<span class="hljs-title">body</span>></span></code></pre> <h3 id="替换非替换元素">替换/非替换元素</h3> <blockquote> <p>替换元素就是浏览器根据元素的标签和属性,来决定元素的具体显示内容。 <br> 通过 CSS content 属性来插入的对象 被称作 匿名可替换元素 <br> 如果元素的内容包含在文档之中,则为非替换元素 <br> 非替换元素的所有规则同样适用于替换元素,只有一个例外,width如果是auto,元素的高宽就是内容的固有高宽,比如img就是图片的原始大</p> </blockquote> <p>看完一些常用名词再详细理解一下</p> <p><strong>block box</strong></p> <p><a href="http://img.e-com-net.com/image/info8/f7a006d5020c4d50bc995e61c14d9b86.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/f7a006d5020c4d50bc995e61c14d9b86.jpg" alt="用户界面样式_第1张图片" title="" width="650" height="378" style="border:1px solid black;"></a></p> <p><strong>水平格式化</strong></p> <p>计算宽度</p> <p>正常流中,块级元素框的水平部分 = <code>其父元素的width</code> = margin-left+margin-right + padding-left+padding-right+ border-left+border-right+自身width</p> <ul> <li>在padding-left/right,margin-left/right,border-left/right,width(我们简称下水平7大属性)中只有margin和width的值可能为auto</li> <li>当margin-left/right,width三个值均设置有固定宽度的时候,margin-right会根据包含块的width自动补齐</li> <li>利用margin:0 auto 居中 所以,利用这种方式居中的时候,必须是要设置居中元素的宽度,这样左右margin的值便会相等,从而引起的居中,这个和text-align:center只能块级元素的内联内容设置居中是不一样的。</li> </ul> <p><strong>垂直格式化</strong></p> <p>height与width一样,height定义了内容区的高度,而不是元素框的高度。元素框上下的内边距,边距,都会增加到height值里。</p> <p>只有三个属性可以设置auto,height,和margin-top/bottom。注意!这里如果margin-top和margin-bottom同时设置为auto,也不会垂直居中,而是<strong>默认为零</strong>。</p> <p>垂直格式化,有一个很重要的方面是会造成垂直相邻外边距合并,</p> <p><strong>负margin</strong></p> <p>水平方向</p> <pre class="prettyprint"><code class=" hljs scss">若<span class="hljs-attribute">width</span>不是固定值,那么<span class="hljs-attribute">width</span>的值则会增大 因为要满足条件等于父元素<span class="hljs-attribute">width</span>,负<span class="hljs-attribute">margin</span>相当于负值,<span class="hljs-attribute">width</span> <span class="hljs-attribute">auto</span>自动增大 若<span class="hljs-attribute">width</span>为固定值,那么<span class="hljs-attribute">margin-right</span>则会<span class="hljs-attribute">auto</span>增大来满足这个条件</code></pre> <p><a href="http://img.e-com-net.com/image/info8/8efc4bd63a1042ac95ea60a6c6a88c67.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/8efc4bd63a1042ac95ea60a6c6a88c67.jpg" alt="用户界面样式_第2张图片" title="" width="650" height="263" style="border:1px solid black;"></a>灰色部分是body内的一个盒子,图二,没有定框使用负margin后,发生偏移,并且宽度增加,图三,定宽,发生偏移但是,宽度不增加,我们常常会发现出现莫名的水平滚动条,这里很有可能就是margin这小子在作祟</p> <p>垂直方向</p> <p><a href="http://img.e-com-net.com/image/info8/c87ddaf7fc86452f8d7d22f9ff2bf8fa.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/c87ddaf7fc86452f8d7d22f9ff2bf8fa.jpg" alt="用户界面样式_第3张图片" title="" width="650" height="278" style="border:1px solid black;"></a></p> <p>黑色是接在灰色div后的一个div,可以看到,margin-bottom为负值,不会造成元素本身的移动,而是造成兄弟元素往上移动,就像我不动,拉了下面的人一把,而margin-top为负值,就像我们排成一队,然后像兔子跳一样一起往前面跳了一步。</p> <p>从图二也可以看出来,黑色盒子对灰色盒子发生了覆盖,因为浏览器总是按从前到后的顺序显示元素,所以文档中后出现的正常流元素可能会覆盖较早出现的元素。</p> <p>可以发现,灰色盒子的高度依旧保持着并且渲染出来了,但是CSS读取的高度已经减小,下面的元素自然往上移动了</p> <h4 id="line-box-1">line Box</h4> <p>每一行称为一条Line Box,它又是由这一行的许多inline-box组成,它的高度可以直接由line-height决定,line boxes的高度垂直堆叠形成了containing box的高度,就是我们见到的div或是p标签之类的高度了。</p> <h2 id="基础概念">基础概念</h2> <h3 id="匿名文本">匿名文本</h3> <pre class="prettyprint"><code class=" hljs xml"><span class="hljs-tag"><<span class="hljs-title">div</span>></span>当你只有一把锤子<span class="hljs-tag"><<span class="hljs-title">span</span>></span>一切看起来<span class="hljs-tag"></<span class="hljs-title">span</span>></span>都像是颗钉子<span class="hljs-tag"></<span class="hljs-title">div</span>></span></code></pre> <pre class="prettyprint"><code class=" hljs ">未包含在行内元素的字符串(当你只有一把锤子,都像颗钉子)就叫匿名文本</code></pre> <h3 id="内容区-行内框-间距">内容区 行内框 间距</h3> <p><a href="http://img.e-com-net.com/image/info8/1b9d91cee44341bebfe9f28e13676854.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/1b9d91cee44341bebfe9f28e13676854.jpg" alt="用户界面样式_第4张图片" title="" width="650" height="122" style="border:1px solid black;"></a></p> <p><strong>内容区</strong> <br> css假设每个元素都会生成一个或者多个Box,称为元素框,元素框中心有内容区,内容区外周围包括了padding,border,margin,但是,替换元素是包括外边距,内边距,边框的。 <br> <strong>行间距</strong> <br> 行间距是font-size与line-height的差值,被分成两半在内容区的上下 <br> <strong>行内框</strong> <br> 非替换元素,行内框高度=line-height <br> 替换元素,行内框高度=内容区宽度(行间距不应用到替换元素) <br> <strong>行高</strong> <br> 两行文字基线的距离 <br> <strong>行框</strong> <br> 一行有很多行内框,行框是包含这一行行内框最高点和最低点的 <br> <strong>基线</strong> <br> 不同元素的基线位置不同,整个行框会有一个基线,行内元素的位置是基于两者基线对齐vertical-align(垂直对齐)</p> <blockquote> <p>该属性 定义 行内元素的基线相对于该元素所在行的基线的垂直对齐的方式。 <br> 只有一个元素属于inline或是inline-block(table-cell也可以理解为inline-block水平)水平,其身上的vertical-align属性才会起作用. <br> 同时也可以知道,改变其,会影响到行内框的位置,从而会影响到一整行行内元素的位置</p> </blockquote> <p>需要注意vertical-align为数值时,会让文字上下移动,当其为百分比时是针对line-height的百分比</p> <pre class="prettyprint"><code class=" hljs css"><span class="hljs-rules">{ <span class="hljs-rule"><span class="hljs-attribute">line-height</span>:<span class="hljs-value"> <span class="hljs-number">30</span>px</span></span>; <span class="hljs-rule"><span class="hljs-attribute">vertical-align</span>:<span class="hljs-value"> -<span class="hljs-number">10</span>%</span></span>; <span class="hljs-rule">}</span></span></code></pre> <p>实际上,等同于:</p> <pre class="prettyprint"><code class=" hljs css"><span class="hljs-rules">{ <span class="hljs-rule"><span class="hljs-attribute">line-height</span>:<span class="hljs-value"> <span class="hljs-number">30</span>px</span></span>; <span class="hljs-rule"><span class="hljs-attribute">vertical-align</span>:<span class="hljs-value"> -<span class="hljs-number">3</span>px</span></span>; <span class="hljs-comment">/* = 30px * -10% */</span> <span class="hljs-rule">}</span></span></code></pre> <p>想看vertical-align 和line-hright关系请戳</p> <p>好的,言归正传,回到正题</p> <p><strong>浮动破坏了正常的line boxes</strong>。</p> <p>默认情况下,图片与文字混排应该是这个样子:图片与文字基线对齐,图片与文字在同一行上,如下图所示: <img src="http://img.e-com-net.com/image/info8/c5c6dd1bf6754f4bbdaa75b625f459f0.png" alt="默认图文line boxes示意 >> 张鑫旭-鑫空间-鑫生活" title="" width="0" height="0"> 上图中,图片为一个inline boxes,两边的文字也是inline boxes。由于line boxes的高度是由其内部最高的inline boxes的高度决定的,所以这里line boxes的高度就是图片的高度。此时图片与文字是同一box类型的元素(都是inline boxes),是在同一行上的,所以,默认状态下,一张图片只能与一行文字对齐。而要想让一张图片要与多行文字对齐,您唯一能做的就是破坏正常的line boxes模型。</p> <p>而添加了浮动</p> <p><img src="http://img.e-com-net.com/image/info8/06bb4d6f1d6247a88ef648465013759a.png" alt="浮动图文布局 >> å¼ é‘«æ—­-鑫空间-鑫生活" title="" width="0" height="0"></p> <p>图片的inline boxes不存在了,图片失去了inline boxes特性就无法与inline boxes的文字排在一行了,其会从line boxes上脱离出来,跟随自身的方位属性,靠边排列。</p> <h2 id="user-select">user-select</h2> <p><code>user-select</code>属性可以设置元素是否可以被选中, 如果不能被选中, 当然就不可能被复制粘贴了</p> <p>要注意的是两点:</p> <ul> <li>一定要写浏览器前缀, 没有前缀的连Chrome52都无法生效</li> <li>设置一段文本的值为<code>none</code>时, 连同文本的周围的元素也一起选中并复制的话, Webkit内核的浏览器会把禁止选中的文本也复制过来, Firefox则没有这种近乎bug的表现</li> </ul> <h2 id="pointer-events">pointer-events</h2> <p>最重要的是<code>pointer-events: none</code>时表现</p> <p>这会阻止元素的默鼠标行为, 表现为:</p> <ul> <li>有href属性的a元素将无法跳转</li> <li>css的:hover属性无效</li> <li>js的click事件无效</li> </ul> <p>另外, 元素本身会达到”虚化”效果, 使得鼠标可以点击被遮盖的元素</p> <p><strong>看一些outline的妙用</strong></p> <p>万万不可在全局设置outline: 0 none;</p> <p>让普通元素代替表单控件元素有outline效果</p> <p>outline是一个真正意义上不占任何空间的属性</p> <p>用一个大大的outline来实现周围半透明的黑色遮罩,因为outline无论设置多么多么大,都不会占据空间影响布局,至于超出的部分,直接给父元素设置一个overflow:hidden就搞定了 注意:</p> <ul> <li>因为考虑到IE8不支持rgba,所以上面借助了filter设置了透明度为一半效果</li> <li>但是由于IE9支持rgba,再借助:root来进行重置,不使用filter</li> <li><p>再加上IE10针对镂空元素会有点击穿透问题,所以再给background设置看不见的背景内容就可以解决</p> <p>开发中很多时候,由于页面内容不够多,导致底部footer会出现尴尬的剩余空间,解决方法往往也有很多种,在此我们还是依然利用outline的功能来完美实现一下</p></li> </ul> <p>关键的css就是设置<strong>一个超大轮廓范围的outline</strong>属性,如给个9999px,保证无论屏幕多高,轮廓颜色都能覆盖</p> <p>值得注意的是,outline无法指定方位,它是直接向四周发散的,所以需要配合clip剪裁来进行处理,以左边和上边为边界进行裁剪</p> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1648761917348544512"></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">你可能感兴趣的:(nvnv,css)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1943987101301272576.htm" title="精通Canvas:15款时钟特效代码实现指南" target="_blank">精通Canvas:15款时钟特效代码实现指南</a> <span class="text-muted">烟幕缭绕</span> <div>本文还有配套的精品资源,点击获取简介:HTML5的Canvas是一个用于绘制矢量图形的API,通过JavaScript实现动态效果。本项目集合了15种不同的时钟特效代码,帮助开发者通过学习绘制圆形、线条、时间更新、旋转、颜色样式设置及动画效果等概念,深化对Canvas的理解和应用。项目中的CSS文件负责时钟的样式设定,而JS文件则包含实现各种特效的逻辑,通过不同的函数或类处理时间更新和动画绘制,提</div> </li> <li><a href="/article/1943930249423155200.htm" title="GoView 强势入驻 GitCode:拖拽低代码,打造高颜值数据大屏" target="_blank">GoView 强势入驻 GitCode:拖拽低代码,打造高颜值数据大屏</a> <span class="text-muted">GitCode 代码君</span> <a class="tag" taget="_blank" href="/search/gitcode/1.htm">gitcode</a><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/%E5%BC%80%E6%BA%90/1.htm">开源</a> <div>信息可视化时代,数字大屏日益成为展示核心KPI、运营状态、监控预警的主流形式。然而,用传统方式开发一个定制化数字大屏需要解决多少问题?1.繁复的数据源集成,各种不同的协议和格式……2.让人晕头转向的可视化逻辑,调动艰难的样式、布局、动画,和往往难以统一的风格3.牵一发而动全身的代码结构,就想换个主题色结果开启的全局CSS大冒险……现在,一个开源项目即可搞定上述问题——拖拽式低代码数字可视化平台Go</div> </li> <li><a href="/article/1943919909612351488.htm" title="Vue.js 过渡 & 动画" target="_blank">Vue.js 过渡 & 动画</a> <span class="text-muted">lsx202406</span> <a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>Vue.js过渡&动画引言在Web开发中,过渡与动画是提升用户体验的关键元素。Vue.js作为一款流行的前端框架,提供了强大的过渡与动画功能,使得开发者能够轻松实现丰富的交互效果。本文将深入探讨Vue.js中的过渡与动画,包括其原理、应用场景以及实现方法。一、Vue.js过渡原理Vue.js过渡是利用CSS3的transition属性实现的。当Vue.js侦测到数据变化时,会自动触发过渡效果。过渡</div> </li> <li><a href="/article/1943914742187880448.htm" title="Vue3 tailwindcss" target="_blank">Vue3 tailwindcss</a> <span class="text-muted"></span> <div>1、安装tailwindcsspnpmi-Dtailwindcsspostcssautoprefixer#yarnadd-Dtailwindcsspostcssautoprefixer#npmi-Dtailwindcsspostcssautoprefixer2、创建TailwindCSS配置文件npxtailwindcssinit-ptailwind.config.js/**@type{impor</div> </li> <li><a href="/article/1943905284925747200.htm" title="css遗忘的知识2(grid布局,&父类选择器与:has() 讲解)" target="_blank">css遗忘的知识2(grid布局,&父类选择器与:has() 讲解)</a> <span class="text-muted">不断努力的根号七</span> <a class="tag" taget="_blank" href="/search/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/javascript/1.htm">javascript</a> <div>---grid布局1.基础Grid布局定义gird布局和行宽.container{display:grid;grid-template-columns:100px200px300px;/*三列,宽度分别为100px,200px,300px*/grid-template-rows:100px200px;/*两行,高度分别为100px,200px*/}常用单位fr(fractionalunit):可用</div> </li> <li><a href="/article/1943875785089675264.htm" title="Webpack5 多页面实践" target="_blank">Webpack5 多页面实践</a> <span class="text-muted"></span> <div>特性维度单页面应用-SPA多页面统一目录-MPA多页面单独部署-MPA入口数量单个,只有一个HTML文件多个,多个HTML文件多个,多个HTML文件,分别打包输出资源输出结构所有资源输出到统一目录(如js/,css/)所有页面的资源共用js/,css/等目录每页资源放在各自目录(如index/js/,index/css/)公共资源复用高:依赖打入主包或懒加载chunk,资源完全共享中:可通过spl</div> </li> <li><a href="/article/1943832156052713472.htm" title="配置Nginx实现静态资源访问" target="_blank">配置Nginx实现静态资源访问</a> <span class="text-muted">Gappsong874</span> <a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><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%E6%9E%B6%E6%9E%84/1.htm">安全架构</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4%E5%BC%80%E5%8F%91/1.htm">运维开发</a> <div>Nginx是一款高性能的HTTP和反向代理服务器,常用于处理静态资源请求。通过合理配置,可以显著提升静态资源的访问速度和服务器性能。以下内容将详细介绍如何配置Nginx以实现静态资源的高效访问。基本静态资源配置静态资源通常包括HTML文件、CSS样式表、JavaScript脚本、图片、视频等。Nginx通过简单的配置即可处理这些请求。在Nginx的配置文件中,通常位于/etc/nginx/ngin</div> </li> <li><a href="/article/1943827993189216256.htm" title="JQ+vue实现图片拼接(无限套娃版)" target="_blank">JQ+vue实现图片拼接(无限套娃版)</a> <span class="text-muted">小周同学:</span> <a class="tag" taget="_blank" href="/search/js/1.htm">js</a><a class="tag" taget="_blank" href="/search/vue/1.htm">vue</a><a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</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/jquery/1.htm">jquery</a> <div>css样式/*css初始化*/*{margin:0;padding:0;}/*去掉li的小圆点*/li{list-style:none;}/*去掉a的下划线*/a{text-decoration:none;}/*搜索框去除边框*/input,button,select{border:0;/*设置背景颜色为透明*/background-color:transparent;/*去掉外轮廓*/outli</div> </li> <li><a href="/article/1943754997023961088.htm" title="前端开发常见问题" target="_blank">前端开发常见问题</a> <span class="text-muted"></span> <div>技术文章大纲性能优化问题页面加载速度慢的常见原因及解决方案渲染阻塞资源的处理方法图片与媒体文件优化策略懒加载与代码分割的实现方式浏览器兼容性问题不同浏览器对CSS特性的支持差异JavaScriptAPI的兼容性处理方案Polyfill的使用场景与实现方法自动化测试工具在兼容性测试中的应用响应式设计挑战移动端与桌面端布局适配问题媒体查询的最佳实践方案视口单位与相对单位的正确使用高DPI屏幕的图像处理</div> </li> <li><a href="/article/1943717682692026368.htm" title="CSS 中px、em、rem、%、vw、vh、vm、rpx、fr 介绍和区别对比" target="_blank">CSS 中px、em、rem、%、vw、vh、vm、rpx、fr 介绍和区别对比</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/css3/1.htm">css3</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> <div>CSS单位详解:px、em、rem、%、vw、vh、vmin/vmax、rpx、fr以下是各单位的定义、特点、区别及使用场景对比:1.px(像素)定义:绝对单位,表示屏幕上的一个物理像素点。特点:固定尺寸,不受其他因素影响。在高分辨率屏幕上可能显示过小(需配合viewport缩放)。场景:边框、固定尺寸元素(如图标)。示例:.box{width:200px;}/*固定宽度200像素*/2.em(相</div> </li> <li><a href="/article/1943717683312783360.htm" title="CSS和CSS3区别对比" target="_blank">CSS和CSS3区别对比</a> <span class="text-muted"></span> <div>CSS(层叠样式表)与CSS3(CSS的第三个版本)的区别主要体现在功能扩展、语法特性以及应用场景等方面。以下是两者的核心对比:一、核心概念与版本关系CSS:是基础样式表语言,用于分离网页内容与样式,最初发布于1996年(CSS1),后续补充了CSS2(1998年),但功能较为基础,主要关注简单的布局和样式。CSS3:是CSS的最新版本(2005年起制定),向下兼容CSS2,并引入模块化设计(如F</div> </li> <li><a href="/article/1943694366480592896.htm" title="每天一个前端小知识 Day 28 - Web Workers / 多线程模型在前端中的应用实践" target="_blank">每天一个前端小知识 Day 28 - Web Workers / 多线程模型在前端中的应用实践</a> <span class="text-muted">蓝婷儿</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E9%9D%A2%E8%AF%95/1.htm">前端面试</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>WebWorkers/多线程模型在前端中的应用实践一、为什么前端需要多线程?单线程JS的瓶颈:浏览器主线程不仅负责执行JS,还要负责:UI渲染(DOM/CSS)用户事件处理(点击、输入)一旦JS执行耗时任务(如大数组处理、加密运算),会阻塞页面响应多线程的意义:✅把计算密集型或IO密集型任务移出主线程,防止“卡死”✅实现离线计算、并发执行、后台数据同步✅提升用户体验、增强系统鲁棒性二、前端中的“线</div> </li> <li><a href="/article/1943670796639596544.htm" title="这次是讲解一下条件函数的用法,还有一个简单的示例" target="_blank">这次是讲解一下条件函数的用法,还有一个简单的示例</a> <span class="text-muted">言青缘</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a> <div>我是以普遍的朋友圈做的示例这个可以实现隐藏和显示朋友圈的评论现在我吧具体用法说一下首先要先把页面的大概写出来比如我这个名字我的言论2025-4-30{{is?'展开':'隐藏'}}评论好好好真好太好了然后这是css代码.post-container{width:100%;max-width:600px;margin:0auto;padding:16px;background-color:#fff;</div> </li> <li><a href="/article/1943667391619723264.htm" title="vue基础" target="_blank">vue基础</a> <span class="text-muted">知还215</span> <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> <div>在vue项目下的src-&gt;App.vue中有三个模板1.script是写js代码的地方2.template是写html的地方3.style是写css的地方npmi的作用是加载需要的依赖包</div> </li> <li><a href="/article/1943586705781092352.htm" title="scss基本使用" target="_blank">scss基本使用</a> <span class="text-muted">北北~Simple</span> <a class="tag" taget="_blank" href="/search/CSS/1.htm">CSS</a><a class="tag" taget="_blank" href="/search/scss/1.htm">scss</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a> <div>scss定义变量$符号标识来定义变量变量名用中划线和下划线分隔其实是表示一个意思$color_base和$color-base其实指向的是同一个变量。父选择器的标识符&div{color:red;&:hover{color:bule;}}群组选择器的嵌套//css使用.aaah1,.aaah2,.aaah3{font-size:30px}//sass嵌套使用.aaa{h1,h2,h3{font-s</div> </li> <li><a href="/article/1943570823679897600.htm" title="【第5章 动画】5.11 动画制作的最佳指导原则" target="_blank">【第5章 动画】5.11 动画制作的最佳指导原则</a> <span class="text-muted">ncj393437906</span> <a class="tag" taget="_blank" href="/search/%E3%80%8AHTML5/1.htm">《HTML5</a><a class="tag" taget="_blank" href="/search/Canvas%E6%A0%B8%E5%BF%83%E6%8A%80%E6%9C%AF/1.htm">Canvas核心技术</a><a class="tag" taget="_blank" href="/search/%E5%9B%BE%E5%BD%A2/1.htm">图形</a><a class="tag" taget="_blank" href="/search/%E5%8A%A8%E7%94%BB%E4%B8%8E%E6%B8%B8%E6%88%8F%E5%BC%80%E5%8F%91%E3%80%8B/1.htm">动画与游戏开发》</a><a class="tag" taget="_blank" href="/search/canvas/1.htm">canvas</a> <div>文章目录在制作动画时,请牢记下列指导原则:使用类似requestNextAnimationFrame()这样的“polyfill式”方法来保持浏览器兼容性。将业务逻辑的更新与动画的绘制分开。使用“基于时间的运动”来协调动画的播放速度。用剪辑区域或图块复制技术将复杂的背景图像恢复到屏幕上。必要时可使用一个或多个离屏缓冲区以提升背景的绘制速度。不要通过CSS指定阴影及圆角效果。不要在Canvas中进行</div> </li> <li><a href="/article/1943548379183247360.htm" title="元旦倒计时项目实战:CSS+HTML+JS网页实现" target="_blank">元旦倒计时项目实战:CSS+HTML+JS网页实现</a> <span class="text-muted">BIG-HO</span> <div>本文还有配套的精品资源,点击获取简介:本文介绍了一个使用CSS、HTML和JavaScript技术实现的网页倒计时项目,该项目展示了距离元旦还有多少时间。CSS负责页面布局、美化和响应式设计,HTML构建页面结构并绑定数据,而JavaScript则处理时间计算、定时更新以及可能的交互事件。通过这个项目,开发者可以学习和掌握前端开发的动态效果与时间处理技巧。1.网页倒计时项目介绍在现代的数字营销和事</div> </li> <li><a href="/article/1943397360717590528.htm" title="Vercel平台:前端项目部署与全球加速的最佳实践" target="_blank">Vercel平台:前端项目部署与全球加速的最佳实践</a> <span class="text-muted"></span> <div>本文还有配套的精品资源,点击获取简介:Vercel是一个前端开发人员友好的云平台,专注于前端应用的快速部署和高效分发。该平台提供即时代码预览、自定义域名、全球边缘网络和无缝团队协作等高级功能,以提供最佳的开发体验和最终用户性能。Vercel还支持零配置部署和自动SSL证书,以及与SCSS集成,使得前端项目的构建和部署变得更加简单快捷。本文将探讨如何使用Vercel部署前端项目,并着重于如何利用其特</div> </li> <li><a href="/article/1943334456697876480.htm" title="小孩子才做选择题,成年人全都要" target="_blank">小孩子才做选择题,成年人全都要</a> <span class="text-muted"></span> <div>前言选择器的"相亲大会"在CSS的世界里,选择器就像一群急着找对象的单身青年。它们每天的工作就是在HTML文档的茫茫人海中,精准找到自己心仪的"元素对象"。选择器ID选择器:霸道总裁ID选择器出场自带BGM:"这片鱼塘我承包了!"。它不允许文档中有第二个同ID的元素存在。针对某一个特定标签来选择,只能使用一次。css中的ID选择器以#表示#header{height:80px;/*这个ID只能有一</div> </li> <li><a href="/article/1943319326782189568.htm" title="最新SCI/SSCI/EI期刊分类分区介绍;包括国内核心和国际核心" target="_blank">最新SCI/SSCI/EI期刊分类分区介绍;包括国内核心和国际核心</a> <span class="text-muted">zhonghuagongren</span> <a class="tag" taget="_blank" href="/search/SCI%E5%88%86%E5%8C%BA/1.htm">SCI分区</a><a class="tag" taget="_blank" href="/search/%E8%AE%BA%E6%96%87%E7%AC%94%E8%AE%B0/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/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/1.htm">经验分享</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a> <div>一、按刊号分类CN:中国刊号,国内只要有CN号即为正式刊物。ISSN:国际刊号,相对容易申请。二、按地域分类根据期刊主办单位区分:国家级:由中华人民共和国教育部等主办。省部级:由中科院XX研究所等主办。三、核心期刊分类(一)国内核心期刊南大核心(CSSCI):《中文社会科学引文索引》,最具权威。北大核心:北京大学图书馆《中文核心期刊要目总览》,普及最广的中文期刊。CSCD(中国科学引文数据库):由</div> </li> <li><a href="/article/1943316555404210176.htm" title="CSS和JavaScript制作的动态滚动图像动画教程" target="_blank">CSS和JavaScript制作的动态滚动图像动画教程</a> <span class="text-muted">贫僧法号止尘</span> <div>本文还有配套的精品资源,点击获取简介:滚动动画通过CSS和JavaScript技术在网页中实现元素随着用户滚动而动态展现或改变状态的效果,增强了用户的互动体验。CSS通过@keyframes规则和transform属性定义动画效果,而JavaScript则通过监听滚动事件和计算元素位置来执行动画逻辑。HTML作为网页结构的基础,通过添加ID或类名来帮助CSS和JavaScript选择和操作元素。通</div> </li> <li><a href="/article/1943304571363323904.htm" title="【GitHub开源项目实战】Ladybird 浏览器引擎项目深度解析:构建自主浏览器内核的系统工程与性能优化路径" target="_blank">【GitHub开源项目实战】Ladybird 浏览器引擎项目深度解析:构建自主浏览器内核的系统工程与性能优化路径</a> <span class="text-muted">观熵</span> <a class="tag" taget="_blank" href="/search/GitHub%E5%BC%80%E6%BA%90%E9%A1%B9%E7%9B%AE%E5%AE%9E%E6%88%98/1.htm">GitHub开源项目实战</a><a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/1.htm">性能优化</a><a class="tag" taget="_blank" href="/search/github/1.htm">github</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%BA%90/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> <div>GitHub开源实战|Ladybird浏览器引擎项目深度解析:构建自主浏览器内核的系统工程与性能优化路径关键词Ladybird,浏览器引擎,Web渲染,开源操作系统,图形系统,HTML解析,CSS布局,自主可控内核,系统架构设计,性能调优摘要Ladybird是一个由SerenityOS项目孵化的轻量级浏览器引擎,致力于从零构建一个独立、自主实现的网页渲染与浏览器平台。该项目不依赖现有主流内核(如W</div> </li> <li><a href="/article/1943291455892156416.htm" title="Visual Studio和Visual Studio Code适用于哪些编程语言" target="_blank">Visual Studio和Visual Studio Code适用于哪些编程语言</a> <span class="text-muted"></span> <div>VisualStudio和VisualStudioCode都适用于多种编程语言,它们的适用编程语言如下:VisualStudio适用于:C#VisualBasic.NETF#C++JavaScriptTypeScriptPythonHTML/CSSJava(通过插件支持)VisualStudioCode适用于:C#VisualBasic.NETF#C++JavaScriptTypeScriptPy</div> </li> <li><a href="/article/1943281247262404608.htm" title="VITE(使用REACT)+TAILWINDCSS+SHADCN基础环境设定" target="_blank">VITE(使用REACT)+TAILWINDCSS+SHADCN基础环境设定</a> <span class="text-muted">马特说</span> <a class="tag" taget="_blank" href="/search/REACT/1.htm">REACT</a><a class="tag" taget="_blank" href="/search/react.js/1.htm">react.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/%E5%89%8D%E7%AB%AF%E6%A1%86%E6%9E%B6/1.htm">前端框架</a> <div>React+TypeScript+Tailwind+shadcn/ui项目配置指南前言本指南将帮助你搭建一个基于Vite的React项目,包含TypeScript、TailwindCSS和shadcn/ui组件库的完整配置过程。目录配置NPM仓库创建Vite项目安装基础依赖TailwindCSS配置安装并初始化TailwindCSS初始化shadcn/ui安装shadcn/ui组件配置App.ts</div> </li> <li><a href="/article/1943246843366404096.htm" title="打造自己的组件库(二)CSS工程化方案" target="_blank">打造自己的组件库(二)CSS工程化方案</a> <span class="text-muted">行云&流水</span> <a class="tag" taget="_blank" href="/search/Vue3%E7%BB%84%E4%BB%B6%E5%BA%93/1.htm">Vue3组件库</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/Vue3/1.htm">Vue3</a><a class="tag" taget="_blank" href="/search/vue3%E7%BB%84%E4%BB%B6%E5%BA%93/1.htm">vue3组件库</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> <div>1.css工程化方案1.1.目录结构设计src/assets/styles/├──index.scss#主入口文件├──variables.scss#全局CSS变量定义├──mixins.scss#SCSS混入├──reset.scss#样式重置└──theme/├──light.scss#亮色主题└──dark.scss#暗色主题1.2.CSS工程化特点1.2.1模块化导入@use'./them</div> </li> <li><a href="/article/1943217850944647168.htm" title="【CSS】文本超过行数显示“展开”、“收起”" target="_blank">【CSS】文本超过行数显示“展开”、“收起”</a> <span class="text-muted">扶我起来还能学_</span> <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> <div>使用css样式控制文本超过行数显示“展开”、“收起”css代码如下:.container{width:800px;position:relative;padding-bottom:20px;}.content{overflow:hidden;line-height:1;/*最多展示几行就(n*line-height)em,*/height:3em;background:yellow;}.more{</div> </li> <li><a href="/article/1943182673862258688.htm" title="前端面试的话术集锦第 25 篇博文——CSS面试题上" target="_blank">前端面试的话术集锦第 25 篇博文——CSS面试题上</a> <span class="text-muted">互联网全栈开发实战</span> <a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95%E4%B8%93%E6%A0%8F-%E5%89%8D%E7%AB%AF/1.htm">面试专栏-前端</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF%E9%9D%A2%E8%AF%95/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/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/%E8%B7%B3%E6%A7%BD/1.htm">跳槽</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E5%92%8C%E5%8F%91%E5%B1%95/1.htm">职场和发展</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E5%8F%91%E5%B1%95/1.htm">职场发展</a><a class="tag" taget="_blank" href="/search/%E6%B1%82%E8%81%8C%E6%8B%9B%E8%81%98/1.htm">求职招聘</a> <div>这是记录前端面试的话术集锦第二十五篇博文——CSS面试题上,我会不断更新该博文。❗❗❗1.介绍一下标准的CSS的盒子模型?与低版本IE的盒子模型有什么不同的?标准盒子模型:宽度=内容的宽度(content)+border+padding+margin低版本IE盒子模型:宽度=内容宽度(content+border+padding)+margin2.box-sizing属性用来控制元素的盒子模型的解</div> </li> <li><a href="/article/1943172465710657536.htm" title="Java程序设计(二十七):基于SSM框架的OA办公自动化管理平台的设计与实现" target="_blank">Java程序设计(二十七):基于SSM框架的OA办公自动化管理平台的设计与实现</a> <span class="text-muted">人工智能_SYBH</span> <a class="tag" taget="_blank" href="/search/2025%E5%B9%B4java%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1/1.htm">2025年java程序设计</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98/1.htm">数据挖掘</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/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/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/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a> <div>1.项目概述办公自动化(OA,OfficeAutomation)管理平台是企业实现内部管理信息化的重要工具。本文提出并实现了一个基于Java的OA办公自动化管理平台。该平台基于SSM架构(Spring+SpringMVC+MyBatis),数据库采用MySQL,并通过HTML、CSS、JavaScript等技术实现用户界面。1.1平台功能简介平台提供了管理员、普通用户和部门三类角色,分别具有不同的</div> </li> <li><a href="/article/1943170954217713664.htm" title="从零开始学前端(HTML篇):9、嵌入另一个页面的iframe元素" target="_blank">从零开始学前端(HTML篇):9、嵌入另一个页面的iframe元素</a> <span class="text-muted"></span> <div>iframe元素通常用于在页面中嵌入另一个页面可以理解为在自己的页面里弄出一个区域,里面放置另一个页面iframe是可替换元素可替换元素:是指会被替换的元素。例如图片元素img等,书写img时没有在里门添加内容,而img元素把加载出来的图片作为内容。通常是行盒通常显示的内容取决于元素的属性css不能完成控制其中的样式具有行块盒的特点</div> </li> <li><a href="/article/1943101501765382144.htm" title="深入解析:v0、Cursor、Manus等AI编程助手的系统提示词、工具与模型" target="_blank">深入解析:v0、Cursor、Manus等AI编程助手的系统提示词、工具与模型</a> <span class="text-muted">张道宁</span> <a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>引言在当今快速发展的AI编程领域,涌现出了许多强大的AI编程助手工具,如v0、Cursor、Manus、Same.dev、Lovable、Devin和ReplitAgent等。这些工具通过智能化的代码生成、补全和优化,正在彻底改变开发者的工作流程。v0:Vercel的AIUI生成器系统提示词设计v0的系统提示词专注于将自然语言描述转换为可用的UI代码(主要是React和TailwindCSS)。其</div> </li> <li><a href="/article/51.htm" title="mondb入手" target="_blank">mondb入手</a> <span class="text-muted">木zi_鸣</span> <a class="tag" taget="_blank" href="/search/mongodb/1.htm">mongodb</a> <div>windows 启动mongodb&nbsp; 编写bat文件, mongod --dbpath D:\software\MongoDBDATA mongod --help&nbsp; 查询各种配置 配置在mongob 打开批处理,即可启动,27017原生端口,shell操作监控端口&nbsp; 扩展28017,web端操作端口 启动配置文件配置, 数据更灵活&nbsp</div> </li> <li><a href="/article/178.htm" title="大型高并发高负载网站的系统架构" target="_blank">大型高并发高负载网站的系统架构</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/%E9%AB%98%E5%B9%B6%E5%8F%91/1.htm">高并发</a><a class="tag" taget="_blank" href="/search/%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1/1.htm">负载均衡</a> <div>&nbsp; &nbsp; &nbsp; &nbsp; 扩展Web应用程序 一.概念 &nbsp; &nbsp; &nbsp; &nbsp; 简单的来说,如果一个系统可扩展,那么你可以通过扩展来提供系统的性能。这代表着系统能够容纳更高的负载、更大的数据集,并且系统是可维护的。扩展和语言、某项具体的技术都是无关的。扩展可以分为两种: &nbsp; &nbsp; &nbsp; &nbsp; 1.</div> </li> <li><a href="/article/305.htm" title="DISPLAY变量和xhost(原创)" target="_blank">DISPLAY变量和xhost(原创)</a> <span class="text-muted">czmmiao</span> <a class="tag" taget="_blank" href="/search/display/1.htm">display</a> <div>DISPLAY 在Linux/Unix类操作系统上, DISPLAY用来设置将图形显示到何处. 直接登陆图形界面或者登陆命令行界面后使用startx启动图形, DISPLAY环境变量将自动设置为:0:0, 此时可以打开终端, 输出图形程序的名称(比如xclock)来启动程序, 图形将显示在本地窗口上, 在终端上输入printenv查看当前环境变量, 输出结果中有如下内容:DISPLAY=:0.0</div> </li> <li><a href="/article/432.htm" title="获取B/S客户端IP" target="_blank">获取B/S客户端IP</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/%E7%BC%96%E7%A8%8B/1.htm">编程</a><a class="tag" taget="_blank" href="/search/jsp/1.htm">jsp</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/%E6%B5%8F%E8%A7%88%E5%99%A8/1.htm">浏览器</a> <div>&nbsp;&nbsp; 最近想写个B/S架构的聊天系统,因为以前做过C/S架构的QQ聊天系统,所以对于Socket通信编程只是一个巩固。对于C/S架构的聊天系统,由于存在客户端Java应用,所以直接在代码中获取客户端的IP,应用的方法为: &nbsp;&nbsp; String ip = InetAddress.getLocalHost().getHostAddress(); 然而对于WEB</div> </li> <li><a href="/article/559.htm" title="浅谈类和对象" target="_blank">浅谈类和对象</a> <span class="text-muted">朱辉辉33</span> <a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a> <div>&nbsp;&nbsp;&nbsp; 类是对一类事物的总称,对象是描述一个物体的特征,类是对象的抽象。简单来说,类是抽象的,不占用内存,对象是具体的, 占用存储空间。 &nbsp;&nbsp;&nbsp; 类是由属性和方法构成的,基本格式是public&nbsp; class 类名{ //定义属性 private/public 数据类型 属性名; //定义方法 publ</div> </li> <li><a href="/article/686.htm" title="android activity与viewpager+fragment的生命周期问题" target="_blank">android activity与viewpager+fragment的生命周期问题</a> <span class="text-muted">肆无忌惮_</span> <a class="tag" taget="_blank" href="/search/viewpager/1.htm">viewpager</a> <div>有一个Activity里面是ViewPager,ViewPager里面放了两个Fragment。 第一次进入这个Activity。开启了服务,并在onResume方法中绑定服务后,对Service进行了一定的初始化,其中调用了Fragment中的一个属性。 super.onResume(); bindService(intent, conn, BIND_AUTO_CREATE); </div> </li> <li><a href="/article/813.htm" title="base64Encode对图片进行编码" target="_blank">base64Encode对图片进行编码</a> <span class="text-muted">843977358</span> <a class="tag" taget="_blank" href="/search/base64/1.htm">base64</a><a class="tag" taget="_blank" href="/search/%E5%9B%BE%E7%89%87/1.htm">图片</a><a class="tag" taget="_blank" href="/search/encoder/1.htm">encoder</a> <div>/** * 对图片进行base64encoder编码 * * @author mrZhang * @param path * @return */ public static String encodeImage(String path) { BASE64Encoder encoder = null; byte[] b = null; I</div> </li> <li><a href="/article/940.htm" title="Request Header简介" target="_blank">Request Header简介</a> <span class="text-muted">aigo</span> <a class="tag" taget="_blank" href="/search/servlet/1.htm">servlet</a> <div>当一个客户端(通常是浏览器)向Web服务器发送一个请求是,它要发送一个请求的命令行,一般是GET或POST命令,当发送POST命令时,它还必须向服务器发送一个叫“Content-Length”的请求头(Request &nbsp; Header) &nbsp; 用以指明请求数据的长度,除了Content-Length之外,它还可以向服务器发送其它一些Headers,如: &nbsp; &nbsp;</div> </li> <li><a href="/article/1067.htm" title="HttpClient4.3 创建SSL协议的HttpClient对象" target="_blank">HttpClient4.3 创建SSL协议的HttpClient对象</a> <span class="text-muted">alleni123</span> <a class="tag" taget="_blank" href="/search/httpclient/1.htm">httpclient</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/ssl/1.htm">ssl</a> <div>public class HttpClientUtils { public static CloseableHttpClient createSSLClientDefault(CookieStore cookies){ SSLContext sslContext=null; try { sslContext=new SSLContextBuilder().l</div> </li> <li><a href="/article/1194.htm" title="java取反 -右移-左移-无符号右移的探讨" target="_blank">java取反 -右移-左移-无符号右移的探讨</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/%E4%BD%8D%E8%BF%90%E7%AE%97%E7%AC%A6+%E4%BD%8D%E7%A7%BB/1.htm">位运算符 位移</a> <div>取反: 在二进制中第一位,1表示符数,0表示正数 byte a = -1; 原码:10000001 反码:11111110 补码:11111111 //异或: 00000000 byte b = -2; 原码:10000010 反码:11111101 补码:11111110 //异或: 00000001 </div> </li> <li><a href="/article/1321.htm" title="java多线程join的作用与用法" target="_blank">java多线程join的作用与用法</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/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a> <div>&nbsp; &nbsp; &nbsp; &nbsp; 对于JAVA的join,JDK 是这样说的:join public final void join (long millis )throws InterruptedException Waits at most millis milliseconds for this thread to die. A timeout of 0 means t</div> </li> <li><a href="/article/1448.htm" title="Java发送http请求(get 与post方法请求)" target="_blank">Java发送http请求(get 与post方法请求)</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/spring/1.htm">spring</a> <div>PostRequest.java package com.bijian.study; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURL</div> </li> <li><a href="/article/1575.htm" title="【Struts2二】struts.xml中package下的action配置项默认值" target="_blank">【Struts2二】struts.xml中package下的action配置项默认值</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/struts.xml/1.htm">struts.xml</a> <div>在第一部份,定义了struts.xml文件,如下所示: &nbsp; &lt;!DOCTYPE struts PUBLIC &quot;-//Apache Software Foundation//DTD Struts Configuration 2.3//EN&quot; &quot;http://struts.apache.org/dtds/struts</div> </li> <li><a href="/article/1702.htm" title="【Kafka十三】Kafka Simple Consumer" target="_blank">【Kafka十三】Kafka Simple Consumer</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/simple/1.htm">simple</a> <div>代码中关于Host和Port是割裂开的,这会导致单机环境下的伪分布式Kafka集群环境下,这个例子没法运行。 实际情况是需要将host和port绑定到一起, &nbsp; package kafka.examples.lowlevel; import kafka.api.FetchRequest; import kafka.api.FetchRequestBuilder; impo</div> </li> <li><a href="/article/1829.htm" title="nodejs学习api" target="_blank">nodejs学习api</a> <span class="text-muted">ronin47</span> <a class="tag" taget="_blank" href="/search/nodejs+api/1.htm">nodejs api</a> <div>NodeJS基础 什么是NodeJS JS是脚本语言,脚本语言都需要一个解析器才能运行。对于写在HTML页面里的JS,浏览器充当了解析器的角色。而对于需要独立运行的JS,NodeJS就是一个解析器。 每一种解析器都是一个运行环境,不但允许JS定义各种数据结构,进行各种计算,还允许JS使用运行环境提供的内置对象和方法做一些事情。例如运行在浏览器中的JS的用途是操作DOM,浏览器就提供了docum</div> </li> <li><a href="/article/1956.htm" title="java-64.寻找第N个丑数" target="_blank">java-64.寻找第N个丑数</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div> public class UglyNumber { /** * 64.查找第N个丑数 具体思路可参考 [url] http://zhedahht.blog.163.com/blog/static/2541117420094245366965/[/url] * 题目:我们把只包含因子 2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14</div> </li> <li><a href="/article/2083.htm" title="二维数组(矩阵)对角线输出" target="_blank">二维数组(矩阵)对角线输出</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/%E4%BA%8C%E7%BB%B4%E6%95%B0%E7%BB%84/1.htm">二维数组</a> <div> /** 二维数组 对角线输出 两个方向 例如对于数组: { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 }, { 13, 14, 15, 16 }, slash方向输出: 1 5 2 9 6 3 13 10 7 4 14 11 8 15 12 16 backslash输出: 4 3</div> </li> <li><a href="/article/2210.htm" title="[JWFD开源工作流设计]工作流跳跃模式开发关键点(今日更新)" target="_blank">[JWFD开源工作流设计]工作流跳跃模式开发关键点(今日更新)</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C%E6%B5%81/1.htm">工作流</a> <div>&nbsp;&nbsp; 既然是做开源软件的,我们的宗旨就是给大家分享设计和代码,那么现在我就用很简单扼要的语言来透露这个跳跃模式的设计原理 &nbsp;&nbsp; 大家如果用过JWFD的ARC-自动运行控制器,或者看过代码,应该知道在ARC算法模块中有一个函数叫做SAN(),这个函数就是ARC的核心控制器,要实现跳跃模式,在SAN函数中一定要对LN链表数据结构进行操作,首先写一段代码,把</div> </li> <li><a href="/article/2337.htm" title="redis常见使用" target="_blank">redis常见使用</a> <span class="text-muted">cuityang</span> <a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a><a class="tag" taget="_blank" href="/search/%E5%B8%B8%E8%A7%81%E4%BD%BF%E7%94%A8/1.htm">常见使用</a> <div>redis 通常被认为是一个数据结构服务器,主要是因为其有着丰富的数据结构 strings、map、 list、sets、 sorted sets 引入jar包 jedis-2.1.0.jar&nbsp; (本文下方提供下载) package redistest; import redis.clients.jedis.Jedis; public class Listtest</div> </li> <li><a href="/article/2464.htm" title="配置多个redis" target="_blank">配置多个redis</a> <span class="text-muted">dalan_123</span> <a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a> <div>配置多个redis客户端 &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;beans xmlns=&quot;http://www.springframework.org/schema/beans&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlns:xsi=&quo</div> </li> <li><a href="/article/2591.htm" title="attrib命令" target="_blank">attrib命令</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/attr/1.htm">attr</a> <div>&nbsp; attrib指令用于修改文件的属性.文件的常见属性有:只读.存档.隐藏和系统.&nbsp; &nbsp;&nbsp;只读属性是指文件只可以做读的操作.不能对文件进行写的操作.就是文件的写保护.&nbsp; &nbsp;&nbsp;存档属性是用来标记文件改动的.即在上一次备份后文件有所改动.一些备份软件在备份的时候会只去备份带有存档属性的文件.&nbsp; </div> </li> <li><a href="/article/2718.htm" title="Yii使用公共函数" target="_blank">Yii使用公共函数</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/yii/1.htm">yii</a> <div>在网站项目中,没必要把公用的函数写成一个工具类,有时候面向过程其实更方便。 在入口文件index.php里添加 require_once('protected/function.php'); 即可对其引用,成为公用的函数集合。 function.php如下: &nbsp; &lt;?php /** &nbsp; * This is the shortcut to D</div> </li> <li><a href="/article/2845.htm" title="linux 系统资源的查看(free、uname、uptime、netstat)" target="_blank">linux 系统资源的查看(free、uname、uptime、netstat)</a> <span class="text-muted">eksliang</span> <a class="tag" taget="_blank" href="/search/netstat/1.htm">netstat</a><a class="tag" taget="_blank" href="/search/linux+uname/1.htm">linux uname</a><a class="tag" taget="_blank" href="/search/linux+uptime/1.htm">linux uptime</a><a class="tag" taget="_blank" href="/search/linux+free/1.htm">linux free</a> <div>linux 系统资源的查看 转载请出自出处:http://eksliang.iteye.com/blog/2167081 &nbsp; http://eksliang.iteye.com 一、free查看内存的使用情况 语法如下: &nbsp; free [-b][-k][-m][-g] [-t] 参数含义 -b:直接输入free时,显示的单位是kb我们可以使用b(bytes),m</div> </li> <li><a href="/article/2972.htm" title="JAVA的位操作符" target="_blank">JAVA的位操作符</a> <span class="text-muted">greemranqq</span> <a class="tag" taget="_blank" href="/search/%E4%BD%8D%E8%BF%90%E7%AE%97/1.htm">位运算</a><a class="tag" taget="_blank" href="/search/JAVA%E4%BD%8D%E7%A7%BB/1.htm">JAVA位移</a><a class="tag" taget="_blank" href="/search/%3C%3C/1.htm"><<</a><a class="tag" taget="_blank" href="/search/%3E%3E%3E/1.htm">>>></a> <div>最近几种进制,加上各种位操作符,发现都比较模糊,不能完全掌握,这里就再熟悉熟悉。 &nbsp; 1.按位操作符 : &nbsp; &nbsp;按位操作符是用来操作基本数据类型中的单个bit,即二进制位,会对两个参数执行布尔代数运算,获得结果。 &nbsp; &nbsp;与(&amp;)运算: &nbsp; &nbsp;1&amp;1 = 1, 1&amp;0 = 0, 0&amp;0 &</div> </li> <li><a href="/article/3099.htm" title="Web前段学习网站" target="_blank">Web前段学习网站</a> <span class="text-muted">ihuning</span> <a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a> <div>&nbsp; Web前段学习网站 菜鸟学习:http://www.w3cschool.cc/ &nbsp; JQuery中文网:http://www.jquerycn.cn/ &nbsp; 内存溢出:http://outofmemory.cn/#csdn.blog &nbsp; http://www.icoolxue.com/ &nbsp; http://www.jikexue</div> </li> <li><a href="/article/3226.htm" title="强强联合:FluxBB 作者加盟 Flarum" target="_blank">强强联合:FluxBB 作者加盟 Flarum</a> <span class="text-muted">justjavac</span> <a class="tag" taget="_blank" href="/search/r/1.htm">r</a> <div>原文:FluxBB Joins Forces With Flarum作者:Toby Zerner译文:强强联合:FluxBB 作者加盟 Flarum译者:justjavac FluxBB&nbsp;是一个快速、轻量级论坛软件,它的开发者是一名德国的 PHP 天才 Franz Liedke。FluxBB 的下一个版本(2.0)将被完全重写,并已经开发了一段时间。FluxBB 看起来非常有前途的,</div> </li> <li><a href="/article/3353.htm" title="java统计在线人数(session存储信息的)" target="_blank">java统计在线人数(session存储信息的)</a> <span class="text-muted">macroli</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a> <div>这篇日志是我写的第三次了 前两次都发布失败!郁闷极了! &nbsp; 由于在web开发中常常用到这一部分所以在此记录一下,呵呵,就到备忘录了! 我对于登录信息时使用session存储的,所以我这里是通过实现HttpSessionAttributeListener这个接口完成的。 1、实现接口类,在web.xml文件中配置监听类,从而可以使该类完成其工作。 public class Ses</div> </li> <li><a href="/article/3480.htm" title="bootstrp carousel初体验 快速构建图片播放" target="_blank">bootstrp carousel初体验 快速构建图片播放</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/bootstrap/1.htm">bootstrap</a><a class="tag" taget="_blank" href="/search/%E7%BA%B5%E8%A7%82%E5%8D%83%E8%B1%A1/1.htm">纵观千象</a> <div>img{ border: 1px solid white; box-shadow: 2px 2px 12px #333; _width: expression(this.width &gt; 600 ? &quot;600px&quot; : this.width + &quot;px&quot;); _height: expression(this.width &</div> </li> <li><a href="/article/3607.htm" title="SparkSQL读取HBase数据,通过自定义外部数据源" target="_blank">SparkSQL读取HBase数据,通过自定义外部数据源</a> <span class="text-muted">superlxw1234</span> <a class="tag" taget="_blank" href="/search/spark/1.htm">spark</a><a class="tag" taget="_blank" href="/search/sparksql/1.htm">sparksql</a><a class="tag" taget="_blank" href="/search/sparksql%E8%AF%BB%E5%8F%96hbase/1.htm">sparksql读取hbase</a><a class="tag" taget="_blank" href="/search/sparksql%E5%A4%96%E9%83%A8%E6%95%B0%E6%8D%AE%E6%BA%90/1.htm">sparksql外部数据源</a> <div>关键字:SparkSQL读取HBase、SparkSQL自定义外部数据源 &nbsp; &nbsp; 前面文章介绍了SparSQL通过Hive操作HBase表。 &nbsp; SparkSQL从1.2开始支持自定义外部数据源(External DataSource),这样就可以通过API接口来实现自己的外部数据源。这里基于Spark1.4.0,简单介绍SparkSQL自定义外部数据源,访</div> </li> <li><a href="/article/3734.htm" title="Spring Boot 1.3.0.M1发布" target="_blank">Spring Boot 1.3.0.M1发布</a> <span class="text-muted">wiselyman</span> <a class="tag" taget="_blank" href="/search/spring+boot/1.htm">spring boot</a> <div>&nbsp; &nbsp; Spring Boot 1.3.0.M1于6.12日发布,现在可以从Spring milestone repository下载。这个版本是基于Spring Framework 4.2.0.RC1,并在Spring Boot 1.2之上提供了大量的新特性improvements and new features。主要包含以下: &nbsp; 1.提供一个新的sprin</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>