Web 标准概览
一. 关键字:W3C ,Web 标准
二. 概述: 本文概要地介绍了Web 标准的网页需要注意的地方
三. 详细内容:
1
DOCTYPE 是 document type( 文档类型 ) 的简写,用来说明你用的 XHTML 或者 HTML 是什么版本。
其中的 DTD( 例如上例中的 xhtml1-transitional.dtd) 叫文档类型定义,里面包含了文档的规则,浏览器就根据你定义的 DTD 来解释你页面的标识,并展现出来。
要建立符合标准的网页, DOCTYPE 声明是必不可少的关键组成部分;除非你的 XHTML 确定了一个正确的 DOCTYPE ,否则你的标识和 CSS 都不会生效。
XHTML 1.0 提供了三种 DTD 声明可供选择:
1.1 过渡的 (Transitional): 要求非常宽松的 DTD ,它允许你继续使用 HTML4.01 的标识 ( 但是要符合 xhtml 的写法 ) 。完整代码如下:
1.2 严格的 (Strict): 要求严格的 DTD ,你不能使用任何表现层的标识和属性,例如 。完整代码如下:
1.3 框架的 (Frameset): 专门针对框架页面设计使用的 DTD ,如果你的页面中包含有框架,需要采用这种 DTD 。完整代码如下:
理想情况当然是严格的 DTD ,但对于我们大多数刚接触 web 标准的设计师来说,过渡的 DTD(XHTML 1.0 Transitional) 是目前理想选择 ( 包括本站,使用的也是过渡型 DTD) 。因为这种 DTD 还允许我们使用表现层的标识、元素和属性,也比较容易通 过 W3C 的代码校验。
注:上面说的 " 表现层的标识、属性 " 是指那些纯粹用来控制表现的 tag ,例如用于排版的表格、背景颜色标识等。在 XHTML 中标识是用来表示结构的,而不是用来实现表现形式,我们过渡的目的是最终实现数据和表现相分离。
DOCTYPE 声明必须放在每一个 XHTML 文档最顶部,在所有代码和标识之上。
2 DOCTYPE 声明好以后,接下来的代码是:
通常我们 HTML4.0 的代码只是 ,这里的 "xmlns" 是什么呢?这个 "xmlns" 是 XHTML namespace 的缩写,叫做 " 名字空间 " 声明。
由于 xml 允许你自己定义自己的标识,你定义的标识和其他人定义的标识有可能相同,但表示不同的意义。当文件交换或者共享的时候就容易产生错误。为了避免这种错误发生, XML 采用名字空间声明,允许你通过一个网址指向来识别你的标识。
XHTML 是 HTML 向 XML 过渡的标识语言,它需要符合 XML 文档规则,因此也需要定义名字空间。又因为 XHTML1.0 不能自定义标识,所以它 的名字空间都相同,就是 "http://www.w3.org/1999/xhtml" 。如果你还不太理解也不要紧,目前阶段我们只要照抄代码就可以了。后面的 lang="gb2312", 指定你的文档用简体中文。
3 定义你的语言编码
为了被浏览器正确解释和通过 W3C 代码校验,所有的 XHTML 文档都必须声明它们所使用的编码语言,我们一般使用 gb2312( 简体中文 ) ,制作多国语言页面也有可能用 Unicode 、 ISO-8859-1 等,根据你的需要定义。
通常这样定义就可以了。但是要补充说明的是, XML 文档并不是这样定义语言编码的, XML 的定义方式如下:
4 用 web 标准设计网站,过渡的方法主要是采用 XHTML+CSS , css 样式表是必不可少的。
4.1 外部调用样式表
在以前,我们通常采用 2 种方法使用样式表:
4.1.1 页面内嵌法:就是将样式表直接写在页面代码的 head 区。类似这样:
4.1.2 外部调用法:将样式表写在一个独立的 .css 文件中,然后在页面 head 区用类似以下代码调用。
在符合 web 标准的设计中,我们使用外部调用法,好处不言而喻,你可以不修改页面只修改 .css 文件而改变页面的样式。如果所有页面都调用同一个样式表文件,那么改一个样式表文件,可以改变所有文件的样式。
4.2 双表法调用样式表
查看某些符合标准站点的原代码,你可能看到,在调用样式表的地方有如下 2 句:
为什么要写两次呢?
实际上一般情况下用外联法调用 ( 就是第一句 ) 就足够了。我这里使用双表调用只是一种示例。其中的 "@import" 命令用于输入样式表。而 "@import" 命令在 netscape 4.0 版本浏览器是无效的。也就是说,当你希望某些效果在 netscape 4.0 浏览器中隐藏,在 4.0 以上或其它浏览器中又显示的时候,你可以采用 "@import" 命令方法调用样式表 .
5 收藏夹小图标
5.1 将下面的代码嵌入 head 区:
5.2 为搜索引擎准备的内容
代码如下,替换成你自己站点的内容就可以:
5.2.1 允许搜索机器人搜索站内所有链接。如果你想某些页面不被搜索,推荐采用 robots.txt 方法
5.2.2 设置站点作者信息
5.2.3 设置站点版权信息
版权所有" />
5.2.4 站点的简要介绍 ( 推荐 )
专业从事企业信息化管理的研究、咨询与系统开发的国家高新技术软件企业" />
5.2.5 站点的关键词 ( 推荐 )
6 XHTML 代码规范
6.1 所有的标记都必须要有一个相应的结束标记
以前在 HTML 中,你可以打开许多标签,例如
和 而不一定写对应的
和 < /li> 来关闭它们。但在 XHTML 中这是不合法的。 XHTML 要求有严谨的结构,所有标签必须关闭。如果是单独不成对的标签,在标签最后加一个 "/" 来关闭它。例如 :
网页设计师" src="../images/logo_w3cn_200x80.gif" width="200" />
6.2 所有标签的元素和属性的名字都必须使用小写
与 HTML 不一样, XHTML 对大小写是敏感的, 和 是不同的标签。 XHTML 要求所有的标签 和属性的名字都必须使用小写。例如: 必须写成 。大小写夹杂也是不被认可的,通常 dreamweaver 自动生成的属性名字 "onMouseOver" 也必须修改成 "onmouseover" 。
6.3 所有的 XML 标记都必须合理嵌套
同样因为 XHTML 要求有严谨的结构,因此所有的嵌套都必须按顺序,以前我们这样写的代码:
/b>
必须修改为:
/p>
就是说,一层一层的嵌套必须是严格对称。
相同的, 如果标签是空标签, 如 , 等, 也要关闭它们, 如
" zeldman.gif " />
注意, 不要拉掉在br, 或img 结尾的/> 标记, 同时在/> 之前要有空格分开。
6.4 所有的属性必须用引号 "" 括起来
在 HTML 中,你可以不需要给属性值加引号,但是在 XHTML 中,它们必须被加引号。例如 :
必须修改为:
特殊情况,你需要在属性值里使用双引号,你可以用 " ,单引号可以使用 ' ,例如:
6.5 把所有 < 和 & 特殊符号用编码表示
任何小于号( < ),不是标签的一部分,都必须被编码为 <
任何大于号( > ),不是标签的一部分,都必须被编码为 >
任何与号( & ),不是实体的一部分的,都必须被编码为 &
6.6 给所有属性赋一个值
XHTML 规定所有属性都必须有一个值,没有值的就重复本身。例如:
必须修改为:
checked="checked">
6.7 不要在注释内容中使 “--”
“--” 只能发生在 XHTML 注释的开头和结束,也就是说,在内容中它们不再有效。例如下面的代码是无效的 :
用等号或者空格替换内部的虚线。
7 CSS 布局入门
CSS 布局与传统表格 (table) 布局最大的区别在于:原来的定位都是采用表格,通过表格的间距或者用无色透明的 GIF 图片来控制文布局版块的间距;而现在则采用层 (div) 来定位,通过层的 margin,padding,border 等属性来控制版块的间距。
分析一个典型的定义 div 例子:
#sample{ MARGIN: 10px 10px 10px 10px;
PADDING:20px 10px 10px 20px;
BORDER-TOP: #CCC 2px solid;
BORDER-RIGHT: #CCC 2px solid;
BORDER-BOTTOM: #CCC 2px solid;
BORDER-LEFT: #CCC 2px solid;
BACKGROUND: url(images/bg_poem.jpg) #FEFEFE no-repeat right bottom;
COLOR: #666;
TEXT-ALIGN: center;
LINE-HEIGHT: 150%; WIDTH:60%; }
说明如下:
层的名称为 sample ,在页面中用 就可以调用这个样式。
MARGIN 是指层的边框以外留的空白,用于页边距或者与其它层制造一个间距。 "10px 10px 10px 10px" 分别代表 " 上右下左 "( 顺时针方向 ) 四个边距,如果都一样,可以缩写成 "MARGIN: 10px;" 。如果边距为零,要写成 "MARGIN: 0px;" 。注意:当值是零时,除了 RGB 颜色值 0% 必须跟百分号,其他情况后面可以不跟单位 "px" 。 MARGIN 是透明元素,不能定义颜色。
PADDING 是指层的边框到层的内容之间的空白。和 margin 一样,分别指定上右下左边框到内容的距离。如果都一样,可以缩写成 "PADDING:0px" 。单独指定左边可以写成 "PADDING-LEFT: 0px;" 。 PADDING 是透明元素,不能定义颜色。
BORDER 是指层的边框, "BORDER-RIGHT: #CCC 2px solid;" 是定义层的右边框颜色为 "#CCC" ,宽度为 "2px" ,样式为 "solid" 直线。如果要虚线样式可以用 "dotted" 。
BACKGROUND 是定义层的背景。分 2 级定义,先定义图片背景,采用 "url(../images/bg_logo.gif)" 来指定背景图片路径;其次定义背景色 "#FEFEFE" 。 "no-repeat" 指背景图片不需要重复,如果需要横向重复用 "repeat-x", 纵向重复用 "repeat-y", 重复铺满整个背景用 "repeat" 。后面的 "right bottom;" 是指背景图片从右下角开始。如果没有背景图片可以只定义背景色 BACKGROUND: #FEFEFE
COLOR 用于定义字体颜色,上一节已经介绍过。
TEXT-ALIGN 用来定义层中的内容排列方式, center 居中 ,left 居左 ,right 居右。
LINE-HEIGHT 定义行高, 150% 是指高度为标准高度的 150% ,也可以写作: LINE-HEIGHT:1.5 或者 LINE-HEIGHT:1.5em ,都是一样的意思。
WIDTH 是定义层的宽度,可以采用固定值,例如 500px ,也可以采用百分比,象这里的 "60%" 。要注意的是 : 这个宽度仅仅指你内容的宽度,不包含 margin,border 和 padding 。但在有些浏览器中不是这么定义的,需要你多试试。
再来看看CSS2 的盒模型Box Model
通过以上内容的了解,我们可以将Content 内容部分显示在我们想要显示的容器内的位置。
同时,我们可以看到,IE 与其他浏览器在解释width 的时候是不同的,因此会造成排版上的偏差。这里我们需要使用一些小技巧来处理。看以下CSS 代码:
div.sample{
border:20px solid #60A179;
padding:30px;
background: #ffc;
width :400px;
voice-family : "/"}/"";
voice-family :inherit;
width : 300px;
}
html>body .content { width :300; }
注意上面加粗的两句,IE 是不能识别的,因此会跳过其下声明,认为IE 中的width 为400px 。而其他符合标准的浏览器会继续阅读,认为width 为300px 。因此对比上图可以得出
CSS’Width’ + 2*border + 2*padding = IE’Width’ ,两者表示的意思是一致的。
8 使用 显示列表或菜单
默认情况下, 的每一项都会显示一个难看的小圆点,其实通过样式是可以去掉的。将属性LIST-STYLE-TYPE 的值置为none ,小圆点就会消失。另外,设置li 的背景图片,并将背景图片显示在指定位置就可以达到使用图片替换小圆点的目的。将属性Display 为inline ,可以将列表横向显示。
你可能感兴趣的:(C#)
C#区块链共识的3大必杀技:PoW、PoS、DPoS谁才是代码界的“链主”?
墨瑾轩
一起学学C#【二】 c# 区块链 开发语言
关注墨瑾轩,带你探索编程的奥秘!超萌技术攻略,轻松晋级编程高手技术宝库已备好,就等你来挖掘订阅墨瑾轩,智趣学习不孤单即刻启航,编程之旅更有趣**3大必杀技,让你的代码成为“链主”**必杀技1:工作量证明(PoW)——“算力擂台赛”问题:为什么比特币的“矿工”要疯狂算哈希?答案:因为他们在参与“算力擂台赛”!PoW核心逻辑:
C#.NET in、out、ref详解
c#.net
简介在C#中,in、ref和out是用于修改方法参数传递方式的关键字,它们决定了参数是按值传递还是按引用传递,以及参数是否必须在传递前初始化。基本语义对比修饰符传递方式可读写性必须初始化调用前必须赋值典型场景ref引用传递可读可写需先在调用前初始化是修改调用者变量;传大对象避免拷贝in只读引用传递只读(不能赋值)需先在调用前初始化是传递大值类型以避免拷贝out引用传递必须在方法体内赋值调用前可未初
在C#中 属性(Properties)get 和 set
周杰伦fans
ai学习参考 学习C#的笔记 c# 服务器
在C#中,属性(Properties)是一种特殊的方法,用于封装类、结构或接口中的字段。属性允许你控制对字段的访问,并可以在设置或获取值时执行额外的逻辑。属性通常由两个访问器组成:get和set。基本属性定义publicclassPerson{privatestringname;publicstringName{get{returnname;}set{name=value;}}}在这个例子中,Na
推荐开源项目:RoslynPad——跨平台的C编辑器
谢忻含Norma
推荐开源项目:RoslynPad——跨平台的C#编辑器项目地址:https://gitcode.com/gh_mirrors/ro/roslynpad项目介绍RoslynPad是一个基于微软的Roslyn编译器和AvalonEdit库的跨平台C#代码编辑器。它提供了实时语法高亮、代码补全、错误诊断以及代码修复等一系列强大的编程辅助功能,使编码工作变得更加高效。项目技术分析RoslynPad的核心是
基于C#开发的,支持多平台二维图表开源编辑器
编程乐趣
c# 编辑器 开发语言
推荐一个基于C#开发的,支持多平台的二维图表开源编辑器。01项目简介Core2D是一个支持跨平台、多平台的应用程序,内置wyswig矢量图形编辑器,可用于数据驱动生成二维图。**1、wyswig矢量图形编辑器:**内置了一个强大的图形编辑器,它允许用户将数据绑定到形状,这使得图表制作变得非常灵活和易于操作。**2、跨文档数据共享:**支持在多个文档之间共享数据,这使得用户可以轻松地在不同的图表之间
使用.NET将PDF转换为Excel
CodeBandit
.net pdf excel .NET
在.NET开发中,我们经常需要处理不同格式的文件。有时候,我们可能需要将PDF文件转换为Excel文件,以便对数据进行进一步的分析和处理。在本文中,我将向您展示如何使用C#和一些开源库来实现这个目标。步骤1:准备工作在开始之前,我们需要准备一些工具和库:VisualStudio(或其他任何C#开发环境):用于编写和运行C#代码。iTextSharp库:一个开源的.NET库,用于处理PDF文件。您可
c# 利用 GZipStream 压缩解压缩文件(所有类型的文档)
山海上的风
c#
c#利用GZipStream压缩解压缩文件(所有类型的文档)usingSystem;usingSystem.Collections.Generic;usingSystem.IO;usingSystem.IO.Compression;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespaceGZipStream_压缩
C# 索引器(Indexer)
C#索引器(Indexer)引言在C#编程语言中,索引器(Indexer)是一种特殊类型的属性,它允许我们通过索引来访问和设置对象的成员。索引器是动态数组和集合的基石,同时也可以用于创建自定义的数据结构,如字典等。本文将深入探讨C#索引器的概念、实现方式以及在实际开发中的应用。索引器的基本概念索引器是一种属性,它允许通过索引来访问和设置对象的成员。与普通的属性相比,索引器可以接受一个或多个参数,从
HTTP服务器监控
weixin_34321753
php awk
HTTP服务器监控#!/bin/shLANG=C#被监控服务器、端口列表server_all_list=(\192.168.1.1:80\192.168.1.2:80\192.168.1.3:80\)date=$(date-d"today"+"%Y-%m-%d_%H:%M:%S")#采用HTTPPOST方式发送检测信息给接口程序interface.php,接口程序负责分析信息,决定是否发送报警MS
【5步通关!】C#企业级知识库实战——从0到1打造智能知识共享平台的魔法指南!
墨瑾轩
一起学学C#【三】 c# 开发语言
关注墨瑾轩,带你探索编程的奥秘!超萌技术攻略,轻松晋级编程高手技术宝库已备好,就等你来挖掘订阅墨瑾轩,智趣学习不孤单即刻启航,编程之旅更有趣你的团队还在用“纸质文件+Excel”管理知识?或者想让员工像“知识魔法师”一样秒速找到所需信息?今天,我们将用5个“魔法步骤”,手把手教你用C#打造企业级知识共享平台!无论你是“技术小白”还是“架构老司机”,这篇文章都将为你揭秘如何让知识库像“超级搜索引擎”
c# 核心技术指南——第2章 c# 语言基础
伦比兔
C# 核心技术指南 c# 开发语言
本书中几乎所有的程序和代码片段都可以作为交互式示例在LINQPad中运行。阅读本书时使用这些示例可以加快你的学习进度。在LINQPad中编辑执行这些示例可以立即得到结果,无须在VisualStudio中建立项目和解决方案。2.1第一个C#程序在C#中,语句按顺序执行,每个语句都以分号结尾。类将函数成员和数据成员聚合在一起形成面向对象的构建单元。Console类将处理命令行的输入输出功能聚合在一起,
C#使用ExcelDataReader高效读取excel文件写入数据库
香煎三文鱼
.net core .Net6 C# C#读取excel
分享一个库ExcelDataReader,它专注读取、支持.xls/.xlsx、内存优化。首先安装NuGet包dotnetaddpackageExcelDataReaderdotnetaddpackageSystem.Text.Encoding.CodePages编码内存优化:每次仅读取一行,适合处理百万级数据。类型安全方法:可用GetString(0)、GetDouble(1)等强类型方法(需确
【C#程序设计】教学讲义——第二章:简单C#程序设计
刘一哥GIS
《GIS程序设计》 C# 程序设计 谭浩强 面向对象 类
教学目录2.1面向对象的概念2.2建立简单的应用程序2.3窗体和Label控件2.4文本框-属性2.5按钮控件本章小结2.1面向对象的概念2.1.1对象和类1.对象对象是客观世界中对象的模型化。对象是有着特殊数据(属性)与操作(行为)的实体,对象的操作(行为)称为方法。程序中的对象是模型化了的客观世界的对象,它是代码和数据的封装体,用数据表示属性,用代码(过程或函数)表示方法。一个程序对象的属性用
C#哈希加密:原理、实现与应用
阿蒙Armon
C#工作中的应用 c# 哈希算法 开发语言
C#哈希加密:原理、实现与应用在当今数字化时代,数据安全是每个应用程序都必须重视的问题。哈希加密作为一种重要的加密技术,在密码存储、数据完整性验证、数字签名等领域发挥着关键作用。本文将深入探讨C#中哈希加密的原理、常用算法以及实际应用,并通过代码示例展示如何在C#中实现哈希加密。一、哈希加密基础哈希加密(也称为哈希函数或散列函数)是一种将任意长度的输入数据转换为固定长度输出的算法。这个固定长度的输
C++ 快速回顾(四)
帅_shuai_
C++ c++
C++快速回顾(四)前言一、纯虚函数二、final关键字1.作用到函数2.作用到类三、虚函数原理四、Lambda一些知识补充前言用于快速回顾之前遗漏或者补充C++知识一、纯虚函数纯虚函数主要是当接口,没有具体的实现要到派生类去实现。纯虚函数不能直接实例化,类似c#中的抽象函数classMyClassBase{public:virtualvoidInit()=0;virtualvoidDestroy
C#串口通信的5大绝招:从菜鸟到大神的通关秘籍!
墨瑾轩
一起学学C#【十】 c# 网络 开发语言
关注墨瑾轩,带你探索编程的奥秘!超萌技术攻略,轻松晋级编程高手技术宝库已备好,就等你来挖掘订阅墨瑾轩,智趣学习不孤单即刻启航,编程之旅更有趣你的串口是“快递员”还是“快递刺客”?嘿,C#开发者!今天咱们要破解一个超硬核的谜题——“如何让串口通信像‘超级快递员’一样精准无误,让乱码像‘纸片人’一样秒躺”!有没有遇到过这样的“惊魂现场”:发送数据像“发往火星”一样石沉大海?接收数据像“天书”一样全是乱
C# 与串口通信:解决常见问题的调试技巧与实用建议
威哥说编程
c# 单片机 stm32
串口通信作为一种经典的通信方式,在很多领域中仍然广泛应用,尤其是在嵌入式系统、工业自动化、测控系统等场景中。通过串口接口,可以实现设备间的短距离、低速数据传输。C#提供了强大的System.IO.Ports.SerialPort类来支持串口通信的开发,但在实际开发中,开发者常常遇到一些问题,比如数据丢失、串口冲突、波特率不匹配等。本文将深入探讨如何使用C#进行串口通信,结合调试技巧和实用建议,帮助
Unity脚本--01-脚本书写规则-脚本生命周期-脚本调试-常用API
秦果
开发语言
一、脚本书写规则脚本:.cs的文本文件类文件作用:附加到游戏物体中,定义游戏对象行为指令的代码与C#类的区别:脚本只有字段和方法,没有自动属性和构造函数publicintA{get{returna;}set{a=value;}}属性定义了在unity中不会显示publicLifecycle(){Debug.Log("构造函数")//b=Time.time;}不要在脚本中写构造函数,因为不能在子线程
.NET C# async/定时任务的异步线程池调度方案最大线程数 = 处理器核心数 × 250
专注VB编程开发20年
.net c# 开发语言
关于.NET中Threading.Timer的线程机制,结合线程池特性和异步协作原理分析如下:一、线程复用机制共享进程级线程池Threading.Timer的回调任务不会每次新建线程,而是提交到.NET进程全局线程池统一调度,该线程池与async/await任务共享同一资源池。线程池维护可复用工作线程队列,避免频繁创建/销毁开销任务优先由空闲线程执行,无空闲线程则进入全局队列等待线程池扩
VB.NET,C#字典对象来保存用户数据,支持大小写
专注VB编程开发20年
java 开发语言
用这个保存的,登录时大小写不一样会不会无法识别根据你提供的SaveUsersToJson方法,我注意到你使用了JSON序列化来保存用户数据,但没有显式指定字典的比较器。这意味着在反序列化时,默认会使用区分大小写的比较器,导致大小写不同的用户名无法正确匹配。问题分析当你保存用户数据时:PrivateSubSaveUsersToJson(usersAsDictionary(OfString,UserI
首次拿到无线USB转换器TOS-WLink使用介绍
TOS-WLink的开发到今持续了大半年、先不知羞耻的夸夸自己的毅力;这里主要介绍一些无线助手的使用,可能也能体现一点点我的设计思想;感谢对我帮助极大这些开源库的大佬们;感谢CSDN一些我记不住名字的作者写的文章、对USB标准的理解、C#的一些实例;无线USB助手参考:Win蓝牙GitHub-miuser00/BLEComm:BLECommbasedonnewAPIofWindows10OS.Th
C# 中 EventWaitHandle 实现多进程状态同步的深度解析
Leon@Lee
c# 开发语言
在现代软件开发中,多进程应用场景日益普遍。无论是分布式系统、微服务架构,还是传统的客户端-服务器模型,进程间的状态同步都是一个关键挑战。C#提供了多种同步原语,其中EventWaitHandle是一个强大的工具,特别适合处理跨进程的同步需求。本文将深入探讨EventWaitHandle的工作原理、使用场景及最佳实践。一、EventWaitHandle基础原理EventWaitHandle是.NET
C#(或vb.net)程序改进
cs_victor
C# vb.net c# exception string vbscript .net
C#(或vb.net)程序改进在网上看些提升程序性能的帖子摘到的内容,虽然有点旧,大多还是很好的。转载保留下来方便忘记的时候查看。========================================================1、使用值类型的ToString方法在连接字符串时,经常使用"+"号直接将数字添加到字符串中。这种方法虽然简单,也可以得到正确结果,但是由于涉及到不同的数据类
C# 与vb.net 的Dictionary(字典)的键、值排序
chinaherolts2008
c# 开发语言 vb.net教程
vb.net教程https://www.xin3721.com/eschool/vbnetxin3721/原文地址VB和VB.NET的大致区别_copico的博客-CSDN博客_vbnet和vb的语法区别VisualBasic.NET是MicrosoftVisualStudio.NET套件中主要组成部分之一。.NET版本的VisualBasic增加了更多特性,而且演化为完全面向对象(就像C++)的
C# WPF自定义窗口
XMJ2002
wpf
C#WPF自定义窗口书接上文,我们已经实现了如何利用百度智能云实现文字OCR功能,WPF制作文字OCR软件(一):本地图片OCR识别,最后整体的效果是要呈现在一个窗口上的,而WPF的默认窗口并不能符合我们的需求,能够自己定义的内容少,所以这篇文章将介绍如何自定义窗口。整体实现效果如下:一、自定义标题栏首先需要在窗口定义的时候加上WindowStyle="None"AllowsTransparenc
【C#】实现C#传回调函数到C++,由C++计算结果回调返回
加号3
c# c++
1.C++代码实现.h代码extern"C"typedefint(*Callback)(int);extern"C"__declspec(dllexport)voidRegisterCallback(Callbackcb,intx,inty);.cpp代码#include"CallBack.h"voidRegisterCallback(Callbackcb,intx,inty){intresult
Python/Java/Php/C#/Go/C/C++这几个主力语言,谁到底真的不行
dotNET跨平台
java c# 开发语言
1.前言阿里最近又进行了史诗级的大裁员,IT行业肉眼可见的持续性衰退与没落。当潮水退却,才能看出谁在裸泳。作为当今计算机编程界的几大主力语言,谁才真正的裸泳者呢?2.描述1.Python:Python作为一款解释性的动态语言,它很早就诞生了。它的第一个发行版1991年出世,比Java还要早四年。可惜命运不济,一直没有大的作为。到了2014年人工智能的风口悄然兴起,Python一路高歌猛进。到了20
go vs C#/c/c++
fyifei0558
java 开发语言
1.main函数定义Go:funcmain(),不能带参数,也不能有返回值。C/C++:intmain(intargc,char*argv[]),参数可以直接获取命令行参数。C#:staticvoidMain(string[]args),参数直接是命令行参数数组。2.包和导入(import/using/include)Go:用package声明包名,import导入包。没有头文件,所有导出符号靠首
C#实践小游戏--俄罗斯方块
DamnF--
c# 开发语言 游戏程序
整体游戏架构游戏主循环(Game)├─场景系统│├─开始场景(BeginScene)│├─游戏场景(GameScene)│└─结束场景(EndScene)│├─方块系统│├─方块控制器(BlockWorker)│├─方块形态数据(BlockInfo)│└─绘制单元(DrawObject)│├─地图系统(Map)├─输入系统(InputCheak)├─坐标系统(Position)└─接口规范(IDr
C#推箱子游戏源代码解析与实践指南
Boa波雅
本文还有配套的精品资源,点击获取简介:C#推箱子游戏是一个经典的益智游戏,适合编程初学者学习C#语言和游戏开发的基础知识。本篇文章将深入探讨使用C#语言开发推箱子游戏的源代码,涉及面向对象编程、图形用户界面(GUI)、事件驱动编程、数据结构与算法、状态管理、错误检查与边界条件、游戏逻辑以及调试技巧。通过学习本课程,初学者将能够掌握C#编程的基础和游戏逻辑的实现,并能够创建用户友好的界面。1.面向对
java观察者模式
3213213333332132
java 设计模式 游戏 观察者模式
观察者模式——顾名思义,就是一个对象观察另一个对象,当被观察的对象发生变化时,观察者也会跟着变化。
在日常中,我们配java环境变量时,设置一个JAVAHOME变量,这就是被观察者,使用了JAVAHOME变量的对象都是观察者,一旦JAVAHOME的路径改动,其他的也会跟着改动。
这样的例子很多,我想用小时候玩的老鹰捉小鸡游戏来简单的描绘观察者模式。
老鹰会变成观察者,母鸡和小鸡是
TFS RESTful API 模拟上传测试
ronin47
TFS RESTful API 模拟上传测试。
细节参看这里:https://github.com/alibaba/nginx-tfs/blob/master/TFS_RESTful_API.markdown
模拟POST上传一个图片:
curl --data-binary @/opt/tfs.png http
PHP常用设计模式单例, 工厂, 观察者, 责任链, 装饰, 策略,适配,桥接模式
dcj3sjt126com
设计模式 PHP
// 多态, 在JAVA中是这样用的, 其实在PHP当中可以自然消除, 因为参数是动态的, 你传什么过来都可以, 不限制类型, 直接调用类的方法
abstract class Tiger {
public abstract function climb();
}
class XTiger extends Tiger {
public function climb()
hibernate
171815164
Hibernate
main,save
Configuration conf =new Configuration().configure();
SessionFactory sf=conf.buildSessionFactory();
Session sess=sf.openSession();
Transaction tx=sess.beginTransaction();
News a=new
Ant实例分析
g21121
ant
下面是一个Ant构建文件的实例,通过这个实例我们可以很清楚的理顺构建一个项目的顺序及依赖关系,从而编写出更加合理的构建文件。
下面是build.xml的代码:
<?xml version="1
[简单]工作记录_接口返回405原因
53873039oycg
工作
最近调接口时候一直报错,错误信息是:
responseCode:405
responseMsg:Method Not Allowed
接口请求方式Post.
关于java.lang.ClassNotFoundException 和 java.lang.NoClassDefFoundError 的区别
程序员是怎么炼成的
真正完成类的加载工作是通过调用 defineClass来实现的;
而启动类的加载过程是通过调用 loadClass来实现的;
就是类加载器分为加载和定义
protected Class<?> findClass(String name) throws ClassNotFoundExcept
JDBC学习笔记-JDBC详细的操作流程
aijuans
jdbc
所有的JDBC应用程序都具有下面的基本流程: 1、加载数据库驱动并建立到数据库的连接。 2、执行SQL语句。 3、处理结果。 4、从数据库断开连接释放资源。
下面我们就来仔细看一看每一个步骤:
其实按照上面所说每个阶段都可得单独拿出来写成一个独立的类方法文件。共别的应用来调用。
1、加载数据库驱动并建立到数据库的连接:
Html代码
St
rome创建rss
antonyup_2006
tomcat cms xml struts Opera
引用
1.RSS标准
RSS标准比较混乱,主要有以下3个系列
RSS 0.9x / 2.0 : RSS技术诞生于1999年的网景公司(Netscape),其发布了一个0.9版本的规范。2001年,RSS技术标准的发展工作被Userland Software公司的戴夫 温那(Dave Winer)所接手。陆续发布了0.9x的系列版本。当W3C小组发布RSS 1.0后,Dave W
html表格和表单基础
百合不是茶
html 表格 表单 meta 锚点
第一次用html来写东西,感觉压力山大,每次看见别人发的都是比较牛逼的 再看看自己什么都还不会,
html是一种标记语言,其实很简单都是固定的格式
_----------------------------------------表格和表单
表格是html的重要组成部分,表格用在body里面的
主要用法如下;
<table>
&
ibatis如何传入完整的sql语句
bijian1013
java sql ibatis
ibatis如何传入完整的sql语句?进一步说,String str ="select * from test_table",我想把str传入ibatis中执行,是传递整条sql语句。
解决办法:
<
精通Oracle10编程SQL(14)开发动态SQL
bijian1013
oracle 数据库 plsql
/*
*开发动态SQL
*/
--使用EXECUTE IMMEDIATE处理DDL操作
CREATE OR REPLACE PROCEDURE drop_table(table_name varchar2)
is
sql_statement varchar2(100);
begin
sql_statement:='DROP TABLE '||table_name;
【Linux命令】Linux工作中常用命令
bit1129
linux命令
不断的总结工作中常用的Linux命令
1.查看端口被哪个进程占用
通过这个命令可以得到占用8085端口的进程号,然后通过ps -ef|grep 进程号得到进程的详细信息
netstat -anp | grep 8085
察看进程ID对应的进程占用的端口号
netstat -anp | grep 进程ID
&
优秀网站和文档收集
白糖_
网站
集成 Flex, Spring, Hibernate 构建应用程序
性能测试工具-JMeter
Hmtl5-IOCN网站
Oracle精简版教程网站
鸟哥的linux私房菜
Jetty中文文档
50个jquery必备代码片段
swfobject.js检测flash版本号工具
angular.extend
boyitech
AngularJS angular.extend AngularJS API
angular.extend 复制src对象中的属性去dst对象中. 支持多个src对象. 如果你不想改变一个对象,你可以把dst设为空对象{}: var object = angular.extend({}, object1, object2). 注意: angular.extend不支持递归复制. 使用方法: angular.extend(dst, src); 参数:
java-谷歌面试题-设计方便提取中数的数据结构
bylijinnan
java
网上找了一下这道题的解答,但都是提供思路,没有提供具体实现。其中使用大小堆这个思路看似简单,但实现起来要考虑很多。
以下分别用排序数组和大小堆来实现。
使用大小堆:
import java.util.Arrays;
public class MedianInHeap {
/**
* 题目:设计方便提取中数的数据结构
* 设计一个数据结构,其中包含两个函数,1.插
ajaxFileUpload 针对 ie jquery 1.7+不能使用问题修复版本
Chen.H
ajaxFileUpload ie6 ie7 ie8 ie9
jQuery.extend({
handleError: function( s, xhr, status, e ) {
// If a local callback was specified, fire it
if ( s.error ) {
s.error.call( s.context || s, xhr, status, e );
}
[机器人制造原则]机器人的电池和存储器必须可以替换
comsci
制造
机器人的身体随时随地可能被外来力量所破坏,但是如果机器人的存储器和电池可以更换,那么这个机器人的思维和记忆力就可以保存下来,即使身体受到伤害,在把存储器取下来安装到一个新的身体上之后,原有的性格和能力都可以继续维持.....
另外,如果一
Oracle Multitable INSERT 的用法
daizj
oracle
转载Oracle笔记-Multitable INSERT 的用法
http://blog.chinaunix.net/uid-8504518-id-3310531.html
一、Insert基础用法
语法:
Insert Into 表名 (字段1,字段2,字段3...)
Values (值1,
专访黑客历史学家George Dyson
datamachine
on
20世纪最具威力的两项发明——核弹和计算机出自同一时代、同一群年青人。可是,与大名鼎鼎的曼哈顿计划(第二次世界大战中美国原子弹研究计划)相 比,计算机的起源显得默默无闻。出身计算机世家的历史学家George Dyson在其新书《图灵大教堂》(Turing’s Cathedral)中讲述了阿兰·图灵、约翰·冯·诺依曼等一帮子天才小子创造计算机及预见计算机未来
小学6年级英语单词背诵第一课
dcj3sjt126com
english word
always 总是
rice 水稻,米饭
before 在...之前
live 生活,居住
usual 通常的
early 早的
begin 开始
month 月份
year 年
last 最后的
east 东方的
high 高的
far 远的
window 窗户
world 世界
than 比...更
在线IT教育和在线IT高端教育
dcj3sjt126com
教育
codecademy
http://www.codecademy.com codeschool
https://www.codeschool.com teamtreehouse
http://teamtreehouse.com lynda
http://www.lynda.com/ Coursera
https://www.coursera.
Struts2 xml校验框架所定义的校验文件
蕃薯耀
Struts2 xml校验 Struts2 xml校验框架 Struts2校验
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年7月11日 15:54:59 星期六
http://fa
mac下安装rar和unrar命令
hanqunfeng
mac
1.下载:http://www.rarlab.com/download.htm 选择
RAR 5.21 for Mac OS X 2.解压下载后的文件 tar -zxvf rarosx-5.2.1.tar 3.cd rar sudo install -c -o $USER unrar /bin #输入当前用户登录密码 sudo install -c -o $USER rar
三种将list转换为map的方法
jackyrong
list
在本文中,介绍三种将list转换为map的方法:
1) 传统方法
假设有某个类如下
class Movie {
private Integer rank;
private String description;
public Movie(Integer rank, String des
年轻程序员需要学习的5大经验
lampcy
工作 PHP 程序员
在过去的7年半时间里,我带过的软件实习生超过一打,也看到过数以百计的学生和毕业生的档案。我发现很多事情他们都需要学习。或许你会说,我说的不就是某种特定的技术、算法、数学,或者其他特定形式的知识吗?没错,这的确是需要学习的,但却并不是最重要的事情。他们需要学习的最重要的东西是“自我规范”。这些规范就是:尽可能地写出最简洁的代码;如果代码后期会因为改动而变得凌乱不堪就得重构;尽量删除没用的代码,并添加
评“女孩遭野蛮引产致终身不育 60万赔偿款1分未得”医腐深入骨髓
nannan408
先来看南方网的一则报道:
再正常不过的结婚、生子,对于29岁的郑畅来说,却是一个永远也无法实现的梦想。从2010年到2015年,从24岁到29岁,一张张新旧不一的诊断书记录了她病情的同时,也清晰地记下了她人生的悲哀。
粗暴手术让人发寒
2010年7月,在酒店做服务员的郑畅发现自己怀孕了,可男朋友却联系不上。在没有和家人商量的情况下,她决定堕胎。
12月5日,
使用jQuery为input输入框绑定回车键事件 VS 为a标签绑定click事件
Everyday都不同
jsp input 回车键绑定 click enter
假设如题所示的事件为同一个,必须先把该js函数抽离出来,该函数定义了监听的处理:
function search() {
//监听函数略......
}
为input框绑定回车事件,当用户在文本框中输入搜索关键字时,按回车键,即可触发search():
//回车绑定
$(".search").keydown(fun
EXT学习记录
tntxia
ext
1. 准备
(1) 官网:http://www.sencha.com/
里面有源代码和API文档下载。
EXT的域名已经从www.extjs.com改成了www.sencha.com ,但extjs这个域名会自动转到sencha上。
(2)帮助文档:
想要查看EXT的官方文档的话,可以去这里h
mybatis3的mapper文件报Referenced file contains errors
xingguangsixian
mybatis
最近使用mybatis.3.1.0时无意中碰到一个问题:
The errors below were detected when validating the file "mybatis-3-mapper.dtd" via the file "account-mapper.xml". In most cases these errors can be d