标签 前端笔记 下的文章

CSS学起来并不难,但在大型项目中,就变得难以管理,特别是不同的人在CSS书写风格上稍有不同,团队上就更加难以沟通,为此总结了一些如何实现高效整洁的CSS代码原则:

1. 使用Reset但并非全局Reset

不同浏览器元素的默认属性有所不同,使用Reset可重置浏览器元素的一些默认属性,以达到浏览器的兼容。但需要注意的是,请不要使用全局Reset:

*{ margin:0; padding:0; }

这不仅仅因为它是缓慢和低效率的方法,而且还会导致一些不必要的元素也重置了外边距和内边距。在此建议参考YUI Reset和Eric Meyer的做法。我跟Eric Meyer的观点相同,Reset并不是一成不变的,具体还需要根据项目的不同需求做适当的修改,以达到浏览器的兼容和操作上的便利性。我使用的Reset如下:

/** 清除内外边距 **/
body, h1, h2, h3, h4, h5, h6, hr, p,
blockquote, /* structural elements 结构元素 */
dl, dt, dd, ul, ol, li, /* list elements 列表元素 */
pre, /* text formatting elements 文本格式元素 */
form, fieldset, legend, button, input, textarea, /* form elements 表单元素 */
th, td, /* table elements 表格元素 */
img/* img elements 图片元素 */{
border:medium none;
margin: 0;
padding: 0;
}
/** 设置默认字体 **/
body,button, input, select, textarea {
font: 12px/1.5 '宋体',tahoma, Srial, helvetica, sans-serif;
}
h1, h2, h3, h4, h5, h6 { font-size: 100%; }
em{font-style:normal;}
/** 重置列表元素 **/
ul, ol { list-style: none; }
/** 重置超链接元素 **/
a { text-decoration: none; color:#333;}
a:hover { text-decoration: underline; color:#F40; }
/** 重置图片元素 **/
img{ border:0px;}
/** 重置表格元素 **/
table { border-collapse: collapse; border-spacing: 0; }

2. 良好的命名习惯

无疑乱七八糟或者无语义命名的代码,谁看了都会抓狂。就像这样的代码:

.aaabb{margin:2px;color:red;}

我想即使是初学者,也不至于会在实际项目中如此命名一个class,但有没有想过这样的代码同样是很有问题的:

My name is Wiky

问题在于如果你需要把所有原本红色的字体改成蓝色,那修改后就样式就会变成:

.red{color:bule;}

这样的命名就会很让人费解,同样的命名为.leftBar的侧边栏如果需要修改成右侧边栏也会很麻烦。所以,请不要使用元素的特性(颜色,位置,大小等)来命名一个class或id,您可以选择意义的命名如:#navigation{…},.sidebar{…},.postwrap{…}
这样,无论你如何修改定义这些class或id的样式,都不影响它跟HTML元素间的联系。
另外还有一种情况,一些固定的样式,定义后就不会修改的了,那你命名时就不用担忧刚刚说的那种情况,如

.alignleft{float:left;margin-right:20px;}
.alignright{float:right;text-align:right;margin-left:20px;}
.clear{clear:both;text-indent:-9999px;

那么对于这样一个段落

我是一个段落!

如果需要把这个段落由原先的左对齐修改为右对齐,那么只需要修改它的className就为alignright就可以了。

3. 代码缩写

CSS代码缩写可以提高你写代码的速度,精简你的代码量。在CSS里面有不少可以缩写的属性,包括margin,padding,border,font,background和颜色值等,如果您学会了代码缩写,原本这样的代码:

li{
font-family:Arial, Helvetica, sans-serif;
font-size: 1.2em;
line-height: 1.4em;
padding-top:5px;
padding-bottom:10px;
padding-left:5px;
}

就可以缩写为:

li{
font: 1.2em/1.4em Arial, Helvetica, sans-serif;
padding:5px 0 10px 5px;
}

如果您想更了解这些属性要怎么缩写,可以参考《常用CSS缩写语法总结》或者下载CSS-Shorthand-Cheat-Sheet.pdf 。

4. 利用CSS继承

如果页面中父元素的多个子元素使用相同的样式,那最好把他们相同的样式定义在其父元素上,让它们继承这些CSS样式。这样你可以很好的维护你的代码,并且还可以减少代码量。那么本来这样的代码:

#container li{ font-family:Georgia, serif; }
#container p{ font-family:Georgia, serif; }
#container h1{font-family:Georgia, serif; }

就可以简写成:

#container{ font-family:Georgia, serif; }

5. 使用多重选择器

你可以合并多个CSS选择器为一个,如果他们有共同的样式的话。这样做不但代码简洁且可为你节省时间和空间。如:

h1{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; }
h2{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; }
h3{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; }

可以合并为

h1, h2, h3{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; }

6. 适当的代码注释

代码注释可以让别人更容易读懂你的代码,且合理的组织代码注释,可使得结构更加清晰。你可以选择做的样式表的开始添加目录:

/*------------------------------------
1. Reset
2. Header
3. Content
4. SideBar
5. Footer
----------------------------------- */

如此你代码的结构就一目了然,你可以容易的查找和修改代码。

而对于代码的主内容,也应适当的加以划分,甚至在有必要的地方在对代码加以注释说明,这样也有利于团队开发:

/*** Header ***/
#header{ height:145px; position:relative; }
#header h1{ width:324px; margin:45px 0 0 20px; float:left; height:72px;}
/*** Content ***/
#content{ background:#fff; width:650px; float:left; min-height:600px; overflow:hidden;}
#content h1{color:#F00}/* 设置字体颜色 */
#content .posts{ overflow:hidden; }
#content .recent{ margin-bottom:20px; border-bottom:1px solid #f3f3f3; position:relative; overflow:hidden; }
/*** Footer ***/
#footer{ clear:both; padding:50px 5px 0; overflow:hidden;}
#footer h4{ color:#b99d7f; font-family:Arial, Helvetica, sans-serif; font-size:1.1em; }

7. 给你的CSS代码排序

如果代码中的属性都能按照字母排序,那查找修改的时候就能更加快速:

/*** 样式属性按字母排序 ***/
div{
background-color:#3399cc;
color:#666;
font:1.2em/1.4em Arial, Helvetica, sans-serif;
height:300px;
margin:10px 5px;
padding:5px 0 10px 5px;
width:30%;
z-index:10;
}

8. 保持CSS的可读性

书写可读的CSS将会使得更容易查找和修改样式。对于以下两种情况,哪种可读性更高,我想不言而明。

/*** 每个样式属性写一行 ***/
div{
background-color:#3399cc;
color:#666;
font: 1.2em/1.4em Arial, Helvetica, sans-serif;
height:300px;
margin:10px 5px;
padding:5px 0 10px 5px;
width:30%;
z-index:10;
}
/*** 所有的样式属性写在同一行 ***/
div{ background-color:#3399cc; color:#666; font: 1.2em/1.4em Arial, Helvetica, sans-serif; height:300px; margin:10px 5px;padding:5px 0 10px 5px; width:30%; z-index:10; }

当对于一些样式属性较少的选择器,我会写到一行:

/*** 选择器属性少的写在同一行 ***/
 div{ background-color:#3399cc; color:#666;}

对于这个规则并非硬性规定,但无论您采用哪种写法,我的建议是始终保持代码一致。属性多的分行写,属性少于3个可以写一行。

9. 选择更优的样式属性值

CSS中有些属性采用不同的属性值,虽然达到的效果差不多,当性能上却存在着差异,如


区别在于border:0把border设为0px,虽然在页面上看不见,但按border默认值理解,浏览器依然对border-width/border-color进行了渲染,即已经占用了内存值。


而border:none把border设为“none”即没有,浏览器解析“none”时将不作出渲染动作,即不会消耗内存值。所以建议使用border:none;


同样的,display:none隐藏对象浏览器不作渲染,不占用内存。而visibility:hidden则会。

10. 使用代替@import

首先,@import不属于XHTML标签,也不是Web标准的一部分,它对于较早期的浏览器兼容也不高,并且对于网站的性能有某些负面的影响。具体可以参考《高性能网站设计:不要使用@import》。所以,请避免使用@import

11. 使用外部样式表

这个原则始终是一个很好的设计实践。不单可以更易于维护修改,更重要的是使用外部文件可以提高页面速度,因为CSS文件都能在浏览器中产生缓存。内置在HTML文档中的CSS则会在每次请求中随HTML文档重新下载。所以,在实际应用中,没有必要把CSS代码内置在HTML文档中:

<style type="text/css" >
    #container{ .. }
    #sidebar{ .. }
</style>

<li style="font-family:Arial, helvetica, sans-serif; color:#666; " >

而是使用导入外部样式表:

<link rel="stylesheet" type="text/css" href="css/styles.css" />

12. 避免使用CSS表达式(Expression)

CSS表达式是动态设置CSS属性的强大(但危险)方法。Internet Explorer从第5个版本开始支持CSS表达式。下面的例子中,使用CSS表达式可以实现隔一个小时切换一次背景颜色:

background-color: expression( (new Date()).getHours()%2 ? "#B8D4FF" : "#F08A00" );

如上所示,expression中使用了JavaScript表达式。CSS属性根据JavaScript表达式的计算结果来设置。


表达式的问题就在于它的计算频率要比我们想象的多。不仅仅是在页面显示和缩放时,就是在页面滚动、乃至移动鼠标时都会要重新计算一次。给CSS表达式增加一个计数器可以跟踪表达式的计算频率。在页面中随便移动鼠标都可以轻松达到10000次以上的计算量。


如果必须使用CSS表达式,一定要记住它们要计算成千上万次并且可能会对你页面的性能产生影响。所以,在非不得已,请避免使用CSS表达式。

13. 代码压缩

当你决定把网站项目部署到网络上,那你就要考虑对CSS进行压缩,出去注释和空格,以使得网页加载得更快。压缩您的代码,可以采用一些工具


利用它可精简CSS代码,减少文件大小,以获得更高的加载速度。

14. 总结

在本文中,我力图更详尽的总结书写更高效的CSS代码的原则,但鉴于本人见识和精力有限,我还是希望这些原则能帮助您更好的书写和管理您的CSS代码,不知您又是如何书写CSS的,是否也有一些想要分享的技巧?给我留言吧谢谢~

背景

这篇文章定义了 HTML 和 CSS 的格式和代码规范,旨在提高代码质量和协作效率。

通用样式规范

协议

省略图片、样式、脚本以及其他媒体文件 URL 的协议部分(http:,https:),除非文件在两种协议下都不可用。这种方案称为 protocol-relative URL,好处是无论你是使用 HTTPS 还是 HTTP 访问页面,浏览器都会以相同的协议请求页面中的资源,同时可以节省一部分字节。

<!-- Not recommended -->
<script src="https://www.google.com/js/gweb/analytics/autotrack.js"></script>
<!-- Recommended -->
<script src="//www.google.com/js/gweb/analytics/autotrack.js"></script>
/* Not recommended */
    .example {
      background: url(https://www.google.com/images/example);
    }
/* Recommended */
    .example {
      background: url(//www.google.com/images/example);
    }

通用格式规范

缩进

一次缩进2个空格,不要使用 tab 或者混合 tab 和空格的缩进。

<ul>
      <li>Fantastic
      <li>Great
    </ul>
.example {
      color: blue;
    }

大小写

以下都应该用小写:
HTML 元素名称,属性,属性值(除非 text/CDATA),CSS 选择器,属性,属性值。

<!-- Not recommended -->
    <A HREF="/">Home</A>
<!-- Recommended -->
    <img src="google.png" alt="Google">
 /* Not recommended */
    color: #E5E5E5;
/* Recommended */
    color: #e5e5e5;

结尾空格

结尾空格不仅多余,而且在比较代码时会更麻烦。

<!-- Not recommended -->
    <p>What?_

    <!-- Recommended -->
    <p>Yes please.

通用元规范

编码

在 HTML 中通过指定编码方式,CSS 中不需要指定,因为默认是 UTF-8。

注释

使用注释来解释代码:包含的模块,功能以及优点。

任务项

用 TODO 来标记待办事项,而不是用一些其他的标记,像 @@。

<!-- TODO: remove optional tags -->
    <ul>
      <li>Apples</li>
      <li>Oranges</li>
    </ul>

HTML 风格规范

文档类型

HTML 文档应使用 HTML5 的文档类型:。
孤立标签无需封闭自身,<br> 不要写成 <br />。

HTML 正确性

尽可能使用正确的 HTML。

<!-- Not recommended -->
    <title>Test</title>
    <article>This is only a test.
<!-- Recommended -->
    <!DOCTYPE html>
    <meta charset="utf-8">
    <title>Test</title>
    <article>This is only a test.</article>

语义化

根据使用场景选择正确的 HTML 元素(有时被错误的称为“标签”)。例如,使用 h1 元素创建标题,p 元素创建段落,a 元素创建链接等等。正确的使用 HTML 元素对于可访问性、可重用性以及编码效率都很重要。

<!-- Not recommended -->
    <div onclick="goToRecommendations();">All recommendations</div>
<!-- Recommended -->
    <a href="recommendations/">All recommendations</a>

多媒体元素降级

对于像图片、视频、canvas 动画等多媒体元素,确保提供其他可访问的内容。图片可以使用替代文本(alt),视频和音频可以使用文字版本。

<!-- Not recommended -->
    <img src="spreadsheet.png">
<!-- Recommended -->
    <img src="spreadsheet.png" alt="Spreadsheet screenshot.">

关注分离

标记、样式和脚本分离,确保相互耦合最小化。

实体引用

如果团队中文件和编辑器使用同样的编码方式,就没必要使用实体引用,如 ,除了一些在 HTML 中有特殊含义的字符(如 < 和 &)以及不可见的字符(如空格)。

<!-- Not recommended -->
    The currency symbol for the Euro is &ldquo;&eur;&rdquo;.
<!-- Recommended -->
    The currency symbol for the Euro is “€”.

type 属性

在引用样式表和脚本时,不要指定 type 属性,除非不是 CSS 或 JavaScript。
因为 HTML5 中已经默认指定样式变的 type 是 text/css,脚本的type 是 text/javascript。

<!-- Not recommended -->
    <link rel="stylesheet" href="//www.google.com/css/maia.css"
      type="text/css">

    <!-- Recommended -->
    <link rel="stylesheet" href="//www.google.com/css/maia.css">

    <!-- Not recommended --><script src="//www.google.com/js/gweb/analytics/autotrack.js"
      type="text/javascript"></script>

    <!-- Recommended --><script src="//www.google.com/js/gweb/analytics/autotrack.js"></script>

HTML 格式规范

HTML 引号

属性值用双引号。

<!-- Not recommended --><a class='maia-button maia-button-secondary'>Sign in</a>
<!-- Recommended --><a class="maia-button maia-button-secondary">Sign in</a>

CSS 风格规范

ID 和 Class 命名

使用有含义的 id 和 class 名称。

/* Not recommended: meaningless */
    #yee-1901 {}

    /* Not recommended: presentational */
    .button-green {}
    .clear {}
/* Recommended: specific */
    #gallery {}
    #login {}
    .video {}

    /* Recommended: generic */
    .aux {}
    .alt {}

ID 和 Class 命名风格

id 和 class 应该尽量简短,同时要容易理解。

/* Not recommended */
    #navigation {}
    .atr {}
/* Recommended */
    #nav {}
    .author {}

选择器

除非需要,否则不要在 id 或 class 前加元素名。

/* Not recommended */
    ul#example {}
    div.error {}
/* Recommended */
    #example {}
    .error {}

属性简写

尽量使用 CSS 中可以简写的属性 (如 font),可以提高编码效率以及代码可读性。

/* Not recommended */
    border-top-style: none;
    font-family: palatino, georgia, serif;
    font-size: 100%;
    line-height: 1.6;
    padding-bottom: 2em;
    padding-left: 1em;
    padding-right: 1em;
    padding-top: 0;
/* Recommended */
    border-top: 0;
    font: 100%/1.6 palatino, georgia, serif;
    padding: 0 1em 2em;

0 和单位

值为 0 时不用添加单位。

margin: 0;
    padding: 0;

开头的 0

值在 -1 和 1 之间时,不需要加 0。

font-size: .8em;

16进制表示法

/* Not recommended */
    color: #eebbcc;


/* Recommended */
    color: #ebc;

前缀

使用带前缀的命名空间可以防止命名冲突,同时提高代码可维护性。

.adw-help {} /* AdWords */
    #maia-note {} /* Maia */

ID 和 Class 命名分隔符

选择器中使用连字符可以提高可读性。

/* Not recommended: does not separate the words “demo” and “image” */
    .demoimage {}

    /* Not recommended: uses underscore instead of hyphen */
    .error_status {}
/* Recommended */
    #video-id {}
    .ads-sample {}

CSS 格式规范

书写顺序

按照属性首字母顺序书写 CSS 易于阅读和维护,排序时忽略带有浏览器前缀的属性。

background: fuchsia;
    border: 1px solid;
    -moz-border-radius: 4px;
    -webkit-border-radius: 4px;
    border-radius: 4px;
    color: black;
    text-align: center;
    text-indent: 2em;

块级内容缩进

为了反映层级关系和提高可读性,块级内容都应缩进。

@media screen, projection {

      html {
        background: #fff;
        color: #444;
      }

    }

声明结束

每行 CSS 都应以分号结尾。

/* Not recommended */
    .test {
      display: block;
      height: 100px
    }
/* Recommended */
    .test {
      display: block;
      height: 100px;
    }

属性名结尾

属性名和值之间都应有一个空格。

/* Not recommended */
    h3 {
      font-weight:bold;
    }
/* Recommended */
    h3 {
      font-weight: bold;
    }

声明样式块的分隔

在选择器和 {} 之间用空格隔开。

/* Not recommended: missing space */
    #video{
      margin-top: 1em;
    }

    /* Not recommended: unnecessary line break */
    #video
    {
      margin-top: 1em;
    }
/* Recommended */
    #video {
      margin-top: 1em;
    }

选择器分隔

每个选择器都另起一行。

/* Not recommended */
    a:focus, a:active {
      position: relative; top: 1px;
    }
/* Recommended */
    h1,
    h2,
    h3 {
      font-weight: normal;
      line-height: 1.2;
    }

规则分隔

规则之间都用空行隔开。

html {
      background: #fff;
    }

    body {
      margin: auto;
      width: 50%;
    }

CSS 引号

属性选择器和属性值用单引号,URI 的值不需要引号。

/* Not recommended */
    @import url("//www.google.com/css/maia.css");

    html {
      font-family: "open sans", arial, sans-serif;
    }
/* Recommended */
    @import url(//www.google.com/css/maia.css);

    html {
      font-family: 'open sans', arial, sans-serif;
    }

CSS 元规则

分段注释

用注释把 CSS 分成各个部分。

/* Header */

    #adw-header {}

    /* Footer */

    #adw-footer {}

    /* Gallery */

    .adw-gallery {}

结语

坚持遵循代码规范。

来自:Web Develop - SegmentFault

原文:Google HTML/CSS Style Guide

前言:

通过使用框架,你可以在同一个浏览器窗口中显示不止一个页面。
每份HTML文档称为一个框架,并且每个框架都独立于其他的框架。

框架相关标签:

iframe

iframe:定义一个内联的iframe
iframe语法:

<iframe src="URL"></iframe>

该URL指向不同的网页。

height 和 width 属性

height 和 width 属性用来定义iframe标签的高度与宽度。
属性默认以像素为单位, 但是你可以指定其按比例显示 (如:"80%").

<iframe src="index.htm" width="100%" height="80px"></iframe>

frameborder属性

frameborder 属性用于定义iframe表示是否显示边框。
设置属性值为 "0" 移除iframe的边框:

<iframe src="index.html" frameborder="0"></iframe>

target="iframe_a"属性

iframe可以显示一个目标链接的页面
目标链接的属性必须使用iframe的属性,如下实例:

<iframe src="index.html" name="iframe_a"></iframe>
<p><a href="http://moshanghua.net" target="iframe_a">陌上花-blog</a></p>

实例:

<iframe src="index.php/" height="500px" width="100%" frameborder="0"></iframe>
<p><a href="http://moshanghua.net" target="iframe_a">moshanghua</a></p>

前言:

网站常常以多列显示内容(就像杂志和报纸)。

HTML 布局 - 使用div元素

<div> 元素常用作布局工具,因为能够轻松地通过 CSS 对其进行定位。

HTML 布局 - 使用table元素

使用 HTML <table> 标签是创建布局的一种简单的方式。

使用 HTML5 的网站布局

HTML5 提供的新语义元素定义了网页的不同部分:
HTML5 语义元素

header:定义文档或节的页眉


nav:定义导航链接的容器


section:定义文档中的节


article:定义独立的自包含文章


aside:定义内容之外的内容(比如侧栏)


footer:定义文档或节的页脚


details:定义额外的细节


summary:定义 details 元素的标题

这个例子使用 <header>, <nav>, <section>, 以及 <footer> 来创建多列布局:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>陌上花-blog</title> 
<style>
header {
    background-color:#FFA500;
    color:white;
    text-align:center;
    padding:5px;     
}
nav {
    line-height:30px;
    background-color:#eeeeee;
    height:300px;
    width:100px;
    float:left;
    padding:5px;          
}
section {
    width:350px;
    float:left;
    padding:10px;        
}
footer {
    background-color:black;
    color:white;
    clear:both;
    text-align:center;
    padding:5px;         
}
</style>
</head>
<body>
<header>
<h1>陌上花-blog</h1>
</header>
<nav>
首页<br>
关于<br>
</nav>
<section>
<h1>London</h1>
<p>
内容在这里
</p>
</section>
<footer>
版权 © 陌上花
</footer>
</body>
</html>

以及id命名法:

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>陌上花-blog</title> 
</head>
<body>
<div id="container" style="width:500px">

<div id="header" style="background-color:#FFA500;">
<h1 style="margin-bottom:0;">陌上花-blog</h1></div>

<div id="menu" style="background-color:#FFD700;height:200px;width:100px;float:left;">
<b>首页</b><br>
关于<br>
</div>

<div id="content" style="background-color:#EEEEEE;height:200px;width:400px;float:left;">
内容在这里</div>

<div id="footer" style="background-color:#FFA500;clear:both;text-align:center;">
版权 © 陌上花</div>

</div>

</body>
</html>

下面的例子使用表格制作:

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>陌上花-blog</title> 
</head>
<body>

<table width="500" border="0">
<tr>
<td colspan="2" style="background-color:#FFA500;">
<h1>陌上花-blog</h1>
</td>
</tr>

<tr>
<td style="background-color:#FFD700;width:100px;">
<b>首页</b><br>
关于<br>

</td>
<td style="background-color:#eeeeee;height:200px;width:400px;">
内容在这里</td>
</tr>

<tr>
<td colspan="2" style="background-color:#FFA500;text-align:center;">
版权 © 陌上花</td>
</tr>
</table>

</body>
</html>

注:即使可以使用 HTML 表格来创建漂亮的布局,但表格的目的是呈现表格化数据,不是布局工具!

表单的元素:

1.单行文本框<input type="text"/>(input 的type 属性的默认值就是"text")

文本框是一种让访问者自己输入内容的表单对象,通常被用来填写单个字或者简短的回答,如姓名、地址等。

<input type = “text” name=“名称”/>

以下是单行文本框的主要属性:
size:指定文本框的宽度,以字符个数为单位;在大多数浏览器中,文本框的缺省宽度是20个字符。
value:指定文本框的默认值,是在浏览器第一次显示表单或者用户单击<input type="reset"/>按钮之后在文本框中显示的值。
maxlength:指定用户输入的最大字符长度。

2.多行文本框<textarea></textarea>

也是一种让访问者自己输入内容的表单对象,只不过能让访问者填写较长的内容。

<textarea name="..." cols="..." rows="..." wrap="VIRTUAL"></textarea>

属性解释:
name属性定义多行文本框的名称,要保证数据的准确采集,必须定义一个独一无二的名称;
readonly属性定义多行文本框为只读。
cols属性定义多行文本框的宽度,单位是单个字符宽度;
rows属性定义多行文本框的高度,单位是单个字符宽度;
wrap属性定义输入内容大于文本域时显示的方式,可选值如下:
默认值是文本自动换行;当输入内容超过文本域的右边界时会自动转到下一行,而数据在被提交处理时自动换行的地方不会有换行符出现; Off,用来避免文本换行,当输入的内容超过文本域右边界时,文本将向左滚动,必须用Return才能将插入点移到下一行; Virtual,允许文本自动换行。 Physical,让文本换行,当数据被提交处理时换行符也将被一起提交处理。

3.密码框<input type="password"/>

是一种特殊的文本域,用于输入密码。当访问者输入文字时,文字会被星号或其它符号代替,而输入的文字会被隐藏。

<input type=“password” name=“名称”/>

4.单选按钮<input type="radio"/>

当需要访问者在待选项中选择唯一的答案时,就需要用到单选框了。

<input type="radio" name="sexrdo" value="男">男  
<input type="radio" name="sexrdo" value="女">女 

属性解释:
name属性定义单选框的名称,要保证数据的准确采集,单选框都是以组为单位使用的,在同一组中的单选项都必须用同一个名称;
value属性定义单选框的值,在同一组中,它们的域值必须是不同的。

5.复选框<input type="checkbox"/>

复选框允许在待选项中选中一项以上的选项。每个复选框都是一个独立的元素,都必须有一个唯一的名称。

<input type="checkbox" name="chkhobby" value="吃" checked>  
<input type="checkbox" name="chkhobby" value="喝">  
<input type="checkbox" name="chkhobox" value="玩">  
<input type="checkbox" name="chkhobox" value="乐" > 

属性解释:
name属性定义复选框的名称,要保证数据的准确采集,必须定义一个独一无二的名称;
value属性定义复选框的值

6.隐藏域<input type="hidden"/>

隐藏域通常用于向服务器提交不需要显示给用户的信息。

<input type=“hidden” name=“隐藏域”/>

属性解释:
name属性定义隐藏域的名称,要保证数据的准确采集,必须定义一个独一无二的名称;
value属性定义隐藏域的值

7.文件上传<input type="file"/>

有时候,需要用户上传自己的文件,文件上传框看上去和其它文本域差不多,只是它还包含了一个浏览按钮。访问者可以通过输入需要上传的文件的路径或者点击浏览按钮选择需要上传的文件

<input type="file" name="txtfile" size="15">

注意:在使用文件域以前,请先确定你的服务器是否允许匿名上传文件。表单标签中必须设置enctype="multipart/form-data"来确保文件被正确编码;另外,表单的传送方式必须设置成POST。
属性解释:
name属性定义文件上传框的名称,要保证数据的准确采集,必须定义一个独一无二的名称;
size属性定义文件上传框的宽度,单位是单个字符宽度;
maxlength属性定义最多输入的字符数。

8.下拉框<select>标签

下拉选择框允许你在一个有限的空间设置多种选项。与嵌套的

<select name="sel" size="3" multiple>  
                <option value="深圳">深圳</option>  
                <option value="北京">北京</option>  
                <option value="上海">上海</option>  
                <option value="广州" selected>广州</option>  
            </select>

属性解释:
size属性定义下拉选择框的行数;
name属性定义下拉选择框的名称;
multiple属性表示可以多选,如果不设置本属性,那么只能单选;
value属性定义选择项的值;
selected属性表示默认已经选择本选项。

9.<label></label>标签

在<input type=“text”>前可以写普通的文本来修饰,但是单击修饰文本的时候input并不会得到焦点,而用label则可以,for属性指定要修饰的控件的id,<label for=“txt1” >内容</label>;”,然后按下alt+u(了解)。accesskey=“u“,label的另一个属性。注意:要为被修饰的控件设置一个唯一的id。我觉得<label></label>标签对<input type="radio"/>和<input type="checkbox"/>这两个标签是非常有用的。

<input type="radio" name="sex" id="male" value="0" checked="checked" /><label for="male">男</lable>
<input type="radio" name="sex" id="fmale" value="1" /><label for="fmale">女</label>

10.<fieldset></fieldset>标签

fieldset标签将控件划分一个区域,看起来更规整。

<fieldset name="filed">  
            <legend>请输入个人信息</legend>  
                用户名称:<input type="text" name="txtUsename" value="请输入用户名称" >  
                <br/>  
                用户密码:<input type="password" name="txtUsepwd" >  
        </fieldset>

11.提交按钮<input type="submit"/>

当用户单击<inputt type="submit"/>的提交按钮时,表单数据会提交给<form>标签的action属性所指定的服务器处理程序。中文IE下默认按钮文本为“提交查询”,可以设置value属性修改按钮的显示文本。

<input type="submit" value="提交"/>

属性解释:
type="submit"定义提交按钮;
name属性定义提交按钮的名称;
value属性定义按钮的显示文字;

12.重置按钮<input type="reset"/>

当用户单击<input type="reset"/>按钮时,表单中的值被重置为初始值。在用户提交表单时,重置按钮的name和value不会提交给服务器。

<input type=“reset” value=“重置按钮"/>

属性解释:
type="reset"定义重置按钮;
name属性定义复位按钮的名称;
value属性定义按钮的显示文字;

13.普通按钮<input type="button"/>

普通按钮通常用于单击执行一段脚本代码。

<input type="button" value="普通按钮"/>

属性解释:
type="button"定义一般按钮;
name属性定义一般按钮的名称;
value属性定义按钮的显示文字;
onClick属性,也可以是其它的事件,通过指定脚本函数来定义按钮的行为;

表单实例代码:

<!DOCTYPE html>  
<html>  
<head>  
<title>Day905</title>  
<meta charset="utf-8">  
</head>  
<body>  
<form>
<!--文本框--> 
<p>  
用户名称:<input type="text" name="txtUsename" value="请输入用户名称" readonly>  
</p>  
<p>  
用户密码:<input type="password" name="txtUsepwd" >  
</p>  
<!--单选框-->  
<p>  
用户性别:<input type="radio" name="sexrdo" value="男">男  
<input type="radio" name="sexrdo" value="女" checked>女       
</p>  
<!--复选框-->  
<p>  
用户爱好:
吃<input type="checkbox" name="chkhobby" value="吃" checked>  
喝<input type="checkbox" name="chkhobby" value="喝">  
玩<input type="checkbox" name="chkhobox" value="玩">  
乐<input type="checkbox" name="chkhobox" value="乐">  
</p>  
<!-- 按钮 -->  
<p>  
<input type="submit" name="btnsbt" value="提交">  
<input type="reset" name="btnrst"    value="重置">  
<input type="button" name="btnbtn" value="普通按钮">  
</p>  
<!-- 隐藏域 -->  
<p>  
<input type="hidden" name="txtID" value="407862858@qq.com">  
</p>  
<!--文件选择框-->  
<p>  
请上传文件:<input type="file" name="txtfile">  
</p> 
<!--下拉列表-->  
<p>意向工作城市:  
<select name="sel" >  
<option value="深圳">深圳</option>  
<option value="北京">北京</option>  
<option value="上海">上海</option>  
<option value="广州" selected>广州</option>  
</select>  
</p>  
</form>  
</body>  
</html>