用户界面样式

参考一

参考二

参考三

系统字体
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/1883050103674040320.htm" title="HTML&CSS :如此优雅丝滑的导航栏,你不看看吗?" target="_blank">HTML&CSS :如此优雅丝滑的导航栏,你不看看吗?</a> <span class="text-muted">前端Hardy</span> <a class="tag" taget="_blank" href="/search/CSS/1.htm">CSS</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</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>这段代码创建了一个动态的导航栏,通过CSS技术实现了按钮的激活和悬停效果,以及动态背景效果,为页面添加了视觉吸引力和用户交互体验。大家复制代码时,可能会因格式转换出现错乱,导致样式失效。建议先少量复制代码进行测试,若未能解决问题,私信我,我会发送完整的压缩包给你演示效果HTML&CSS公众号关注:前端Hardybody{margin:0;padding:0;background-color:#07</div> </li> <li><a href="/article/1883040116977496064.htm" title="React Native 0.77 发布:更强的样式支持与性能优化" target="_blank">React Native 0.77 发布:更强的样式支持与性能优化</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AFjavascript/1.htm">前端javascript</a> <div>CSS技巧与案例详解vue2与vue3技巧合集VueUse源码解读ReactNative0.77正式发布!此次版本带来了多项重要改进,包括样式功能的增强、Android平台的性能优化以及项目模板的升级。这一版本的核心目标是提升开发效率,同时确保在不同平台上的兼容性。接下来,我们来看看这次更新中的亮点内容。主要更新内容✨全新CSS特性支持:新增对display:contents、boxSizing、</div> </li> <li><a href="/article/1883039009773514752.htm" title="参加【2025年春季】全国CTF夺旗赛-从零基础入门到竞赛,看这一篇就稳了!" target="_blank">参加【2025年春季】全国CTF夺旗赛-从零基础入门到竞赛,看这一篇就稳了!</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%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/CTF%E5%A4%BA%E6%97%97%E8%B5%9B/1.htm">CTF夺旗赛</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a> <div>基于入门网络安全/黑客打造的:黑客&网络安全入门&进阶学习资源包目录一、CTF简介二、CTF竞赛模式三、CTF各大题型简介四、CTF学习路线4.1、初期1、html+css+js(2-3天)2、apache+php(4-5天)3、mysql(2-3天)4、python(2-3天)5、burpsuite(1-2天)4.2、中期1、SQL注入(7-8天)2、文件上传(7-8天)3、其他漏洞(14-15</div> </li> <li><a href="/article/1883039010843062272.htm" title="参加【2025年春季】全国CTF夺旗赛-从零基础入门到竞赛,看这一篇就稳了!" target="_blank">参加【2025年春季】全国CTF夺旗赛-从零基础入门到竞赛,看这一篇就稳了!</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%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/CTF%E5%A4%BA%E6%97%97%E8%B5%9B/1.htm">CTF夺旗赛</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a> <div>基于入门网络安全/黑客打造的:黑客&网络安全入门&进阶学习资源包目录一、CTF简介二、CTF竞赛模式三、CTF各大题型简介四、CTF学习路线4.1、初期1、html+css+js(2-3天)2、apache+php(4-5天)3、mysql(2-3天)4、python(2-3天)5、burpsuite(1-2天)4.2、中期1、SQL注入(7-8天)2、文件上传(7-8天)3、其他漏洞(14-15</div> </li> <li><a href="/article/1883031443190378496.htm" title="vue项目运行报:SassError: expected selector..." target="_blank">vue项目运行报:SassError: expected selector...</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/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/webpack/1.htm">webpack</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a> <div>SassError:expectedselector错误通常由于Sass或SCSS文件中存在语法错误或选择器缺失,导致Sass编译器无法解析。Sass语法语法中误用深度选择器语法导致以上问题。/deep/和::v-deep都是用于Vue单文件组件(.vue文件)中的样式穿透选择器;/deep/在Sass中并不被支持,如果是在Vue单文件组件中,并且需要穿透样式,可以使用::v-deep代替/dee</div> </li> <li><a href="/article/1882948859404021760.htm" title="YOLO 安装 并且命令行指定配置文件" target="_blank">YOLO 安装 并且命令行指定配置文件</a> <span class="text-muted">ELI_He999</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</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/YOLO/1.htm">YOLO</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/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a> <div>pipinstallultralyticssettings.yaml保存到当前目录,data参数yolo命令行指定配置文件{"settings_version":"0.0.6","datasets_dir":"xxxx\\datasets","weights_dir":"xxxx\\weights","runs_dir":"xxxx\\runs","uuid":"xxxx","sync":true</div> </li> <li><a href="/article/1882946210990452736.htm" title="CSS 提示工具:优化网页设计,提升用户体验" target="_blank">CSS 提示工具:优化网页设计,提升用户体验</a> <span class="text-muted">froginwe11</span> <a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>CSS提示工具:优化网页设计,提升用户体验在网页设计中,CSS(层叠样式表)扮演着至关重要的角色。它不仅能够赋予网页独特的视觉风格,还能够提升用户体验。为了帮助设计师和开发者更高效地使用CSS,各种提示工具应运而生。本文将为您详细介绍CSS提示工具的功能、特点以及如何选择合适的工具,以优化网页设计和提升用户体验。一、CSS提示工具概述CSS提示工具是一种辅助设计师和开发者编写和调试CSS的工具。这</div> </li> <li><a href="/article/1882928304432934912.htm" title="基于JAVA软件技术课程学习系统设计与实现计算机毕业设计源码+数据库+lw文档+系统+部署" target="_blank">基于JAVA软件技术课程学习系统设计与实现计算机毕业设计源码+数据库+lw文档+系统+部署</a> <span class="text-muted">小朱科技</span> <a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a> <div>基于JAVA软件技术课程学习系统设计与实现计算机毕业设计源码+数据库+lw文档+系统+部署基于JAVA软件技术课程学习系统设计与实现计算机毕业设计源码+数据库+lw文档+系统+部署本源码技术栈:项目架构:B/S架构开发语言:Java语言开发软件:ideaeclipse前端技术:Layui、HTML、CSS、JS、JQuery等技术后端技术:JAVA运行环境:Win10、JDK1.8数据库:MySQ</div> </li> <li><a href="/article/1882921874455851008.htm" title="java计算机毕业设计-学生宿舍故障报修管理信息系统-源码+数据库+系统+lw文档+mybatis+运行部署" target="_blank">java计算机毕业设计-学生宿舍故障报修管理信息系统-源码+数据库+系统+lw文档+mybatis+运行部署</a> <span class="text-muted">雪夜科技</span> <a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</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%E5%BA%93/1.htm">数据库</a> <div>java计算机毕业设计-学生宿舍故障报修管理信息系统-源码+数据库+系统+lw文档+mybatis+运行部署java计算机毕业设计-学生宿舍故障报修管理信息系统-源码+数据库+系统+lw文档+mybatis+运行部署本源码技术栈:项目架构:B/S架构开发语言:Java语言开发软件:ideaeclipse前端技术:Layui、HTML、CSS、JS、JQuery等技术后端技术:JAVA运行环境:Wi</div> </li> <li><a href="/article/1882910478645129216.htm" title="vite webpack原理和区别" target="_blank">vite webpack原理和区别</a> <span class="text-muted"></span> <div>Vite和Webpack的工作原理有显著的不同,以下是对它们各自原理的简要说明:Vite原理原生ES模块:Vite利用浏览器对原生ES模块(ESM)的支持,实现按需加载和编译。开发服务器启动时,Vite只需解析入口文件,并将导入的模块路径记录下来。按需编译:当浏览器请求某个模块时,Vite会实时编译该模块及其依赖。使用esbuild或Vite自带的编译器快速处理JavaScript和CSS。热模块</div> </li> <li><a href="/article/1882836897324134400.htm" title="web速览" target="_blank">web速览</a> <span class="text-muted">qzhqbb</span> <a class="tag" taget="_blank" href="/search/web/1.htm">web</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/web/1.htm">web</a> <div>web速览1.前端开发概述:前端开发是构建网站用户界面的过程,主要关注网站的视觉效果和用户体验。又称为客户端技术栈:HTML(超文本标记语言):用于创建网页的结构和内容。CSS(层叠样式表):用于样式和布局设计,包括颜色、字体、边距等。JavaScript:用于实现网页的交互性和动态效果。前端框架:React:一个用于构建用户界面的JavaScript库,采用组件化设计。Vue.js:一个渐进式的</div> </li> <li><a href="/article/1882834122422939648.htm" title="HTML基本结构" target="_blank">HTML基本结构</a> <span class="text-muted">千鸟影沫</span> <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>一、网页三大组成部分结构:html,是超文本标记语言——用来搭建网页的结构样式:css——网页的样式行为:js,是一种语言,称为脚本语言——交互行为用户对网页的操作数据交互二、HTML语法规范1、语法(英文状态下输入)html标签:是由尖括号包围的关键词,例如2、以元素样子对标签进行分类①双标签:如:开始标签,结束标签②单标签:比较少,如,,,等。3、标签关系①嵌套(包含关系):类似于父子关系如:</div> </li> <li><a href="/article/1882829830894972928.htm" title="探秘Xss:原理、类型与防范全解析" target="_blank">探秘Xss:原理、类型与防范全解析</a> <span class="text-muted">咕德猫宁丶</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/xss/1.htm">xss</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>一、Xss究竟是什么?(一)Xss的定义简述Xss全称是跨站脚本攻击(CrossSiteScripting),为了不和层叠样式表(CascadingStyleSheets,CSS)的缩写混淆,故将其缩写为Xss。它是一种常见的网络安全漏洞,指的是攻击者利用网站对用户输入内容校验不严格等漏洞,将恶意脚本(通常是JavaScript,也可以是Java、VBScript、ActiveX、Flash等)注</div> </li> <li><a href="/article/1882777133370109952.htm" title="用Python写前端" target="_blank">用Python写前端</a> <span class="text-muted">eternity_ld</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>分享一个让开发交互式Webapp超级简单的工具。不会HTML,CSS,JAVASCRIPT也没事。交互式Webapp非常实用,比如说做一个问卷调查页面、一个投票系统、一个信息收集表单,上传文件等等,因为网页是可视化的,因此还可以作为一个没有服务端的图片界面应用程序而使用。如果你有这样的开发需求,那用Python真的是太简单了。借助于PyWebIO(pipinstallpywebio),你可以分分钟</div> </li> <li><a href="/article/1882772468708470784.htm" title="【全栈】SprintBoot+vue3迷你商城-扩展:vue的基本用法" target="_blank">【全栈】SprintBoot+vue3迷你商城-扩展:vue的基本用法</a> <span class="text-muted">杰九</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/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a> <div>【全栈】SprintBoot+vue3迷你商城-扩展:vue的基本用法在进行前端开发之前,需要熟悉vue的一些基本用法,这里举例了一些常见的基本用法1.v-if,v-else,v-else-if用于条件渲染元素。当条件为真时,元素会被渲染;否则不会渲染。示例TypeATypeBNotA/B2.v-show也用于条件渲染,但它总是会渲染并保留,只是通过CSS的display属性控制可见性。示例显示/</div> </li> <li><a href="/article/1882680780166066176.htm" title="参加【2025年春季】全国CTF夺旗赛-从零基础入门到竞赛,看这一篇就稳了!" target="_blank">参加【2025年春季】全国CTF夺旗赛-从零基础入门到竞赛,看这一篇就稳了!</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%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/CTF%E5%A4%BA%E6%97%97%E8%B5%9B/1.htm">CTF夺旗赛</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a> <div>基于入门网络安全/黑客打造的:黑客&网络安全入门&进阶学习资源包目录一、CTF简介二、CTF竞赛模式三、CTF各大题型简介四、CTF学习路线4.1、初期1、html+css+js(2-3天)2、apache+php(4-5天)3、mysql(2-3天)4、python(2-3天)5、burpsuite(1-2天)4.2、中期1、SQL注入(7-8天)2、文件上传(7-8天)3、其他漏洞(14-15</div> </li> <li><a href="/article/1882639181784608768.htm" title="打造高效React应用:CSS方案深度解析" target="_blank">打造高效React应用:CSS方案深度解析</a> <span class="text-muted"></span> <div>大家好,我是长林啊!一个爱好JavaScript、Go、Rust的全栈开发者;致力于终生学习和技术分享。在React以其声明式编程范式和组件化架构,成为了构建用户界面的首选技术之一。然而,随着项目规模的扩大和设计需求的多样化,如何高效地管理CSS样式成为了每个React开发者都需要面对的挑战。本文将从一下三个方面进行介绍,探讨如何在React中应用和管理样式,包括内联样式、CSS类、CSSModu</div> </li> <li><a href="/article/1882617864658153472.htm" title="如何使用媒体查询实现响应式网页设计?" target="_blank">如何使用媒体查询实现响应式网页设计?</a> <span class="text-muted">破碎的天堂鸟</span> <a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E6%95%99%E7%A8%8B/1.htm">学习教程</a><a class="tag" taget="_blank" href="/search/%E5%AA%92%E4%BD%93/1.htm">媒体</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>使用媒体查询(MediaQueries)实现响应式网页设计是现代网页开发中的一项核心技术,它允许开发者根据设备的屏幕尺寸、分辨率、方向等特性动态调整网页布局和样式,从而提供更好的用户体验。以下是详细说明如何使用媒体查询实现响应式网页设计的方法:1.媒体查询的基本概念媒体查询是CSS3引入的一项功能,通过@media规则,开发者可以根据设备的特性(如宽度、高度、方向等)应用不同的样式规则。媒体查询可</div> </li> <li><a href="/article/1882617865429905408.htm" title="如何通过减少HTTP请求来提升页面加载速度?" target="_blank">如何通过减少HTTP请求来提升页面加载速度?</a> <span class="text-muted">破碎的天堂鸟</span> <a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E6%95%99%E7%A8%8B/1.htm">学习教程</a><a class="tag" taget="_blank" href="/search/http/1.htm">http</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE/1.htm">网络协议</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a> <div>通过减少HTTP请求可以显著提升网页加载速度,这是因为HTTP请求的次数直接影响了页面加载时间。以下是一些具体的方法和策略:1.合并文件将多个CSS文件合并为一个CSS文件,将多个JavaScript文件合并为一个JavaScript文件。这可以减少浏览器发起的HTTP请求次数,从而加快页面加载速度。示例:将所有样式表和脚本文件打包成一个文件,以减少请求数量。2.使用CSSSprites(雪碧图)</div> </li> <li><a href="/article/1882616980394012672.htm" title="【前端开发】前端开发深度解析:HTML、CSS、JavaScript与Vue.js" target="_blank">【前端开发】前端开发深度解析:HTML、CSS、JavaScript与Vue.js</a> <span class="text-muted">RS迷途小书童</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91%E6%8E%A2%E7%B4%A2%E4%B9%8B%E6%97%85/1.htm">前端开发探索之旅</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</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/vue.js/1.htm">vue.js</a> <div>一、HTML:构建网页的基石1.1简介HTML(HyperTextMarkupLanguage,超文本标记语言)是一种用于创建网页的标准标记语言。它使用各种标签(tags)来描述网页上的内容,包括文本、图像、链接、视频、音频等。HTML是网页开发的基础,与CSS(层叠样式表)和JavaScript等技术一起,共同构建出丰富多彩的网页世界。HTML文档由一系列的元素构成,每个元素都由开始标签、内容和</div> </li> <li><a href="/article/1882607395406934016.htm" title="前端开发是随着互联网的发展而逐渐兴起的一种新的开发领域。它一直在不断地发展和演变,经历了许多重要的里程碑事件和技术革新,下面就来回顾一下前端开发的历程和发展趋势。" target="_blank">前端开发是随着互联网的发展而逐渐兴起的一种新的开发领域。它一直在不断地发展和演变,经历了许多重要的里程碑事件和技术革新,下面就来回顾一下前端开发的历程和发展趋势。</a> <span class="text-muted">21级应用技术UI3班何珍锋</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E6%A1%86%E6%9E%B6/1.htm">前端框架</a> <div>一、Web1.0时代1990年代末到2000年代初,Web1.0时代是Web发展的初期阶段,这个阶段的Web界面设计以简单的文本和图像为主,用户的互动性和用户体验都很低。在这个时代,浏览器的前端技术主要是基于HTML和CSS的,HTML指的是超文本标记语言,而CSS则指的是层叠样式表。由于这些技术的简单性,前端开发者往往需要手动编写HTML和CSS代码,并进行基本的样式设计。二、Web2.0时代随</div> </li> <li><a href="/article/1882595286916853760.htm" title="threejs学习笔记:CSS2DObject 2d文字渲染" target="_blank">threejs学习笔记:CSS2DObject 2d文字渲染</a> <span class="text-muted">九段刀客</span> <a class="tag" taget="_blank" href="/search/threejs/1.htm">threejs</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>import{CSS2DRenderer,CSS2DObject}from"three/examples/jsm/renderers/CSS2DRenderer.js";//2d文字渲染function_createBox1Label(object</div> </li> <li><a href="/article/1882595160039157760.htm" title="Javascript和jquery事件-鼠标移入移出事件" target="_blank">Javascript和jquery事件-鼠标移入移出事件</a> <span class="text-muted">weixin_30740295</span> <a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/ViewUI/1.htm">ViewUI</a> <div>javascript使用mouseover和mouseout,只在css中支持hoverjquery支持mouseover和mouseout,封装了mouseenter、mouseleave事件函数和hover函数1、有关js中的mouseover和mouseout原生js的事件类型是mouserout和mouseover,之前提到的事件冒泡的缺陷就在这里,之前说的使用阻止冒泡就行,大概说得太轻易</div> </li> <li><a href="/article/1882574590689996800.htm" title="CSS语言的编程范式" target="_blank">CSS语言的编程范式</a> <span class="text-muted">ByteBlossom666</span> <a class="tag" taget="_blank" href="/search/%E5%8C%85%E7%BD%97%E4%B8%87%E8%B1%A1/1.htm">包罗万象</a><a class="tag" taget="_blank" href="/search/golang/1.htm">golang</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%90%8E%E7%AB%AF/1.htm">后端</a> <div>CSS语言的编程范式引言随着互联网的发展,网络应用和网站的数量不断增加,前端开发的复杂性也在日益增加。在前端开发中,CSS(层叠样式表)作为一种描述文档外观的语言,扮演着至关重要的角色。虽然CSS语言的设计初心是为HTML文档提供样式和布局,但在实际使用中,它的表达能力与编程范式的结合,使得我们能够以更加高效和灵活的方式来构建用户界面。本文将深入探讨CSS语言的编程范式,分析其基本概念、特点、应用</div> </li> <li><a href="/article/1882566287918428160.htm" title="Tailwind CSS—骨架屏生成器" target="_blank">Tailwind CSS—骨架屏生成器</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AFjavascript/1.htm">前端javascript</a> <div>CSS技巧与案例详解vue2与vue3技巧合集VueUse源码解读使用TailwindCSS快速创建现代化的骨架屏,只需要这个简单的工具。我一直在寻找方法,让我的网站更加引人入胜和用户友好。其中最简单而又最有效的方法之一,就是加入骨架加载器——那些灰色的、闪烁的方框,在内容加载时显示。它们帮助用户获得更流畅的体验,让他们觉得网站加载速度比实际快。这些骨架加载器是一个不错的补充,但从零开始设计它们却</div> </li> <li><a href="/article/1882500446598262784.htm" title="Vue 全局自适应大小:使用 postcss-pxtorem" target="_blank">Vue 全局自适应大小:使用 postcss-pxtorem</a> <span class="text-muted">前端程序猿i</span> <a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/postcss/1.htm">postcss</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>在现代前端开发中,响应式设计已经成为不可或缺的一部分。尤其是在移动设备的普及下,保证网页在各种屏幕尺寸下的显示效果变得尤为重要。Vue.js作为一个流行的前端框架,能够很方便地实现响应式设计。而在这方面,postcss-pxtorem是一个非常有用的工具,它可以将px单位自动转换为rem单位,从而实现更好的自适应布局。本文将介绍如何在Vue项目中使用postcss-pxtorem实现全局自适应大小</div> </li> <li><a href="/article/1882446225119178752.htm" title="搭建vue项目" target="_blank">搭建vue项目</a> <span class="text-muted">LYy0</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>一、VueVue是一款用于构建用户界面的JavaScript框架。它基于标准HTML、CSS和JavaScript构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。无论是简单还是复杂的界面,Vue都可以胜任。二、环境1.nodejs环境:下载地址三、创建Vue应用创建的项目将使用基于Vite的构建设置,并允许我们使用Vue的单文件组件(SFC)。$npmcreatevue@l</div> </li> <li><a href="/article/1882423025425510400.htm" title="如何使用 Emmet 快捷方式提高开发效率" target="_blank">如何使用 Emmet 快捷方式提高开发效率</a> <span class="text-muted">木觞清</span> <a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a><a class="tag" taget="_blank" href="/search/css3/1.htm">css3</a> <div>前端开发是一个高度依赖效率的领域,开发者们常常需要处理大量的HTML和CSS代码。为了解决重复工作和提高开发效率,Emmet快捷方式应运而生。Emmet作为一款强大的前端工具,能够通过简化的快捷命令快速生成HTML和CSS结构,极大地提升了开发者的编码速度。本文将介绍如何在日常开发中使用Emmet,帮助你节省宝贵的时间。什么是Emmet快捷方式?Emmet是一款广泛应用于前端开发的插件,它通过一系</div> </li> <li><a href="/article/1882382312881057792.htm" title="uniapp 小程序目录搭建以及 pages.json 配置" target="_blank">uniapp 小程序目录搭建以及 pages.json 配置</a> <span class="text-muted">YZRHANYU</span> <a class="tag" taget="_blank" href="/search/uniapp%2B%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">uniapp+微信小程序</a><a class="tag" taget="_blank" href="/search/json/1.htm">json</a><a class="tag" taget="_blank" href="/search/uni-app/1.htm">uni-app</a><a class="tag" taget="_blank" href="/search/%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">小程序</a> <div>uniapp小程序目录搭建1.分包结构├──api各个模块接口文件夹├──login.js登录模块接口文件├──common公共模块,包含公共基础css等├──base.css公共基础css├──components主包当中使用的组件或者复用率较高的组件作为全局组件├──node_modulesnodejs相关依赖包文件目录├──pages主包:业务页面文件存放的目录├──common├──sys</div> </li> <li><a href="/article/1882377773666856960.htm" title="前端——Html+CSS" target="_blank">前端——Html+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><a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a> <div>目录CSS引入方式颜色表达方式CSS选择器去掉超链接的下划线路径表示行高和首行缩进常见标签布局标签flex布局表单标签表单项标签改变鼠标指针的样式表格标签div{box-sizing:border-box;}CSS引入方式具体有3种引入方式,语法如下表格所示:名称语法描述示例行内样式在标签内使用style属性,属性值是css属性键值对。中国新闻网内部样式定义标签,在标签内部定义css样式。h1{.</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>