在现实世界中,防弹衣并不能100%保证您不受伤害,但人们总是在不断地争取提升其防弹性能。毕竟,穿了防弹衣总是比不穿好。
这样的规则同样适用于Web设计。通过增加网页的灵活性,以及采用必要的步骤来保证它在尽可能多的场景中都具备可读性,我们就给自己的作品赋予了一些与众不同的特色。这是一个循序渐进的过程,并且当采用HTML和CSS后,将能够更加容易构建出赏心悦目并且具有良好适应能力的设计方案。
本文将讨论如何创建流动布局和弹性布局——为我们无懈可击的设计方案增添一个工具。掌握如何恰当地使用它们,将给网页设计增加更多的灵活性。流动布局并不是只能由CSS实现的,它也可以通过表格来实现。文中您将会发现,把布局的细节放在样式表中实现,还有许多其他好处。弹性布局中的列使用em作为长度单位,基于em的布局会随着字体大小的变化而放大或缩小。
为什么这样设计不是无懈可击的?
一、常见的方法
多列布局并不是只能由CSS实现,也可以使用表格同样实现能够根据浏览器窗口的大小而自由缩放的(流动)布局。以前,设计者会考虑到使用列来实现,每一列都由一系列表格单元格来构造。
图中显示了一个常用的布局结构,有一个页头横跨顶部、两列内容以及一个横跨底部的页脚。
常会看到与此类似的一种两列的布局结构
以前,我们似乎很自然地会使用表格来构建这种结构,用colspan这个特性使页头和页脚横跨于内容列的上方与下方。大致的 HTML代码如下所示:
header
content
sidebar
footer
但大多数的设计者和开发者不会就此罢休。构造好了基础结构以后,会在这个结构中的每一个单元格中再嵌入表格,为布局创建边界和像素级别精度的间距。最终,为了使构造的结构和页面的样式能够更加变化灵活,会添加很多HTML代码。
为了达到流动可变性,可将表单元格的宽度设成百分比形式,这使得布局可以完全扩展而不需要考虑浏览器窗口的大小。
header
content
sidebar
footer
整个表格被设置成100%的宽度,列可以根据任意需要的宽度进行拆分。如图所示:左边是一个宽一些的内容栏,右边是一个窄一些的侧边栏。当浏览器窗口扩展或收缩而使布局的大小发生变化时,各列宽度的比例将保持不变。
这表明了表格能够用来构造布局,同时也表明了表格能够用来构造随浏览器窗口变化的流动布局。然而,还可以采用其他更完美的办法做到这一点。
二、值得思考的问题: 为什么这样设计不是无懈可击的?
表格布局最主要的问题之一,就是表示内容与外观的 HTML 代码混在一起了。换句话说,边框、空白GIF和图片所用的代码都嵌入在表示重要内容的代码中。这意味着只典型的桌面浏览器才能够顺利地阅读这样的网页。而使用屏幕阅读软件、文本浏览器或在移动设备上阅读软件时,就可能遇到困难。
1. 大量的代码
内容与外观的缠结还意味着代码量的增大。使用嵌套表格来构造布局,所需要的代码量有时候是相当惊人的。许多额外的表单元格被用来构造栏间空白、边框和其他页面视觉效果。如果使用 CSS,HTML 代码就能够减少到只保留它最本质的部分,对外观的设定可以移到样式表中。这样,网页在非传统浏览设备和浏览软件中的可读性就立刻提高了,对搜索引擎也更加友好(这是一个额外的、免费的好处)。
2. 噩梦般的维护工作
因为大量的嵌套表格造成纠缠在一起的大量代码,这只能增加维护的工作量。对于基于表格布局的网页,要改造它们的外观,需要花费更大的力气——检查大量的单元格和额外的 H T M L 代码。在这样的情形下,修改的工作量会大得令人发狂,还不如推倒重来。
3. 并非最佳的内容顺序
使用基于表格的布局还存在一个缺点,即文本浏览器和屏幕阅读器上所呈现出来的内容有顺序问题。例如,有一个三列的布局,我们知道,HTML 中的顺序总是左列、中间列,然后右列。这是操作的表格方式。
基于表格的内容通常的顺序是左列、中间列、右列
在那些基于文本的浏览器或屏幕阅读器中,通常只能按上面的这种顺序对内容进行解析。但最主要的内容往往并不放在左列,而是放在中间列,这样,它很有可能被埋没在页面代码中。使用表格构造布局时,想要安排重要的内容在其他浏览器或软件中先被读到是不可能实现的。对于所有浏览设备都只有一种顺序,迫使用户在使用文本和屏幕阅读器时,想要得到重要内容之前,就要先艰难地穿过那些无关紧要的代码。
幸运的是,基于CSS的布局允许对内容顺序进行重排,这样,可以使用 HTML ,采用最优化的顺序来编写文件的源代码,而以其他的样式进行呈现。而且,所需的代码量大大地减少了,还将内容从表示层分离出来。那么,下面让我们开始使用CSS来构建流动的多列布局吧!
为什么这样设计是无懈可击的?
一、无懈可击的方法:
虽然在本文的无懈可击例子中重点介绍的是如何创建灵活可变的布局,但还是应该注意到,固定宽度的基于CSS的布局也具有无宽度限制的布局的很多优点。它们的主要区别是,可变的布局能够随着浏览器窗口的大小而伸缩,能够给用户更多的掌控能力。当屏幕尺寸可能存在明显差别(例如移动设备)时,这种方法的效果更好。
我们将介绍利用CSS创建流动布局的必要步骤及其原理。现在让我们从最简单的两栏布局(具有页头和页脚) 开始创建。
1.HTML 代码结构
我们不再使用表格单元格来构造页面的列结构,而使用简单的和其他HTML 5语
义元素将内容划分成块。还要时刻记住,要使内容有最佳的排列顺序。
一个最基本的简单两栏布局可以用如下 HTML 代码编写:
Header Goes Here
... content goes here ...
... footer goes here ...
代码结构就应该这样,很难再简化了。这种排序方式最为合理:页头、内容、侧栏和页脚。这是考虑了在没有CSS的情况下页面的布局。就这一点来说,到目前为止,一切都还不错。
我在整个布局之外增加了一个容器。
通常可以在各种目的的设计中派上用场。所以,每当使用CSS来构建布局时,都会从
开始。
2.创建栏:浮动与定位
用CSS创建栏的方法之一就是绝对定位(absolute positioning),所谓绝对定位,就是使用屏幕上的X和Y坐标将组件定位在特定的位置。但使用绝对定位最大的缺点是,不能使页脚准确地定位于所有栏的下方。
在构建多列布局时,方法的不灵活导致CSS设计者通常使用 fl oat 属性。因为浮动元素是可以被清除的,所以它是我们用来控制分栏布局的最好工具。CSS 3提供了创建模块化布局的新语法,但是这些语法还没有得到浏览器的广泛支持。而没有这些支持,是无法完成布局设计这类比较关键的任务的。因此我们仍然沿用float属性。
3.应用样式
选择用浮动作为创建栏的方法之后,我们再用百分比将网页分为内容栏和侧边栏两部分。在本例中,比例为 7:3(70% 内容栏,30% 侧边栏)。
第一步,要给页头、侧边栏和页脚加上背景色,以便区分我们所要处理的这几个部分。
header[role="banner"]{
background: #666;
}
#sidebar {
background: #999;
}
footer[role="contentinfo"]{
background: #DDD;
}
然后做两件事。首先,设置内容栏的宽度为70%,侧边栏的宽度为 30%。然后,使内容栏浮动在左边,侧边栏浮动在右边。这使得两个栏的位置相对。
header[role="banner"]{
background: #666;
}
#content {
float: left;
width: 70%;
}
#sidebar {
float: right;
width: 30%;
background: #999;
}
footer[role="contentinfo"]{
background: #DDD;
}
4.Gutter
“gutter”这个术语已经沿用了很多年了,指文本栏之间的间距。在处理流动布局的栏宽时,gutter 的设置就会变得非常困难。在一个固定栏宽的设计中,我们可将预计的宽度设置成像素大小,这样就可以很容易地连同栏宽一并考虑 gutter的宽度。
但对于流动的栏宽,我们有两种选择:将gutter宽度设成百分比的形式,栏宽也如此;或者,添加一个额外的元素来设定和栏宽分离的外边距和内边距。后一种方法从 HTML 代码的角度来看不是最佳的,但它确实提高了控制水平,这在复杂的设计中是必不可少的。稍后将再次讨论这个问题。
为内容栏与侧边栏之间的gutter设置百分比宽度,一种方法就是给内容栏指定一个右外边距,然后从内容栏的宽度里减去它的值。当然百分比值的总和应该是100%
header[role="banner"]{
background: #666;
}
#content {
float: left;
width: 65%;
margin-right: 5%;
}
#sidebar {
float: right;
width: 30%;
background: #999;
}
footer[role="contentinfo"]{
clear: both;
background: #DDD;
}
通过上面的设置,我们把内容栏的宽度减少了5%,同时给内容栏的右外边距增加了同样的宽度来设置栏间的 gutter。显示结果,在内容栏和侧边栏之间多了一条白 色的间隔。
要记住,当给gutter赋百分比值时,栏间的间隔也会随着窗口的宽度而改变。在窄的窗口中会更小,在宽的窗口中则会更大。对于某些设计需求,这或许是个问题。例如,往往要求栏的边线或背景图片在栏之间有一个固定的间隔。在这些情况下,给容器加上第二层容器是最佳选择了,这一点将在本章中继续讨论。但如果追求简单化,那么给外边距指定一个百分比值是最简单的选择。
5. 栏的内边距
如果栏的宽度设置使用百分比的方式,那么在指定其内边距时,也会出现相似的问题。这是内边距的计算方式造成的(在已声明元素的宽度上为“增加”)。如果使用除百分比之外的值来设定栏的内边距,那么最后的总宽度很容易超过或小于预期的值。这会让您轻易地放弃选择用浮动来控制页面布局。
例如,我们给侧边栏的内边距增加20个像素,使其显得更宽松一些。
header[role="banner"]{
background: #666;
}
#content {
float: left;
width: 65%;
margin-right: 5%;
}
#sidebar {
float: right;
width: 30%;
padding: 20px;
background: #999;
}
footer[role="contentinfo"]{
clear: both;
background: #DDD;
}
在宽度固定的布局中,可以很容易地将列两边定义的宽度各减去20像素的内边距。但在流动宽度布局中,是使用百分比来定义宽度的,根本无法设定一个30%的宽度减去40像素的宽度。这会使侧边栏的宽度变得大于30%,无法再与内容栏并列,会被迫挤到
内容栏下边去。这可不是我们所希望的效果。
那么在这种情况下会有哪些解决方案可供选择呢?
■ 将内边距也设置为百分比,然后从列宽中减去它的值(就像前面我们增加一个 5%
的列间 gutter 时所做的一样)。
■ 只在侧边栏内部的元素中应用内边距。
■ 增加一个额外的 ,可以使用任意值来分别为它们的内边距赋值。
■ 使用中新增的极为方便的box-sizing属性,可以改变浏览器计算方框尺寸的方式(例如,在对象内部应用内边距)。
6.设置宽度的最大值和最小值
构建流动布局时,设计者常常要面对的一个障碍就是行的长度。能够随心所欲地伸展布局,对用户而言非常有益。但到了一定程度时,行的长度可能长到使内容难以阅读,也可能窄到破坏页面上其他部分的外观。
在这里,CSS的max-width和min-width属性就派上用场了。给流动布局设置最大和最小宽度,可以防止栏被无限制地伸长或收缩。很遗憾,IE6 不支持这种功能。但对支持这种功能的浏览器来说,它会带来很大的提高,而且添加起来十分便捷。
7. 滑动人造栏
如果您重新观察这一整章中我们一直在用的两栏布局,就会注意到,虽然我们给侧边栏设置了绿色的背景色,但这个背景只会往下扩展到刚好满足所需的位置。所以,根据栏中所容纳的内容,侧栏的高度与内容栏会有所不同。
通常,人们希望所看到的栏的外观是等高的,而且定义了一致的背景和边框。但使用流动布局时,无法使一个栏的高与另一栏相一致。
使用这种技术,平铺的图片位于栏的后面,造成一种错觉让人以为两栏一样高。这种方法可以使背景色、样式和边框都位于布局的后边,并一直延伸到页面底部。然而,这种技术只能应用于宽度固定的布局,其中列宽预先确定好,然后被内置到平铺的图片中。
DouglasBowman(www.stopdesign.com/log/2004/09/03/liquid-bleach.html)和EricMeyer(www.meyerweb.com/eric/thoughts/2004/09/03/sliding-faux-columns/)使这种思想更推进了一步,他们提出了“Sliding Faux Columns(滑动人造栏) ”方法,这样,平铺的图片就可以在流动布局的后面滑动,既可以实现栏等高的效果,同时也保留了灵活性。
二、再次探讨:为什么这样设计是无懈可击的?
第一个理由,代码量更少。不必再用嵌套的表格在 HTML 代码中实现边框、背景和间隔,我们只要用几个简单的,而不必再用CSS为每栏设置位置与样式,就可以轻松地构造出一个多栏布局。即使在设计固定宽度的 gutter 和“滑动人造栏”(Sliding Faux Columns)时添加了额外(然而是必需)的
,HTML代码量还是远远少于使用嵌套表格时的情形。
第二,有了更易于维护的基本代码。因为外观的细节都在样式表中定义,HTML代码变得更容易阅读,要更改布局的外观,只需更新几个样式规则即可。使用CSS的float属性,在多栏布局中,可以给内容安排最佳的顺序,最重要的内容可以安排在 HTML 代码的最前面。这给使用屏幕阅读器、文本浏览器和不支持CSS的其他设备进行浏览的用户带来了好处。
最后,当实现了一个灵活的、流动的布局时,就会赋予用户一种控制能力。使他们能够随心所欲地扩展布局,也能在使用小屏幕时使窗口变窄。这种更高层次的控制能力,是证明设计方案无懈可击的另外一种方式,使设计方案能适应尽可能多的环境。
固定布局、流动布局和弹性布局,哪种方法更好呢?在选择采用何种布局时,需要记住最重要的一点是,每种方法都有它合适的位置。要通过试验来搞清楚它们是如何运作的,以及在每个解决方案中它们的优缺点。
One point:选择讨论流动布局和弹性布局,不是因为我觉得它们在任何时候都优于固定宽度的布局。更恰当地说,每种布局都有它自己适合的场合,这主要取决于设计需求,因为对网页设计者来说,设计需求并不总是能够由自己作出决定的。
这就是说,如果您的设计方案中能加上流动布局或者弹性布局,那么就请为用户能从中获益而感到高兴吧。流动边距也为适应性Web设计(Responsive Web Design,RWD)打下了基础,适应性Web设计是一种根据网格布局所在的浏览环境使它们进一步调整并适应环境的方法。
PS: 小提示
当构建流动布局时,应当记住以下几点:
■ 使用 fl oat 属性来构建多栏布局,可以清除掉浮动对象对页脚所产生的影响。
■ 从列宽中减去 gutter 的百分比宽度值,或者增加一个额外的在列宽以外单独设置内边距的值。
■ 使用CSS 3的box-sizing:border-box;,在基于百分比的元素声明的宽度内设置内边距和边框。这种方法不需要使用额外的来控制gutter,但是需要注意,并不是所有的浏览器都支持box-sizing。
■ 为流动布局设置min-width和max-width,防止布局尺寸过大或过小。不必在意IE6不支持这种功能。
■ 尝试用“滑动人造栏”(Sliding Faux Columns)的方法,通过使边框和背景一直延伸到页脚,来实现等高栏(但很灵活)。
■ 基于em的布局能提供另外一种灵活性。要记住,当把浏览器中的字体增大到某个值时,整个设计中的一部分就只能通过水平滚动条才看到(除非对布局设定了max-width)。
至此已经介绍了创建一个灵活、流动、基于CSS的布局的基础知识,接下来将把这本书中迄今讨论过的方方面面综合起来,从而构建一个完整的、单页的无懈可击的设计方案。
样章试读:http://product.china-pub.com/199780
你可能感兴趣的:(网络技术)
我与新媒体
小富yyd
1.我对新媒体的认识我对新媒体的认识就是比如传统媒体、网络媒体、移动端媒体、数字电视、数字报刊。新媒体则是通过现代化移动互联网手段,通过微信、微博等新兴媒体平台进行营销、宣传、推广等的一系列运营活动。新媒体可分为广义和狭义两个方面来理解。广义:新媒体可以看作在各种数字技术和网络技术支持下,以互联网、宽带局域网和无线通信网等为渠道,利用计算机、手机和数字电视等各种网络终端,向用户提供信息和娱乐服务的
新一代网络研发利器——开物™,让用户每一行代码都贡献在核心创新
中科驭数
网络 云计算 大数据 人工智能
随着云计算、人工智能、大数据的快速发展,现有的IT系统越来越复杂,传统网络技术难以满足新的业务需求,DPU技术开始崭露头角,越来越多的企业与研究机构认识到高性能网络处理技术带来的巨大价值,并积极开展创新与实践,从而实现更匹配的功能和更高的系统性能。但是,从零开始进行网络系统的搭建,开发人员需要掌握各类创新技术无关的、最底层的技术架构原理,如硬件设计逻辑、API接口、底层IP、硬件驱动等一系列复杂的
CTF——web方向学习攻略
一则孤庸
CTF 网络安全 CTF
1计算机基础操作系统:熟悉Linux命令,方便使用Kali。网络技术:HCNA、CCNA。编程能力:拔高项,有更好。2web应用HTTP协议:必须掌握web开发框架web安全测试3数据库数据库基本操作SQL语句数据库优化4刷题
网络技术包括哪些
v_usps2280
网络 服务器 运维
1、计算机网络组网技术组网技术就是网络组建技术,分为以太网组网技术和ATM局域网组网技术。以太网组网非常灵活和简便,可使用多种物理介质,以不同拓扑结构组网,是国内外应用较为广泛的一种网络,已成为网络技术的主流。以太网按其传输速率又分成10Mb/s、100Mb/s、1000Mb/s。细缆以太网10BASE-210BASE-2以太网是采用IEEE802.3标准,它是一种典型的总线型结构。采用细缆为传输
MDN的简介
印第安老斑鸠_333
MDNWebDocs(旧称MozillaDeveloperNetwork、MozillaDeveloperCenter,简称MDN)是一个汇集众多Mozilla基金会产品和网络技术开发文档的免费网站[1]。该项目始于2005年,最初由Mozilla公司员工DebRichardson领导。自2006年以来,文档工作由EricShepherd领导[2]。网站最初的内容是由DevEdge提供,但在AOL
计算机网络中 数据交换的方式有,计算机网络中的通信数据交换技术探讨
学写作的丧失
计算机网络中 数据交换的方式有
计算机网络中的通信数据交换技术探讨摘要:随着科技不断发展,人们对计算机网络技术越来越关注,计算机网络为人们生活带来诸多便利,是科技发展的基础工程。近年来,计算机网络中的通信数据交换技术被广泛应用,网络通信数据交换技术不断更新与发展,在加快计算机发展进程中发挥着重要作用。基于此,本文主要对计算机网络中的通信数据交换技术进行探讨与分析。关键词:计算机网络探讨通信数据交换技术通信数据交换技术是在终端之间
斯尔福智慧实验室三阶段详解
斯尔福实验室设备
大数据
未来二十时间,实验室智能化是各类实验室的发展方向。在这样的时代背景下,斯尔福提出设计建造更安全、舒适、高效、节能的智慧实验室,是整个实验室设计、建设的核心目地。斯尔福将智慧实验室分为3个阶段。如何实现实验室信息数据智能化,LEMS实验室智能环境设施管理系统,以实验室为中心,采用先进的计算机网络技术、数据库技术以及三维仿真技术,将实验室整体环境,包括设备。人员。危险物等数据,结合实验室用户标准化管理
计算机网络安装与调试题,计算机三级《网络技术》练习题及答案:无线局域网设备安装与调试...
曲陌柘凝
计算机网络安装与调试题
计算机三级《网络技术》练习题及答案:无线局域网设备安装与调试1[单选题]一个APRN覆盖的区域答为一个小区,一个小区的室内与室外覆盖范围分别是()A.30,150B.30,50C.30.500D.50.150参考答案:A2[单选题]某家庭需要通过无线局域网将分布在不同房间的三台计算机接入Internet,并且ISP只给其分配一个IP地址。在这种情况下,应该选用的设备是()A.APB.无线路由器C.
计算机三级网络技术总结 第八章无线局域网设备安装与调试
数学难
网络 运维
IEEE802.11最初定义的三个物理层包括了两个扩频技术和一个红外传播规范,无线传输的频道定义在2.4GHz的ISM波段内IEEE802.11无线标准定义的传输速度是1Mbps和2Mbps,可以使用FHSS和DSSS技术IEEE802.11在MAC层上引入了一个新的RTS/CTS选项点对点模式是指无线网卡和无线网卡之间的通讯方式在点对点模式中最多可连接256台PC基本模式是无线和有线网络并存的通
5G NTN简介
山丘之王岳岳
5G NR NTN PHY文献阅读 5g
概念:非地面网络技术,是指利用机载或星载有效载荷进行通信的网络解决问题:在高速移动的交通工具上,很难采用传统的地面基站方式覆盖,5GNTN应用而生,NTN典型场景概括为:全球形覆盖、信令分流、应急通信、物联网和广播业务5GC共享结构:TN、NTN有各自独立的接入网,但共享5G核心网NTN接入共享:有不同5G核心网的运营商可以共享NTN无线接入网漫游器和服务器连续性部署:同一个多模终端,TN网络漫游
mysql 新增管理员_操作MYSQL数据库给WordPress增加新的管理员账号
仙剑李逍遥
mysql 新增管理员
网页制作网络技术需要大家共同分享,不能闭门造车,下面是bj-dns文章简介:如何手工给wordpress增加一个管理员帐号。首先,我先设定数据库已经存在了wordpress的表,下面就是操作了。首先我们来到PHPMyAdmin界面。我们主要要操作wp_users和wp_usermeta表。首先操作wp_users表增加一个用户选中wp_users表并且点击界面上的插入按钮(在上面一排操作的中间偏后
【人工智能】大话什么是神经网络
路上阳光
什么是人工智能?通俗来讲,就是让机器能像人一样思考。这个无需解释太多,因为通过各种科幻电影我们已经对人工智能很熟悉了。大家现在感兴趣的应该是——如何实现人工智能?从1956年夏季首次提出“人工智能”这一术语开始,科学家们尝试了各种方法来实现它。这些方法包括专家系统,决策树、归纳逻辑、聚类等等,但这些都是假智能。直到人工神经网络技术的出现,才让机器拥有了“真智能”。为什么说之前的方法都是假智能呢?因
怎样确保零信任架构在网络安全框架中的顺利整合
图幻未来
网络安全
确保零信任架构在网络安全框架中顺利整合的方法与分析随着网络技术的飞速发展,网络安全问题日益严重,企业对于数据安全和网络防护的需求也不断提高。作为一种新型的网络安全策略,零信任架构(ZeroTrustArchitecture)受到了广泛关注。本文将探讨如何确保零信任架构在网络安全框架中顺利整合,并分析AI技术在零信任架构的应用场景。一、零信任架构概述零信任架构(ZTA)是一种以“永不信任,总是验证”
美国服务器托管机房如何选择?
恒创科技HK
美国作为全球互联网中心的发源地,网络技术能力不可被低估。通常情况下,美国服务器机房从设计布局到安全可靠的一套系统(防火、防震、温湿度、电源供电量)等都有专业严格的标准,管理完善,能为服务器托管提供一个安全可靠的数据中心。什么是美国服务器托管?一般指根据网站业务需求或发展需要仔细配置服务器硬件设备,然后将服务器设备托管到美国机房进行管理,托管服务商提供资源和支持。众所周知,美国服务器无需备案、ip带
苹果手机兼职试玩赚钱平台(苹果手机兼职赚钱平台正规)
趣闲赚手机做任务赚佣金
苹果手机兼职赚钱:正规平台给你贴心服务诊断市场:随着时代的进步,越来越多的人开始利用手机和网络技术来获得良好的兼职机会,从而获得收入。但是,很多人对找寻兼职的过程有些困惑,根据市场细分,大多数人更愿意使用苹果手机,因此,有必要了解有关苹果手机兼职赚钱平台的一些信息,以便能够在职业发展中取得成功。趣闲赚上面的任务单价也就是几块钱到几十元一单,做的多挣的多。【趣闲赚】拿着手机做赏金任务,1元提现秒到账
java程序设计实验3_Java面向对象程序设计习题解答与实验(第3版) 张桂珠 9787563530922...
weixin_39839478
java程序设计实验3
**部分习题解答第1章面向对象程序设计第2章java概述和入门程序第3章java程序设计基础第4章类和对象第5章类的继承和派生第6章多态性第7章java实用包第8章图形和java2d第9章gui组件和用户界面设计第10章异常处理第11章多线程第12章输人流和输出流处理第13章网络技术与应用开发第14章jdbc技术和数据库开发应用**部分习题解答第1章面向对象程序设计第2章java概述和入门程序第3
信息系统基础知识---政府信息化与电子政务
hu19930613
后端 计算机组成原理
政府信息化与电子政务政府信息化是传统政府向信息化政府的演变过程。具体地说,政府信息化就是应用现代信息技术、网络技术和通信技术,通过信息资源的开发和利用来集成管理和服务,从而提高政府的工作效率、决策质量、调控能力,并节约开支,改进政府的组织结构、业务流程和工作方式,全方位地向社会提供优质、规范、透明的管理和服务。这个定义包含三个方面的内容:第一,政府信息化必须借助于信息技术和网络技术,离不开信息基础
KAN网络技术最全解析——最热KAN能否干掉MLP和Transformer?(收录于GPT-4/ChatGPT技术与产业分析)
u013250861
# LLM/Transformer transformer chatgpt 深度学习
KAN网络结构思路来自Kolmogorov-Arnold表示定理。MLP在节点(“神经元”)上具有固定的激活函数,而KAN在边(“权重”)上具有可学习的激活函数。在数据拟合和PDE求解中,较小的KAN可以比较大的MLP获得更好的准确性。相对MLP,KAN也具备更好的可解释性,适合作为数学和物理研究中的辅助模型,帮助发现和寻找更基础的数值规律。(点赞是我们分享的动力)MLP与KAN对比与传统的MLP
EI会议推荐-第二届大数据与数据挖掘国际会议(BDDM 2024)
shiyuankeyan
数据挖掘 大数据
第二届大数据与数据挖掘国际会议(BDDM2024)1、基本信息大会官网:http://www.icbddm.org/官方邮箱:
[email protected] 主办方:武汉纺织大学会议时间:2024年12月13日-12月15日会议地点:湖北武汉02征稿主题:包含(但不限于)以下领域:大数据:大数据分析、人工智能、大数据网络技术、大数据搜索算法和系统、分布式和点对点搜索、基于大数据的机器学习、大数据可视化
ip命令的详解
云夏之末
tcp/ip 网络协议 网络
一、ip命令介绍1.1ip命令简介IP命令是一个非常强大的命令行工具,用于管理与配置网络接口和路由表。1.2ip命令的由来IP命令的由来可以追溯到Unix操作系统,IP命令是一个网络工具,用于配置和管理网络接口和路由表。它是从早期的Unix系统中的ifconfig命令发展而来的。ifconfig命令可以用于配置和管理网络接口,但是它的功能有限,不能管理路由表,因此IP命令应运而生。随着网络技术的不
大厂程序员都会的分布式RPC框架,直接无私打包分享,手慢无
卡卡的Java架构笔记
rpc java 网络协议 程序人生
一.概述什么是RPC?远程服务调用官方:一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的思想通俗一点:客户端在不知道调用细节的情况下,调用存在于远程计算机上的某个对象,就像调用本地应用程序中的对象一样。市面上常见的rpc框架:dobbo,springCloud,gRPC...那为什么要有RPC,HTTP不好么?因为RPC和HTTP就不是一个层级的东西,所以严格意义上这两个没有可比
人工智能在网络安全领域的应用探索
亿林数据
人工智能 web安全 安全 网络安全
随着网络技术的飞速发展,网络安全问题日益凸显,成为制约数字化进程的重要瓶颈。人工智能(AI)作为一种变革性技术,正逐步在网络安全领域展现出其巨大的潜力和价值。本文旨在探讨人工智能在网络安全领域的应用现状、优势、挑战及未来发展趋势。一、人工智能在网络安全中的应用现状威胁检测与响应人工智能通过机器学习算法,能够自动识别网络中的异常行为,如未经授权的访问、恶意软件传播等。传统的安全系统依赖于静态规则和签
速盾:cdn什么时候可以加?
速盾cdn
web安全 网络 安全
CDN(ContentDeliveryNetwork,内容分发网络)是一种分布式架构的网络技术,可以提高网站的访问速度和稳定性。通过将网站的静态资源(如图片、视频、脚本等)部署到全球各地的服务器节点上,CDN可以使用户从离他们物理位置更近的服务器获取网页内容,从而减少网络延迟和提高网页加载速度。那么,什么时候可以考虑使用CDN呢?网站流量大:当网站的访问量较大,特别是全球范围内的访问量较大时,CD
路由器以及路由原理
taotao796
智能路由器 网络
一、路由器的历史演变第一代路由器:早期的路由器主要是基于硬件的设备,具备有限的功能,主要用于连接不同的局域网。这一时期的路由器主要由硬件制造商提供,缺乏标准化和灵活性。第二代路由器:随着网络技术的发展,路由器开始采用嵌入式系统,具备了更强大的处理能力和更多的功能。这一时期的路由器开始支持更多的网络协议和连接方式,逐渐形成了现代路由器的雏形。第三代路由器:随着互联网的普及,路由器成为了家庭和企业必备
Windows Edge浏览器对Web Authentication API的支持分析与实践应用
2402_85758936
前端 windows edge
随着网络技术的发展,Web安全认证方式也在不断进步。WebAuthenticationAPI(通常称为WebAuthn)是一个现代的Web标准,旨在提供更安全、更便捷的认证机制。它支持多种认证方式,包括生物识别技术、硬件令牌和手机认证等。WindowsEdge作为微软的现代浏览器,对WebAuthn的支持情况如何,以及如何在实际开发中应用这一API,是本文将要探讨的主题。WebAuthentica
全局代理与局部代理:IP代理的两种模式
KookeeyLena7
tcp/ip 网络协议 网络
在网络技术日益发展的今天,IP代理作为一种常见的网络工具,被广泛应用于各种场景。根据代理范围的不同,IP代理主要分为全局代理和局部代理两种模式。这两种模式各有特点,适用于不同的使用需求。一、全局代理全局代理,顾名思义,是指对整个客户端的网络连接进行代理。在这种模式下,无论使用何种程序或浏览器,只要该程序支持代理协议,其网络连接都将通过代理服务器进行。全局代理的主要特点和优势包括:访问限制绕过与隐私
牛多磊 日精进打卡第16天
牛多磊
姓名:牛多磊公司:安徽省瀚海新材料股份有限公司第524期【知~学习】《六项精进》91~95••••••【经典名句分享】马云:我虽然从事这项事业,但对于网络技术实际上我知道得很少,直到现在仍属于门外汉。我原是英语老师,1995年一个偶然的机会知道了互联网,开始涉足这个领域。我完全不认为我已经成功了,我很害怕用成功这两个字。阿里巴巴创业才9年,与京瓷比只能算刚刚起步问题、课题一大堆,说成功有点不自量力
三级_网络技术_32_网络管理技术
小红红的学习笔记
安全 网络 web安全 计算机等级考试 网络技术
1.下列关于漏洞扫描技术和工具的描述中,错误的是()主动扫描工作方式类似于IDSCVE为每个漏洞确定了唯一的名称和标准化的描述X-Scanner采用多线程方式对指定IP地址段进行安全漏洞扫描ISS的SystemScanner通过依附于主机上的扫描器代理侦测主机内部的漏洞2.下列关于漏洞扫描技术和工具的描述中,错误的是()。X-Scanner采用多线程方式对指定P地址段进行安全漏洞扫描ISS的Int
国人骄傲
一木天堂
昨天血拼的宝贝,今天就收到2件了,是不是也就中国的快递有这效率?突然想起以前听过的笑话,大意如下:一个美国人一个台湾人一个中国人在一起聊天。美国人说,手机欠费,充值后一天才能用,台湾人骄傲地说:在我们台湾,只要一个小时就恢复服务了!中国人不屑道:我充上钱一分钟还打不通,就得怀疑自己是不是充错号码了!住在中国,你可以吐槽环境差,服务差,卫生差……但是对网络技术和快递速度,绝对没有糟点。感谢互联网的时
能赚零花钱的游戏有哪些(分享几款真实可以赚零花钱的游戏软件)
帮忙赚赏金
能赚零花钱的游戏有哪些(分享几款真实可以赚零花钱的游戏软件)近年来,随着智能手机的普及和网络技术的迅猛发展,手机游戏已成为人们生活中不可或缺的一部分。从一开始只是为了娱乐消遣,到如今的能够赚取零花钱的游戏,手机游戏行业为广大玩家带来了更多乐趣和实际利益。在这篇文章中,我将分享几款真实可以赚零花钱的游戏软件,帮助大家在娱乐的同时也能享受额外的经济回报。首先,我要介绍的是一款名为“CashApp”的应
jQuery 跨域访问的三种方式 No 'Access-Control-Allow-Origin' header is present on the reque
qiaolevip
每天进步一点点 学习永无止境 跨域 众观千象
XMLHttpRequest cannot load http://v.xxx.com. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:63342' is therefore not allowed access. test.html:1
mysql 分区查询优化
annan211
java 分区 优化 mysql
分区查询优化
引入分区可以给查询带来一定的优势,但同时也会引入一些bug.
分区最大的优点就是优化器可以根据分区函数来过滤掉一些分区,通过分区过滤可以让查询扫描更少的数据。
所以,对于访问分区表来说,很重要的一点是要在where 条件中带入分区,让优化器过滤掉无需访问的分区。
可以通过查看explain执行计划,是否携带 partitions
MYSQL存储过程中使用游标
chicony
Mysql存储过程
DELIMITER $$
DROP PROCEDURE IF EXISTS getUserInfo $$
CREATE PROCEDURE getUserInfo(in date_day datetime)-- -- 实例-- 存储过程名为:getUserInfo-- 参数为:date_day日期格式:2008-03-08-- BEGINdecla
mysql 和 sqlite 区别
Array_06
sqlite
转载:
http://www.cnblogs.com/ygm900/p/3460663.html
mysql 和 sqlite 区别
SQLITE是单机数据库。功能简约,小型化,追求最大磁盘效率
MYSQL是完善的服务器数据库。功能全面,综合化,追求最大并发效率
MYSQL、Sybase、Oracle等这些都是试用于服务器数据量大功能多需要安装,例如网站访问量比较大的。而sq
pinyin4j使用
oloz
pinyin4j
首先需要pinyin4j的jar包支持;jar包已上传至附件内
方法一:把汉字转换为拼音;例如:编程转换后则为biancheng
/**
* 将汉字转换为全拼
* @param src 你的需要转换的汉字
* @param isUPPERCASE 是否转换为大写的拼音; true:转换为大写;fal
微博发送私信
随意而生
微博
在前面文章中说了如和获取登陆时候所需要的cookie,现在只要拿到最后登陆所需要的cookie,然后抓包分析一下微博私信发送界面
http://weibo.com/message/history?uid=****&name=****
可以发现其发送提交的Post请求和其中的数据,
让后用程序模拟发送POST请求中的数据,带着cookie发送到私信的接入口,就可以实现发私信的功能了。
jsp
香水浓
jsp
JSP初始化
容器载入JSP文件后,它会在为请求提供任何服务前调用jspInit()方法。如果您需要执行自定义的JSP初始化任务,复写jspInit()方法就行了
JSP执行
这一阶段描述了JSP生命周期中一切与请求相关的交互行为,直到被销毁。
当JSP网页完成初始化后
在 Windows 上安装 SVN Subversion 服务端
AdyZhang
SVN
在 Windows 上安装 SVN Subversion 服务端2009-09-16高宏伟哈尔滨市道里区通达街291号
最佳阅读效果请访问原地址:http://blog.donews.com/dukejoe/archive/2009/09/16/1560917.aspx
现在的Subversion已经足够稳定,而且已经进入了它的黄金时段。我们看到大量的项目都在使
android开发中如何使用 alertDialog从listView中删除数据?
aijuans
android
我现在使用listView展示了很多的配置信息,我现在想在点击其中一条的时候填出 alertDialog,点击确认后就删除该条数据,( ArrayAdapter ,ArrayList,listView 全部删除),我知道在 下面的onItemLongClick 方法中 参数 arg2 是选中的序号,但是我不知道如何继续处理下去 1 2 3
jdk-6u26-linux-x64.bin 安装
baalwolf
linux
1.上传安装文件(jdk-6u26-linux-x64.bin)
2.修改权限
[root@localhost ~]# ls -l /usr/local/jdk-6u26-linux-x64.bin
3.执行安装文件
[root@localhost ~]# cd /usr/local
[root@localhost local]# ./jdk-6u26-linux-x64.bin&nbs
MongoDB经典面试题集锦
BigBird2012
mongodb
1.什么是NoSQL数据库?NoSQL和RDBMS有什么区别?在哪些情况下使用和不使用NoSQL数据库?
NoSQL是非关系型数据库,NoSQL = Not Only SQL。
关系型数据库采用的结构化的数据,NoSQL采用的是键值对的方式存储数据。
在处理非结构化/半结构化的大数据时;在水平方向上进行扩展时;随时应对动态增加的数据项时可以优先考虑使用NoSQL数据库。
在考虑数据库的成熟
JavaScript异步编程Promise模式的6个特性
bijian1013
JavaScript Promise
Promise是一个非常有价值的构造器,能够帮助你避免使用镶套匿名方法,而使用更具有可读性的方式组装异步代码。这里我们将介绍6个最简单的特性。
在我们开始正式介绍之前,我们想看看Javascript Promise的样子:
var p = new Promise(function(r
[Zookeeper学习笔记之八]Zookeeper源代码分析之Zookeeper.ZKWatchManager
bit1129
zookeeper
ClientWatchManager接口
//接口的唯一方法materialize用于确定那些Watcher需要被通知
//确定Watcher需要三方面的因素1.事件状态 2.事件类型 3.znode的path
public interface ClientWatchManager {
/**
* Return a set of watchers that should
【Scala十五】Scala核心九:隐式转换之二
bit1129
scala
隐式转换存在的必要性,
在Java Swing中,按钮点击事件的处理,转换为Scala的的写法如下:
val button = new JButton
button.addActionListener(
new ActionListener {
def actionPerformed(event: ActionEvent) {
Android JSON数据的解析与封装小Demo
ronin47
转自:http://www.open-open.com/lib/view/open1420529336406.html
package com.example.jsondemo;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
impor
[设计]字体创意设计方法谈
brotherlamp
UI ui自学 ui视频 ui教程 ui资料
从古至今,文字在我们的生活中是必不可少的事物,我们不能想象没有文字的世界将会是怎样。在平面设计中,UI设计师在文字上所花的心思和功夫最多,因为文字能直观地表达UI设计师所的意念。在文字上的创造设计,直接反映出平面作品的主题。
如设计一幅戴尔笔记本电脑的广告海报,假设海报上没有出现“戴尔”两个文字,即使放上所有戴尔笔记本电脑的图片都不能让人们得知这些电脑是什么品牌。只要写上“戴尔笔
单调队列-用一个长度为k的窗在整数数列上移动,求窗里面所包含的数的最大值
bylijinnan
java 算法 面试题
import java.util.LinkedList;
/*
单调队列 滑动窗口
单调队列是这样的一个队列:队列里面的元素是有序的,是递增或者递减
题目:给定一个长度为N的整数数列a(i),i=0,1,...,N-1和窗长度k.
要求:f(i) = max{a(i-k+1),a(i-k+2),..., a(i)},i = 0,1,...,N-1
问题的另一种描述就
struts2处理一个form多个submit
chiangfai
struts2
web应用中,为完成不同工作,一个jsp的form标签可能有多个submit。如下代码:
<s:form action="submit" method="post" namespace="/my">
<s:textfield name="msg" label="叙述:">
shell查找上个月,陷阱及野路子
chenchao051
shell
date -d "-1 month" +%F
以上这段代码,假如在2012/10/31执行,结果并不会出现你预计的9月份,而是会出现八月份,原因是10月份有31天,9月份30天,所以-1 month在10月份看来要减去31天,所以直接到了8月31日这天,这不靠谱。
野路子解决:假设当天日期大于15号
mysql导出数据中文乱码问题
daizj
mysql 中文乱码 导数据
解决mysql导入导出数据乱码问题方法:
1、进入mysql,通过如下命令查看数据库编码方式:
mysql> show variables like 'character_set_%';
+--------------------------+----------------------------------------+
| Variable_name&nbs
SAE部署Smarty出现:Uncaught exception 'SmartyException' with message 'unable to write
dcj3sjt126com
PHP smarty sae
对于SAE出现的问题:Uncaught exception 'SmartyException' with message 'unable to write file...。
官方给出了详细的FAQ:http://sae.sina.com.cn/?m=faqs&catId=11#show_213
解决方案为:
01
$path
《教父》系列台词
dcj3sjt126com
Your love is also your weak point.
你的所爱同时也是你的弱点。
If anything in this life is certain, if history has taught us anything, it is
that you can kill anyone.
不顾家的人永远不可能成为一个真正的男人。 &
mongodb安装与使用
dyy_gusi
mongo
一.MongoDB安装和启动,widndows和linux基本相同
1.下载数据库,
linux:mongodb-linux-x86_64-ubuntu1404-3.0.3.tgz
2.解压文件,并且放置到合适的位置
tar -vxf mongodb-linux-x86_64-ubun
Git排除目录
geeksun
git
在Git的版本控制中,可能有些文件是不需要加入控制的,那我们在提交代码时就需要忽略这些文件,下面讲讲应该怎么给Git配置一些忽略规则。
有三种方法可以忽略掉这些文件,这三种方法都能达到目的,只不过适用情景不一样。
1. 针对单一工程排除文件
这种方式会让这个工程的所有修改者在克隆代码的同时,也能克隆到过滤规则,而不用自己再写一份,这就能保证所有修改者应用的都是同一
Ubuntu 创建开机自启动脚本的方法
hongtoushizi
ubuntu
转载自: http://rongjih.blog.163.com/blog/static/33574461201111504843245/
Ubuntu 创建开机自启动脚本的步骤如下:
1) 将你的启动脚本复制到 /etc/init.d目录下 以下假设你的脚本文件名为 test。
2) 设置脚本文件的权限 $ sudo chmod 755
第八章 流量复制/AB测试/协程
jinnianshilongnian
nginx lua coroutine
流量复制
在实际开发中经常涉及到项目的升级,而该升级不能简单的上线就完事了,需要验证该升级是否兼容老的上线,因此可能需要并行运行两个项目一段时间进行数据比对和校验,待没问题后再进行上线。这其实就需要进行流量复制,把流量复制到其他服务器上,一种方式是使用如tcpcopy引流;另外我们还可以使用nginx的HttpLuaModule模块中的ngx.location.capture_multi进行并发
电商系统商品表设计
lkl
DROP TABLE IF EXISTS `category`; -- 类目表
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `category` (
`id` int(11) NOT NUL
修改phpMyAdmin导入SQL文件的大小限制
pda158
sql mysql
用phpMyAdmin导入mysql数据库时,我的10M的
数据库不能导入,提示mysql数据库最大只能导入2M。
phpMyAdmin数据库导入出错: You probably tried to upload too large file. Please refer to documentation for ways to workaround this limit.
Tomcat性能调优方案
Sobfist
apache jvm tomcat 应用服务器
一、操作系统调优
对于操作系统优化来说,是尽可能的增大可使用的内存容量、提高CPU的频率,保证文件系统的读写速率等。经过压力测试验证,在并发连接很多的情况下,CPU的处理能力越强,系统运行速度越快。。
【适用场景】 任何项目。
二、Java虚拟机调优
应该选择SUN的JVM,在满足项目需要的前提下,尽量选用版本较高的JVM,一般来说高版本产品在速度和效率上比低版本会有改进。
J
SQLServer学习笔记
vipbooks
数据结构 xml
1、create database school 创建数据库school
2、drop database school 删除数据库school
3、use school 连接到school数据库,使其成为当前数据库
4、create table class(classID int primary key identity not null)
创建一个名为class的表,其有一