在本文中,我们将带你了解HTML基础入门学习在这篇文章中,我们将为您详细介绍HTML基础入门学习的方方面面,并解答html入门教程常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的html的m
在本文中,我们将带你了解HTML 基础入门学习在这篇文章中,我们将为您详细介绍HTML 基础入门学习的方方面面,并解答html入门教程常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的 html 的 meta 总结,html 标签中 meta 属性使用介绍、Android Html 与客户端交互 ---- 1.)html 操作 activity、ASP.NET MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction、asp.net – Html.Partial vs Html.RenderPartial&Html.Action vs Html.RenderAction.任何人都可以描述不同之处。
本文目录一览:- HTML 基础入门学习(html入门教程)
- html 的 meta 总结,html 标签中 meta 属性使用介绍
- Android Html 与客户端交互 ---- 1.)html 操作 activity
- ASP.NET MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction
- asp.net – Html.Partial vs Html.RenderPartial&Html.Action vs Html.RenderAction.任何人都可以描述不同之处
HTML 基础入门学习(html入门教程)
什么是 HTML?
HTML: 超文本标记语言,标准通用标记语言下的一个应用。
“超文本” 就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。
教学课程:HTML 基础入门学习
超文本标记语言的结构包括 “头” 部分(英语:Head)、和 “主体” 部分(英语:Body),其中 “头” 部提供关于网页的信息,“主体” 部分提供网页的具体内容。
超级文本标记语言的定义又是什么?
超级文本标记语言是标准通用标记语言下的一个应用,也是一种规范,一种标准,它通过标记符号来标记要显示的网页中的各个部分。网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容(如:文字如何处理,画面如何安排,图片如何显示等)。浏览器按顺序阅读网页文件,然后根据标记符解释和显示其标记的内容,对书写出错的标记将不指出其错误,且不停止其解释执行过程,编制者只能通过显示效果来分析出错原因和出错部位。但需要注意的是,对于不同的浏览器,对同一标记符可能会有不完全相同的解释,因而可能会有不同的显示效果。
网页的本质就是超级文本标记语言,通过结合使用其他的 Web 技术(如:脚本语言、公共网关接口、组件等),可以创造出功能强大的网页。因而,超级文本标记语言是万维网(Web)编程的基础,也就是说万维网是建立在超文本基础之上的。超级文本标记语言之所以称为超文本标记语言,是因为文本中包含了所谓 “超级链接” 点。
HTML 特点:超级文本标记语言文档制作不是很复杂,但功能强大,支持不同数据格式的文件镶入,这也是万维网(WWW)盛行的原因之一,其主要特点如下:
简易性:超级文本标记语言版本升级采用超集方式,从而更加灵活方便。
可扩展性:超级文本标记语言的广泛应用带来了加强功能,增加标识符等要求,超级文本标记语言采取子类元素的方式,为系统扩展带来保证。
平台无关性:虽然个人计算机大行其道,但使用 MAC 等其他机器的大有人在,超级文本标记语言可以使用在广泛的平台上,这也是万维网(WWW)盛行的另一个原因。
通用性:另外,HTML 是网络的通用语言,一种简单、通用的全置标记语言。它允许网页制作人建立文本与图片相结合的复杂页面,这些页面可以被网上任何其他人浏览到,无论使用的是什么类型的电脑或浏览器。
更多精品课程点击:阿里云大学
html 的 meta 总结,html 标签中 meta 属性使用介绍
引子
之前的我的博客中对于meta有个介绍,例如:http://www.haorooms.com/post/liulanq_think_ie 浏览器安全性想到的这篇文章,中间介绍了meta下面IE的一些属性,可以实现页面之间的过渡转换。已经SEO优化中有所提及。下面具体介绍一下meta的功能和使用。
前言
meta是html语言head区的一个辅助性标签。也许你认为这些代码可有可无。其实如果你能够用好meta标签,会给你带来意想不到的效果,meta标签的作用有:搜索引擎优化(SEO),定义页面使用语言,自动刷新并指向新的页面,实现网页转换时的动态效果,控制页面缓冲,网页定级评价,控制网页显示的窗口等!
html的meta总结
meta标签的组成:meta标签共有两个属性,它们分别是http-equiv属性和name属性,不同的属性又有不同的参数值,这些不同的参数值就实现了不同的网页功能。
1、name属性
name属性主要用于描述网页,与之对应的属性值为content,content中的内容主要是便于搜索引擎机器人查找信息和分类信息用的。
meta标签的name属性语法格式是:
<meta name="参数"content="具体的参数值">。
其中name属性主要有以下几种参数:
A、Keywords(关键字)
说明:keywords用来告诉搜索引擎你网页的关键字是什么。
举例:
<meta name="keywords"content="meta总结,html meta,meta属性,meta跳转">
B、description(网站内容描述)
说明:description用来告诉搜索引擎你的网站主要内容。
举例:
<meta name="description"content="haorooms博客,html的meta总结,meta是html语言head区的一个辅助性标签。">
C、robots(机器人向导)
说明:robots用来告诉搜索机器人哪些页面需要索引,哪些页面不需要索引。
content的参数有all,none,index,noindex,follow,nofollow。默认是all。
举例:
<meta name="robots"content="none">
具体参数如下:
信息参数为all:文件将被检索,且页面上的链接可以被查询;
信息参数为none:文件将不被检索,且页面上的链接不可以被查询;
信息参数为index:文件将被检索;
信息参数为follow:页面上的链接可以被查询;
信息参数为noindex:文件将不被检索,但页面上的链接可以被查询;
信息参数为nofollow:文件将被检索,但页面上的链接不可以被查询;
D、author(作者)
说明:标注网页的作者
举例:
<meta name="author"content="root,root@xxxx.com">
E、generator
<meta name="generator"content="信息参数"/>
meta标签的generator的信息参数,代表说明网站的采用的什么软件制作。
F、COPYRIGHT
<META NAME="COPYRIGHT"CONTENT="信息参数">
meta标签的COPYRIGHT的信息参数,代表说明网站版权信息。
G、revisit-after
<META name="revisit-after"CONTENT="7days">
revisit-after代表网站重访,7days代表7天,依此类推。
2、http-equiv属性
http-equiv顾名思义,相当于http的文件头作用,它可以向浏览器传回一些有用的信息,以帮助正确和精确地显示网页内容,与之对应的属性值为content,content中的内容其实就是各个参数的变量值。
meta标签的http-equiv属性语法格式是:
<meta http-equiv="参数"content="参数变量值">;
其中http-equiv属性主要有以下几种参数:
A、Expires(期限)
说明:可以用于设定网页的到期时间。一旦网页过期,必须到服务器上重新传输。
用法:
<meta http-equiv="expires"content="Fri,12Jan200118:18:18GMT">
注意:必须使用GMT的时间格式。
B、Pragma(cache模式)
说明:禁止浏览器从本地计算机的缓存中访问页面内容。
用法:
<meta http-equiv="Pragma"content="no-cache">
注意:这样设定,访问者将无法脱机浏览。
C、Refresh(刷新)
说明:自动刷新并指向新页面。
用法:
<meta http-equiv="Refresh"content="2;URL=http://www.haorooms.com"> //(注意后面的引号,分别在秒数的前面和网址的后面)
注意:其中的2是指停留2秒钟后自动刷新到URL网址。
D、Set-Cookie(cookie设定)
说明:如果网页过期,那么存盘的cookie将被删除。
用法:
<meta http-equiv="Set-Cookie"content="cookie value=xxx;expires=Friday,12-Jan-200118:18:18GMT;path=/">
注意:必须使用GMT的时间格式。
E、Window-target(显示窗口的设定)
说明:强制页面在当前窗口以独立页面显示。
用法:
<meta http-equiv="Window-target"content="_top">
注意:用来防止别人在框架里调用自己的页面。
F、content-Type(显示字符集的设定)
说明:设定页面使用的字符集。
用法:
<meta http-equiv="content-Type"content="text/html;charset=gb2312">
具体如下:
meta标签的charset的信息参数如GB2312时,代表说明网站是采用的编码是简体中文;
meta标签的charset的信息参数如BIG5时,代表说明网站是采用的编码是繁体中文;
meta标签的charset的信息参数如iso-2022-jp时,代表说明网站是采用的编码是日文;
meta标签的charset的信息参数如ks_c_5601时,代表说明网站是采用的编码是韩文;
meta标签的charset的信息参数如ISO-8859-1时,代表说明网站是采用的编码是英文;
meta标签的charset的信息参数如UTF-8时,代表世界通用的语言编码;
G、content-Language(显示语言的设定)
用法:
<meta http-equiv="Content-Language"content="zh-cn"/>
H、Cache-Control指定请求和响应遵循的缓存机制。
Cache-Control指定请求和响应遵循的缓存机制。在请求消息或响应消息中设置Cache-Control并不会修改另一个消息处理过程中的缓存处理过程。请求时的缓存指令包括no-cache、no-store、max-age、max-stale、min-fresh、on
ly-if-cached,响应消息中的指令包括public、private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、max-age。各个消息中的指令含义如下
Public指示响应可被任何缓存区缓存
Private指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效
no-cache指示请求或响应消息不能缓存
no-store用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。
max-age指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应
min-fresh指示客户机可以接收响应时间小于当前时间加上指定时间的响应
max-stale指示客户机可以接收超出超时期间的响应消息。如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。
J、http-equiv="imagetoolbar"
<meta http-equiv="imagetoolbar"content="false"/>
指定是否显示图片工具栏,当为false代表不显示,当为true代表显示。
K、Content-Script-Type
<Meta http-equiv="Content-Script-Type"Content="text/javascript">
W3C网页规范,指明页面中脚本的类型。
L 页面跳转,只用于IE
具体请看 http://www.haorooms.com/post/liulanq_think_ie
Android Html 与客户端交互 ---- 1.)html 操作 activity
1. 何为 scheme 和 Uri
在 Android 中 scheme 是指 Uri 链接:之前的部分如 test://login scheme 即为 test。 可能很多人要为 URI 是怎么定义的呢?具体看 URI 的定义
- 英文愿意: An identifier is an object that can act as a reference to something that has identity. In the case of URI, the object is a sequence of characters with a restricted syntax.
- 翻译:
一个具有参考对象的可以唯一识别的标识符。在这种情况下,这个对象在有限的语法表达出有序的符号
2.Uri 的结构
test://video:8080/event?title="scheme"&url="www.xiaomi.com"
- scheme :test
- host :video
- port:8080
- path :/event
- query : titile ,url
3. 如果通过 H5 (url) 来启动相应的页面(activity)
String url="test://video:8080/event?title="scheme"&url="www.xiaomi.com" "
Intent intent=new Intent(Intent.ACTION_VIEW,Uri.parse(url));
startActivity(intent);
<activity android:name=".UriActivity">
<intent-filter >
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="test" android:host="video" />
</intent-filter>
</activity>
这样就可以在 UriActivity 中接收 url 跳转相应的动作以及数据。
> Uri data=getIntent().getData();
> data.getScheme();
> data.getHost();
> data.getPort();
> data.getPath();
> data.getQueryParameter("title");
4. 大量的不同的 scheme 跳转
如果我们在每个 activity 中配置 scheme ,host,path 显得特别麻烦。这个时候我们需要一个中转的 activity 来处理所有的 scheme 的跳转。根据相应的 host,path 来跳转到相应的 activity 做进一步处理。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
Uri data = intent.getData();
String host = data.getHost();
if(host.equals("list")){
if ("/near".equals(data.getPath())) {//yhouse://list/near
intentTransfer = new Intent(this, NearbyActivity.class);
} else if ("/new".equals(data.getPath())) {//yhouse://list/new
intentTransfer = new Intent(this, NewSkuActivity.class);
} else if ("/live".equals(data.getPath())) {
intentTransfer = new Intent(this, LiveActivity.class);
} else if ("/neighbor".equals(data.getPath())) {
intentTransfer = new Intent(this, NeighborActivity.class);
} else if ("/talent".equals(data.getPath())) {
intentTransfer = new Intent(this, TalentListActivity.class);
} else if ("/guide".equals(data.getPath())) {
intentTransfer = new Intent(this, GuideActivity.class);
} else if ("/experience".equals(data.getPath())) {
intentTransfer = new Intent(this, PlayerActivity.class);
}else if ("/latest".equals(data.getPath())) {
intentTransfer = new Intent(this, CikeActivity.class);
} else if ("/message".equals(data.getPath())) {
intentTransfer = new Intent(this, HomeActivity.class);
} else if ("/message/like".equals(data.getPath())) {
intentTransfer = new Intent(this, MessageDetailActivity.class);
} else if ("/message/comment".equals(data.getPath())) {
intentTransfer = new Intent(this, MessageDetailActivity.class);
} else if ("/message/follow".equals(data.getPath())) {
intentTransfer = new Intent(this, MessageDetailActivity.class);
} else if ("/message/system".equals(data.getPath())) {
intentTransfer = new Intent(this, SystemNoticeActivity.class);
} else {
intentTransfer = new Intent(this, HomeActivity.class);
}
}else if ("my-member".equals(host)) {
intentTransfer = new Intent(this, MemberInfoActivity.class);
} else if ("event".equals(host)) {
intentTransfer = new Intent(this, HuodongDetailActivity.class);
} else if ("booking-list".equals(host)) {
intentTransfer = new Intent(this, OrderManagerActivity.class);
} else if ("my-party".equals(host)) {
intentTransfer = new Intent(this, OrderManagerActivity.class);
intentTransfer.putExtra("type", OrderManagerActivity.PARTY);
} else if ("order".equals(host)) {
intentTransfer = new Intent(this, BookingManageDetailActivity.class);
} else if ("meal".equals(host)) {
intentTransfer = new Intent(this, MealDetailActivity.class);
}
}
你可能发现大量的 if else 语句不是非常好的选择。你可以采用 swith case 看不起来更清爽一些。但是使用 HashMap 将是我们比较好的选择。
HashMap 处理 首发定义一个枚举 SchemeEnum 和类 SchemeManager
>``` public enum ShemeEnum {
> Nearby("/near", NearbyActivity.class), NewSku("/new", NewSkuActivity.class),Live("/live", LiveActivity.class),
> NeighborActivity("/neighbor", NeighborActivity.class),Talent("/talent", NeighborActivity.class),Guide("/guide", GuideActivity.class),
> Player("/experience", PlayerActivity.class),News("/news", NewsActivity.class),Latest("latest",CikeActivity.class),
> Message("/message",NeighborActivity.class),Like("/message/like",NeighborActivity.class),
> Comment("/message/comment",NeighborActivity.class),Follow("/message/follow",NeighborActivity.class),
> System("/message/system",NeighborActivity.class),event("event",HomeActivity.class);
> private String key;
> private Class<?> value;
>
> private ShemeEnum(String key, Class<?> value) {
> this.value = value;
> this.key = key;
> }
>
> public String getKey() {
> return key;
> }
>
> public Class<?> getValue() {
> return value;
> }
> }
>```
> public class SchemeManager {
> private static HashMap<String, Class> map = new HashMap();
> private static SchemeManager scheme;
>
> public static HashMap initScheme() {
> ShemeEnum[] values = ShemeEnum.values();
> int len=values.length;
> for (int i = 0; i <len ; i++) {
> map.put(values[i].getKey(), values[i].getValue());
> }
> return map;
> }
>
> public static HashMap<String, Class> getMap() {
> return map;
> }
> }
scheme 转化的 Activity 将整理成
>```
> public class UriActivity extends Activity {
> private SApplication sApplication;
>
> @Override
> protected void onCreate(Bundle savedInstanceState) {
> super.onCreate(savedInstanceState);
> setContentView(R.layout.activity_test);
> Log.e("---UriActivity---", getClass().getName());
> Uri data = getIntent().getData();
> sApplication = (SApplication) getApplication();
> Intent intent = getIntent();
> if (intent == null || data == null) finish();
> Intent intentTransfer = null;
> String host = data.getHost();
> if (host.equals("list")) {
> intentTransfer = getIntentTransfer(data.getPath());
> } else {
> intentTransfer = getIntentTransfer(host);
> }
> if (intentTransfer != null) {
> intentTransfer.setData(data);
> startActivity(intentTransfer);
> }
> finish();
> }
>
> private Intent getIntentTransfer(String path) {
> Object clazz = sApplication.getMap().get(path);
> Intent intentTransfer;
> if (clazz != null) {
> intentTransfer = new Intent(this, (Class<?>) clazz);
> } else {
> intentTransfer = new Intent(this, HomeActivity.class);
> }
> return intentTransfer;
> }
> }
> ``
感觉 UriActivity 变的更简洁。每次新加 scheme 只需要在对应的枚举中添加相应的 scheme 和 Activity 名称既可以正常的跳转。
5. 拦截 uri 跳转
如果你想在跳转的途中或者我直接操作相应的某个操作(显示弹框,去分享等等) 你首先要重写 WebViewClient shouldOverrideUrlLoading(WebView view, String url); 来实现拦截的目的。
this.setWebViewClient(new WebViewClient() {
String failedUrl;
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
//TODO 判断是否要拦截。如果需要做你的拦截之后的动作。
//不需要直接跳转(看第3条)。
return true;
}
});
}
这样通过 H5 来打开相应的 activity 并且传递参数的相关内容介绍完。下一节。我们将讲解 Activity 传递给 html 数据,以及调用相关的方法。
ASP.NET MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction
1.Action、RenderAction加载办法的视图,履行Controller → Model → View的次序,然后把产生的页面带回到本来的View中再回传。而Partial、RenderPartial直接加载视图文件内容
2.Html.Partial可以直接供给用户控件名作为参数,而Html.Action须要有对应的Action,在Action内部返回PartailResult(即retun PartialView())。
3.对于简单的没有任何逻辑的用户控件,推荐应用Html.Partial;对于须要设置一些Model的用户控件,推荐应用Html.Action。当然,有Model数据也是可以应用Html.Partial办法的,可以看办法的重载。
4.Html.Partial与Html.Action有啥区别呢?区别就是,Html.Partial只有一个视图,而Html.Action除了视图,还真的有个Action跟它对应,所以,Html.Action功能比Html.Partial要强。
如何调用这个Html.Partial
//1、以视图名使用当前文件夹下的视图(如果没有找到,则搜索 Shared 文件夹)
@Html.Partial(
"_test"
)
//加载对应文件 /Views/Product/_test.cshtml
//2、依据应用根路径定位视图// 以 "/" 或 "~/" 开头的路径代表应用根路径
@Html.Partial(
"~/Views/Product/_test.cshtml"
)
@Html.Partial(
"/Views/Product/_test2.cshtml"
)
//3、加载其他目录的 视图文件
//注意:需要复制views中的web.config 到template目录,否则会提示 "/template/A.cshtml”处的视图必须派生自 WebViewPage 或 WebViewPage<TModel>"
@Html.Partial(
"/template/A.cshtml"
)
asp.net – Html.Partial vs Html.RenderPartial&Html.Action vs Html.RenderAction.任何人都可以描述不同之处
Html.Partial and Html.RenderPartial Html.Action and Html.RenderAction
解决方法
Html.Partial使用已创建的模型(或者可以在没有模型的情况下调用)来渲染指定的视图.
何时使用一个而不是另一个?如果您已有模型并且只想拥有可重复使用的视图,请选择Html.Partial.如果你看到某个部分值得拥有自己的模型和动作,那么使用Html.Action可能是有意义的.
这个问题在this article中有更详细的讨论,你在上面看到的基本上是它的摘录.
我们今天的关于HTML 基础入门学习和html入门教程的分享就到这里,谢谢您的阅读,如果想了解更多关于 html 的 meta 总结,html 标签中 meta 属性使用介绍、Android Html 与客户端交互 ---- 1.)html 操作 activity、ASP.NET MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction、asp.net – Html.Partial vs Html.RenderPartial&Html.Action vs Html.RenderAction.任何人都可以描述不同之处的相关信息,可以在本站进行搜索。
本文标签: