用户界面样式

参考一

参考二

参考三

系统字体
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/1950232820773351424.htm" title="移动端城市区县二级联动选择功能实现包" target="_blank">移动端城市区县二级联动选择功能实现包</a> <span class="text-muted">good2know</span> <div>本文还有配套的精品资源,点击获取简介:本项目是一套为移动端设计的jQuery实现方案,用于简化用户在选择城市和区县时的流程。它包括所有必需文件:HTML、JavaScript、CSS及图片资源。通过动态更新下拉菜单选项,实现城市到区县的联动效果,支持数据异步加载。开发者可以轻松集成此功能到移动网站或应用,并可基于需求进行扩展和优化。1.jQuery移动端解决方案概述jQuery技术简介jQuery</div> </li> <li><a href="/article/1950214964396486656.htm" title="js操作样式" target="_blank">js操作样式</a> <span class="text-muted">郝加升</span> <div>DOM样式属性和方法:指定的元素,它的style有这么几个属性和方法:cssText:通过这个属性可以访问到元素的特性style设置的属性,并且可以直接赋值设置。removeProperty(属性名称):从样式中删除给定属性。setProperty(属性名称,值,权重):可以通过这个方法设置给定样式的同时设置其权重,可以传入”important”或者一个空字符串。获取计算后样式:window.ge</div> </li> <li><a href="/article/1950194742100815872.htm" title="用代码生成艺术字:设计个性化海报的秘密" target="_blank">用代码生成艺术字:设计个性化海报的秘密</a> <span class="text-muted"></span> <div>本文围绕“用代码生成艺术字:设计个性化海报的秘密”展开,先概述代码生成艺术字在海报设计中的独特价值,接着介绍常用的代码工具(如HTML、CSS、JavaScript等),详细阐述从构思到实现的完整流程,包括字体样式设计、动态效果添加等,还分享了提升艺术字质感的技巧及实际案例。最后总结代码生成艺术字的优势,为设计师提供打造个性化海报的实用指南,助力提升海报设计的独特性与吸引力,符合搜索引擎SEO标准</div> </li> <li><a href="/article/1950191165710069760.htm" title="前端面试每日 3+1 —— 第39天" target="_blank">前端面试每日 3+1 —— 第39天</a> <span class="text-muted">浪子神剑</span> <div>今天的面试题(2019.05.25)——第39天[html]title与h1、b与strong、i与em的区别分别是什么?[css]写出你知道的CSS水平和垂直居中的方法[js]说说你对模块化的理解[软技能]公钥加密和私钥加密是什么?《论语》,曾子曰:“吾日三省吾身”(我每天多次反省自己)。前端面试每日3+1题,以面试题来驱动学习,每天进步一点!让努力成为一种习惯,让奋斗成为一种享受!欢迎在Iss</div> </li> <li><a href="/article/1950115062781898752.htm" title="26. 什么是雪碧图,作用和原理了解吗" target="_blank">26. 什么是雪碧图,作用和原理了解吗</a> <span class="text-muted">yqcoder</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E9%9D%A2%E8%AF%95-CSS/1.htm">前端面试-CSS</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a> <div>总结小图合成一张,使用background来使用,减少资源请求一、什么是雪碧图?雪碧图(CSSSprite)是一种前端优化技术,指的是将多个小图标合并成一张大图,通过CSS控制显示其中的某一部分。它常用于网站中图标、按钮等小图较多的场景。二、雪碧图的作用作用说明✅减少HTTP请求次数合并多个图片为一张图,减少请求资源数✅提升页面加载速度尤其在图片较多时效果明显✅避免图片加载闪烁鼠标悬停切换图片时不</div> </li> <li><a href="/article/1950075480849838080.htm" title="关于前端的性能优化" target="_blank">关于前端的性能优化</a> <span class="text-muted"></span> <div>性能优化主要涵盖了以下四个方面:(tip:仅代表个人总结,如有不当,还希望看到的大佬多多指示)减少网络请求:合并文件、使用CDN、启用缓存。优化资源加载:代码分割、懒加载、图片压缩。提升渲染性能:减少重绘回流、防抖节流、使用WebWorker。监控和迭代:定期使用工具检测性能,持续优化。一、网络层面优化减少HTTP请求合并文件:将多个CSS或JavaScript文件合并成一个,减少请求次数。使用C</div> </li> <li><a href="/article/1950066193071140864.htm" title="Grid布局参考资料" target="_blank">Grid布局参考资料</a> <span class="text-muted">kiterumer</span> <div>Grid布局张鑫旭-写给自己看的display:grid布局教程阮一峰-CSSGrid网格布局教程在Grid布局中,float,display:inline-block,display:table-cell,vertical-align以及column-*这些属性和声明对grid子项是没有任何作用的。这个可以说是Grid布局中的常识,面试经常会问的,一定要记得。Grid布局则适用于更大规模的布局(</div> </li> <li><a href="/article/1950039673418084352.htm" title="解决 Webpack 报错 “No module factory available for dependency type: CssDependency“ 的方法" target="_blank">解决 Webpack 报错 “No module factory available for dependency type: CssDependency“ 的方法</a> <span class="text-muted">cmmav33990</span> <a class="tag" taget="_blank" href="/search/webpack/1.htm">webpack</a><a class="tag" taget="_blank" href="/search/rust/1.htm">rust</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>这个错误表明Webpack在处理CSS依赖时找不到合适的模块工厂,通常发生在配置不完整或依赖冲突的情况下。以下是详细的解决方案:核心解决方案方案1:安装并配置正确的CSS处理器(最推荐)bashnpminstall--save-devcss-loaderstyle-loader#或使用mini-css-extract-plugin替代style-loadernpminstall--save-dev</div> </li> <li><a href="/article/1950005757994921984.htm" title="50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | Pokedex(宝可梦图鉴)" target="_blank">50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | Pokedex(宝可梦图鉴)</a> <span class="text-muted"></span> <div>我们继续50个小项目挑战!——Pokedex组件仓库地址:https://github.com/SunACong/50-vue-projects项目预览地址:https://50-vue-projects.vercel.app/使用Vue3结合PokeAPI来创建一个炫酷的宝可梦图鉴应用。通过这个项目,你将能够浏览前150只宝可梦的信息,包括它们的名字、类型、身高、体重以及能力等。而且,每只宝可梦</div> </li> <li><a href="/article/1949999823293837312.htm" title="CSS基础(3)" target="_blank">CSS基础(3)</a> <span class="text-muted">Zzz_睡不醒</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/html/1.htm">html</a> <div>CSS背景操作1.多重背景(MultipleBackgrounds)div{background-image:url(image1.png),url(image2.png);background-position:rightbottom,lefttop;background-repeat:no-repeat,repeat;background-size:auto,cover;}background</div> </li> <li><a href="/article/1949991125741793280.htm" title="《博客园精华集》web标准分册第2论筛选结果文章列表" target="_blank">《博客园精华集》web标准分册第2论筛选结果文章列表</a> <span class="text-muted"></span> <div>《博客园精华集》web标准部分筛选结果(共55篇)一个喜欢网页设计的程序员作者:Awen根本不存在DIV+CSS布局这回事作者:CatChen欲练CSS,必先宫IE作者:CatChen你有强迫症吗?作者:CatChenSPAN元素和DIV元素的区别作者:ChrisLiudiv的认识作者:ChrisLiu实时检验您的页面是否符合XHTML标准——使用ValidatorModule作者:Dflying</div> </li> <li><a href="/article/1949942706956464128.htm" title="GAMES202——作业1 实时阴影(ShadowMap,PCF,PCSS)" target="_blank">GAMES202——作业1 实时阴影(ShadowMap,PCF,PCSS)</a> <span class="text-muted"></span> <div>目录任务ShadowMapPCFPCSS实现ShadowMapuseShadowMapPCFfindBlockerPCSS结果任务ShadowMap1.在ShadowMaterial.js中需要向Shader传递正确的uLightMVP矩阵,该矩阵参与了第一步从光源处渲染场景从而构造ShadowMap的过程。你需要完成DirectionalLight中的CalcLightMVP(translate</div> </li> <li><a href="/article/1949938159328489472.htm" title="Shadow Map ———— PCSS(percentage-closer Soft Shadow)" target="_blank">Shadow Map ———— PCSS(percentage-closer Soft Shadow)</a> <span class="text-muted">kevin_dust</span> <div>ShadowMap————PCSS(percentage-closerSoftShadow)1、PCSS解决了什么问题传统的PCF每一次采样过滤耗费很大(每次都要遍历附近的几个点,虽然用了泊松分布,但还是不可避免),PCSS算法基本解决了该问题(通过动态计算采样范围,使用FindBlocker剔除非阴影点)传统的PCF半影不够逼真…PCSS算法通过计算准确的半影范围解决了4、PCSS的有关你资料:</div> </li> <li><a href="/article/1949902988864712704.htm" title="PyQt5窗口背景设置全攻略:三种方法实现精美界面" target="_blank">PyQt5窗口背景设置全攻略:三种方法实现精美界面</a> <span class="text-muted"></span> <div>QSS样式表法(最常用)特点:声明式语法、支持CSS特性、子控件自动继承样式1.纯色背景设置创建主窗口并设置黄色背景win=QMainWindow()win.setObjectName("MainWindow")win.setStyleSheet("#MainWindow{background-color:yellow}")2.背景图片设置(自适应尺寸)使用border-image实现背景图平铺w</div> </li> <li><a href="/article/1949898570761039872.htm" title="[python][flask]flask静态资源" target="_blank">[python][flask]flask静态资源</a> <span class="text-muted"></span> <div>在Flask中,静态资源(如图片、CSS文件、JavaScript文件等)通常存储在项目的static文件夹中。Flask会自动为静态资源提供服务,使得你可以通过URL访问这些文件。以下是关于Flask中静态资源的使用方法和一些高级配置。1.默认静态文件夹Flask默认会将项目根目录下的static文件夹作为静态资源目录。例如,如果你的项目结构如下:my_flask_app/│├──app.py├</div> </li> <li><a href="/article/1949895918400630784.htm" title="前端面试题" target="_blank">前端面试题</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/javascript/1.htm">javascript</a> <div>HTML5的新特性和CSS3的新特性引入了一系列语义化标签使文档结构更加清晰(header,nav,aside,article,footer,section),多媒体支持video,audio,Canvas绘图div上下居中对齐的几种方式第一种:flex布局display:flex;justify-content:center;/*水平居中/align-items:center;/垂直居中/第二种</div> </li> <li><a href="/article/1949885827723096064.htm" title="Python BeautifulSoup 解析网页按钮元素" target="_blank">Python BeautifulSoup 解析网页按钮元素</a> <span class="text-muted">PythonAI编程架构实战家</span> <a class="tag" taget="_blank" href="/search/Python%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E4%B8%8E%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">Python人工智能与大数据</a><a class="tag" taget="_blank" href="/search/Python%E7%BC%96%E7%A8%8B%E4%B9%8B%E9%81%93/1.htm">Python编程之道</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/beautifulsoup/1.htm">beautifulsoup</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/ai/1.htm">ai</a> <div>PythonBeautifulSoup解析网页按钮元素:从基础原理到工程实践的深度解析关键词BeautifulSoup、HTML解析、按钮元素定位、DOM树遍历、CSS选择器、网络爬虫、前端自动化摘要本文系统解析使用PythonBeautifulSoup库定位和提取网页按钮元素的全流程技术方案。从HTML文档的底层结构出发,结合BeautifulSoup的核心解析机制,覆盖从基础概念到高级工程实践</div> </li> <li><a href="/article/1949801101146517504.htm" title="Tailwind CSS 响应式设计实战指南" target="_blank">Tailwind CSS 响应式设计实战指南</a> <span class="text-muted">qcidyu</span> <a class="tag" taget="_blank" href="/search/%E7%94%A8%E6%88%B7%E4%BD%93%E9%AA%8C/1.htm">用户体验</a><a class="tag" taget="_blank" href="/search/%E4%BB%A3%E7%A0%81%E4%BC%98%E5%8C%96/1.htm">代码优化</a><a class="tag" taget="_blank" href="/search/%E7%A7%BB%E5%8A%A8%E4%BC%98%E5%85%88/1.htm">移动优先</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%AB%99%E5%B8%83%E5%B1%80/1.htm">网站布局</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91/1.htm">前端开发</a><a class="tag" taget="_blank" href="/search/Tailwind/1.htm">Tailwind</a><a class="tag" taget="_blank" href="/search/CSS/1.htm">CSS</a><a class="tag" taget="_blank" href="/search/%E5%93%8D%E5%BA%94%E5%BC%8F%E8%AE%BE%E8%AE%A1/1.htm">响应式设计</a> <div>title:TailwindCSS响应式设计实战指南date:2024/6/13updated:2024/6/13author:cmdragonexcerpt:这篇文章介绍了如何运用TailwindCSS框架创建响应式网页设计,涵盖博客、电商网站及企业官网的布局实例,包括头部导航、内容区域、侧边栏、页脚及轮播图等组件的响应式实现。同时,探讨了与JavaScript框架集成、CSS预处理器配合、设计</div> </li> <li><a href="/article/1949793538065625088.htm" title="揭秘前端 CSS3 字体特效的实现方法" target="_blank">揭秘前端 CSS3 字体特效的实现方法</a> <span class="text-muted"></span> <div>#揭秘前端CSS3字体特效的实现方法>关键词:CSS3、字体特效、text-shadow、@font-face、font-feature-settings、动画效果、Web字体>摘要:本文通过生活化的比喻和实战案例,深入解析CSS3实现字体特效的核心技术。从基础文字阴影到高级字体动画,揭秘7种酷炫效果实现原理,并提供可直接复用的代码模板。##背景介绍###目的和范围本文系统讲解CSS3实现字体特效</div> </li> <li><a href="/article/1949793537402925056.htm" title="Tailwind CSS与服务器端渲染:SSR项目样式处理" target="_blank">Tailwind CSS与服务器端渲染:SSR项目样式处理</a> <span class="text-muted">AI实战架构笔记</span> <a class="tag" taget="_blank" href="/search/AI%E6%9E%B6%E6%9E%84%E5%BC%80%E5%8F%91%E5%AE%9E%E6%88%98/1.htm">AI架构开发实战</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/ai/1.htm">ai</a> <div>TailwindCSS与服务器端渲染:SSR项目样式处理关键词:TailwindCSS、服务器端渲染、SSR、样式处理、性能优化、Next.js、Nuxt.js摘要:本文将深入探讨如何在服务器端渲染(SSR)项目中高效使用TailwindCSS。我们将从基本原理出发,分析Tailwind在SSR环境下的独特挑战,提供完整的解决方案,并通过实际案例展示最佳实践。文章涵盖性能优化策略、常见问题解决以及</div> </li> <li><a href="/article/1949784836155699200.htm" title="现代 CSS 工程化:从 Tailwind 到 CSS-in-JS,再到样式性能优化" target="_blank">现代 CSS 工程化:从 Tailwind 到 CSS-in-JS,再到样式性能优化</a> <span class="text-muted">rjewh88998</span> <a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/1.htm">性能优化</a> <div>一、引言:CSS工程化的演进与现代挑战传统CSS开发的痛点(样式冲突、复用困难、维护成本高、缺乏动态性)什么是CSS工程化?(系统化、规范化、工具化解决CSS开发问题)现代CSS工程化的核心目标(效率提升、样式一致性、可维护性、性能优化)本文核心内容与阅读价值(全面解析主流方案,掌握工程化落地与优化策略)前置知识要求(基础CSS语法、前端框架基础认知)二、原子化CSS方案:TailwindCSS深</div> </li> <li><a href="/article/1949680428101201920.htm" title="html-day01笔记-01-前言&WEB标准&认识HTML&HTML常用标签" target="_blank">html-day01笔记-01-前言&WEB标准&认识HTML&HTML常用标签</a> <span class="text-muted">zhangjunzongque</span> <a class="tag" taget="_blank" href="/search/%E4%B8%AA%E4%BA%BA/1.htm">个人</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/%E5%B8%B8%E7%94%A8/1.htm">常用</a><a class="tag" taget="_blank" href="/search/%E6%A0%87%E7%AD%BE/1.htm">标签</a> <div>typora-copy-images-to:media第01阶段.web基础:html-day01笔记-01-前言&WEB标准&认识HTML&HTML常用标签一、前言1.基础班学习目标目标:能根据psd文件(psd文件,其实就是一张类似于图片的格式,这个呢是用ps做的,也就叫做源文件),用HTML+CSS布局出符合W3C规范的网页(也就是说,我们写的代码,要符合标准)。简单的说,能根据美工给的图,</div> </li> <li><a href="/article/1949608571167633408.htm" title="Vue项目发布后浏览器缓存问题解决" target="_blank">Vue项目发布后浏览器缓存问题解决</a> <span class="text-muted"></span> <div>1.现象描述每次Jenkins自动化发布Vue项目后,用户需要手动全部清理历史缓存数据才可以使用系统,用户体验非常不好2.解决方案2.1配置public/index.html配置index.html,在首页启动no-store禁止缓存2.2配置vue.config.js按时间戳打包vue默认配置,打包后css和js的名字后面都加了哈希值,不会有缓存问题,当然我们也可以自己重新定义根据时间戳cons</div> </li> <li><a href="/article/1949578816791834624.htm" title="Web字体特效全攻略:从基础到创新设计" target="_blank">Web字体特效全攻略:从基础到创新设计</a> <span class="text-muted"></span> <div>本文还有配套的精品资源,点击获取简介:Web字体特效通过结合HTML、CSS和JavaScript,增强网页文本的视觉表现和交互性。文章详细介绍了实现这些特效的技术要点,包括HTML基础结构的设置、CSS样式和新特性的应用,以及JavaScript和相关库的使用。此外,还讲解了字体图标、动画库的利用,以及响应式设计的考虑,确保字体特效在不同设备上的兼容性。提供丰富的实例和资源,旨在帮助开发者打造具</div> </li> <li><a href="/article/1949573518538633216.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的强大工具,它们解决了原生CSS在大型项目中的维护和兼容性问题,但工作方式和目标不同:CSS预处理器(CSSPreprocessor)定义:CSS预处理器是一种扩展CSS语言的脚本工具。开发者使用预处理器特有的语法(如变量、嵌套、函数等)编写代码,再通过编译器将其转换为标准CSS。核心特性:变量:存储颜色、尺寸等重复值,方便全局修改。$p</div> </li> <li><a href="/article/1949570744082034688.htm" title="CSS3文本阴影特效全攻略" target="_blank">CSS3文本阴影特效全攻略</a> <span class="text-muted"></span> <div>CSS3文本阴影效果实现下面我将创建一个展示各种CSS3文本阴影效果的页面,包含多种样式示例和代码实现。设计思路创建具有视觉吸引力的标题区域提供多种文本阴影效果实例显示对应的CSS代码以供参考添加交互元素让用户自定义效果实现代码CSS3文本阴影效果大全*{margin:0;padding:0;box-sizing:border-box;}body{font-family:'OpenSans',sa</div> </li> <li><a href="/article/1949557889618210816.htm" title="css文本超出显示省略号" target="_blank">css文本超出显示省略号</a> <span class="text-muted"></span> <div>单行文本溢出.singleline-ellipsis{overflow:hidden;//文本长度超出限定宽度时,则隐藏超出内容white-space:nowrap;//设置文本不换行,在一行显示text-overflow:ellipsis;//当对象内文本溢出时显示省略标记(…)注意:只有在设置了overflow:hidden和white-space:nowrap后text-overflow才能</div> </li> <li><a href="/article/1949557890037641216.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/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/css%E8%B6%85%E5%87%BA%E6%98%BE%E7%A4%BA%E4%B8%BA%E7%9C%81%E7%95%A5%E5%8F%B7/1.htm">css超出显示为省略号</a><a class="tag" taget="_blank" href="/search/%E6%96%87%E5%AD%97%E8%B6%85%E5%87%BA%E5%A4%9A%E8%A1%8C%E9%9A%90%E8%97%8F%E6%98%BE%E7%A4%BA%E7%9C%81%E7%95%A5%E5%8F%B7/1.htm">文字超出多行隐藏显示省略号</a> <div>开发过程中我们可能会遇到这样的需求:有一行文本,不足一行,全部显示,超出一行,行尾显示为省略号。可能你会有些扫操作,用JS去动态的判断,尽管效果已经实现,但是看上去搓的一逼,配不上前端这个词。下面给你介绍两种优雅的方式,来实现这个效果。HTML如下:这是测试,这是测试,这是测试,这是测试,这是测试,这是测试,这是测试,这是测试,这是测试,这是测试,这是测试,这是测试,这是测试,这是测试,这是测试,</div> </li> <li><a href="/article/1949557132634419200.htm" title="CSS属性的特性_层叠性" target="_blank">CSS属性的特性_层叠性</a> <span class="text-muted">51349592</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中层叠的概念:对于一个元素来说,相同一个属性我们可以通过不同的选择器给它进行多次设置;那么属性会被一层层覆盖上去;但是最终只有一个会生效;那么多个样式属性覆盖上去,哪一个会生效呢?判断一:选择器的权重,权重大的生效,根据权重可以判断出优先级判断二:先后顺序,权重相同时,后面设置的生效;层叠性的影响因素:选择器类型决定基础权重:选择器类型权重示例内联样式1,0,0,0ID选择器0,1,0,0类</div> </li> <li><a href="/article/1949557133112569856.htm" title="CSS元素隐藏方法" target="_blank">CSS元素隐藏方法</a> <span class="text-muted">51349592</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提供了多种隐藏元素的方法,但它们在视觉表现、可访问性和布局影响上各不相同。方法一:display:none(完全隐藏).hide-element{display:none;}特点:元素完全从渲染树中移除,不占据任何文档流空间(类似不存在)无法触发任何事件(点击、键盘交互等)会触发重排(reflow)和重绘(repaint),频繁切换可能影响性能方法二:visibility:hidden(视觉</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>