首页 > 代码库 > Day48:HTML(form标签)、CSS选择器

Day48:HTML(form标签)、CSS选择器

一、表单标签<form>

  功能:表单用于向服务器传输数据,从而实现用户与Web服务器的交互。

  表单能够包含input系列标签,比如文本字段、复选框、单选框、提交按钮等等。

  表单还可以包含textarea、select、fieldset和 label标签。

表单属性

  action: 表单提交到哪。一般指向服务器端一个程序,程序接收到表单提交过来的数据(即表单元素值)作相应处理,比如https://www.sogou.com/web

  method: 表单的提交方式 post/get默认取值就是get

表单元素

‘‘‘<1> 表单类型type:        text 文本输入框             password 密码输入框             radio 单选框             checkbox 多选框               submit 提交按钮                         button 按钮(需要配合js使用.) button和submit的区别?             file 提交文件:form表单需要加上属性enctype="multipart/form-data"                         上传文件注意两点:请求方式必须是postenctype="multipart/form-data" <2> 表单属性 name:    表单提交项的键.           注意和id属性的区别:name属性是和服务器通信时使用的名称;           而id属性是浏览器端使用的名称,该属性主要是为了方便客户端编程,而在css和javascript中使用的value:    表单提交项的值.对于不同的输入类型,value 属性的用法也不同:                type="button", "reset", "submit" - 定义按钮上的显示的文本                                 type="text", "password", "hidden" - 定义输入字段的初始值                                 type="checkbox", "radio", "image" - 定义与输入相关联的值checked:  radio 和 checkbox 默认被选中readonly: 只读. text 和 passworddisabled: 对所用input都好使。‘‘‘
技术分享
<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta http-equiv="x-ua-compatible" content="IE=edge">    <meta name="viewport" content="width=device-width, initial-scale=1">    <title>注册</title></head><body><form action="/index" method="post">    <p><label for="user">姓名</label>         <input type="text" name="user" placeholder="用户名" id="user">    </p>    <p>        密码 <input type="password" name="pwd">    </p>    <p>        爱好 <input type="checkbox" name="hobby" value=http://www.mamicode.com/"basketball">篮球             <input type="checkbox" name="hobby" value=http://www.mamicode.com/"footbal">足球            <input type="checkbox" name="hobby" value=http://www.mamicode.com/"multi_color" checked="checked">彩色球    </p>    <p>        性别:<input type="radio" name="sex" value=http://www.mamicode.com/"1"><input type="radio" name="sex" value=http://www.mamicode.com/"0"></p>    <p>        <input type="reset">    </p>    <p>        <input type="button" value=http://www.mamicode.com/"按钮">    </p>    <p>        <input type="file">    </p>    <p>        <input type="submit">    </p></form></body></html>
注册实例

2、select标签

‘‘‘ <select> 下拉选标签属性          name:表单提交项的键.          size:选项个数          multiple:multiple 多选,需按Ctrl进行选择                 <optgroup>为每一项加上分组                 <option> 下拉选中的每一项 属性:                       value:表单提交项的值.                          selected: selected下拉选默认被选中‘‘‘
技术分享
<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta http-equiv="x-ua-compatible" content="IE=edge">    <meta name="viewport" content="width=device-width, initial-scale=1">    <title>Title</title></head><body><form action="">    <tr>省份:    <select name="provinces" >        <optgroup label="华北"></optgroup>        <option value=http://www.mamicode.com/"henan">河南</option>        <option value=http://www.mamicode.com/"hebei">河北</option>        <option value=http://www.mamicode.com/"shanxi">山西</option>        <option value=http://www.mamicode.com/"..." selected>....</option>    </select>    </tr></form></body></html>
选择实例

3、<textarea> 多行文本框

<form id="form1" name="form1" method="post" action="">        <textarea cols=“宽度” rows=“高度” name=“名称”>                   默认内容        </textarea></form>
技术分享
<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta http-equiv="x-ua-compatible" content="IE=edge">    <meta name="viewport" content="width=device-width, initial-scale=1">    <title>注册</title></head><body><form action="/index" method="post">    <p>姓名         <input type="text" name="user" placeholder="用户名" id="user">    </p>    <p>        密码 <input type="password" name="pwd">    </p>    <p>        爱好 <input type="checkbox" name="hobby" value=http://www.mamicode.com/"basketball">篮球             <input type="checkbox" name="hobby" value=http://www.mamicode.com/"footbal">足球            <input type="checkbox" name="hobby" value=http://www.mamicode.com/"multi_color">彩色球    </p>    <p>        性别:<input type="radio" name="sex" value=http://www.mamicode.com/"1"><input type="radio" name="sex" value=http://www.mamicode.com/"0"></p>    <p>简介:        <textarea name="jianjie" id="form1" cols="30" rows="10" placeholder="个人简介"></textarea>    </p>    <p>        <input type="reset">    </p>    <p>        <input type="button" value=http://www.mamicode.com/"按钮">    </p>    <p>        <input type="file">    </p>    <p>        <input type="submit">    </p></form></body></html>
多行文本框

4、<label>标签

定义:<label> 标签为 input 元素定义标注(标记)。
说明:
1 label 元素不会向用户呈现任何特殊效果。
2 <label> 标签的 for 属性值应当与相关元素的 id 属性值相同。

<form method="post" action="">        <label for=“username”>用户名</label>        <input type=“text” name=“username” id=“username” size=“20” /></form>
技术分享
<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta http-equiv="x-ua-compatible" content="IE=edge">    <meta name="viewport" content="width=device-width, initial-scale=1">    <title>注册</title></head><body><form action="/index" method="post">    <p><label for="user">姓名</label>         <input type="text" name="user" placeholder="用户名" id="user">    </p>    <p>        密码 <input type="password" name="pwd">    </p>    <p>        爱好 <input type="checkbox" name="hobby" value=http://www.mamicode.com/"basketball">篮球             <input type="checkbox" name="hobby" value=http://www.mamicode.com/"footbal">足球            <input type="checkbox" name="hobby" value=http://www.mamicode.com/"multi_color">彩色球    </p>    <p>        性别:<input type="radio" name="sex" value=http://www.mamicode.com/"1"><input type="radio" name="sex" value=http://www.mamicode.com/"0"></p>    <p>        <input type="reset">    </p>    <p>        <input type="button" value=http://www.mamicode.com/"按钮">    </p>    <p>        <input type="file">    </p>    <p>        <input type="submit">    </p></form></body></html>
标注实例

5、<fieldset>标签

<fieldset>    <legend>登录吧</legend>    <input type="text"></fieldset>

 效果:

技术分享

 二、CSS

1、CSS语法

CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明。

selector {                  property: value;                  property: value;             ...  property: value            }        

例如:

h1 {
   color:red; font-size:14px; }

技术分享

2、css的四种引入方式 

1.行内式

  行内式是在标记的style属性中设定CSS样式。这种方式没有体现出CSS的优势,不推荐使用。在HTML中使用。

<p style=" padding: 0px; color: rgb(0, 0, 255); line-height: 1.5 !important;">>hello world</p>

2.嵌入式

  嵌入式是将CSS样式集中写在网页的<head></head>标签对的<style></style>标签对中。

格式如下:

<head>    <meta charset="UTF-8">    <title>Title</title>    <style>        p{            background-color: #2b99ff;        }    </style></head>

3 链接式

  将一个.css文件引入到HTML文件中。

<link href="http://www.mamicode.com/mystyle.css" rel="stylesheet" type="text/css"/>

4.导入式

  将一个独立的.css文件引入HTML文件中,导入式使用CSS规则引入外部CSS文件,<style>标记也是写在<head>标记中,使用的语法如下:

<style type="text/css">           @import"mystyle.css"; 此处要注意.css文件的路径 </style> 

注意:

      导入式会在整个网页装载完后再装载CSS文件,因此这就导致了一个问题,如果网页比较大则会儿出现先显示无样式的页面,闪烁一下之后,再出现网页的样式。这是导入式固有的一个缺陷。使用链接式时与导入式不同的是它会以网页文件主体装载前装载CSS文件,因此显示出来的网页从一开始就是带样式的效果的,它不会象导入式那样先显示无样式的网页,然后再显示有样式的网页,这是链接式的优点。

3、css选择器

1.基本选择器

技术分享

2.组合选择器

E,F   多元素选择器,同时匹配所有E元素或F元素,E和F之间用逗号分隔
  div,p { color:#f00; } E F 后代元素选择器,匹配所有属于E元素后代的F元素,E和F之间用空格分隔
  li a { font-weight:bold;} E > F 子元素选择器,匹配所有E元素的子元素F
  div > p { color:#f00; } E + F 毗邻元素选择器,匹配所有紧随E元素之后的同级元素F
  div + p { color:#f00; } E ~ F 普通兄弟选择器(以破折号分隔)
  .div1 ~ p{font-size: 30px; }

注意,关于标签嵌套:

一般,块级元素可以包含内联元素或某些块级元素,但内联元素不能包含块级元素,它只能包含其它内联元素。需要注意的是,p标签不能包含块级标签。

3.属性选择器

E[att]          匹配所有具有att属性的E元素,不考虑它的值。(注意:E在此处可以省略。                比如“[cheacked]”。以下同。)            p[title] { color:#f00; } E[att=val]      匹配所有att属性等于“val”的E元素           div[class=”error”] { color:#f00; }  E[att~=val]     匹配所有att属性具有多个空格分隔的值、其中一个值等于“val”的E元素                td[class~=”name”] { color:#f00; } E[attr^=val]    匹配属性值以指定值开头的每个元素                                    div[class^="test"]{background:#ffff00;} E[attr$=val]    匹配属性值以指定值结尾的每个元素             div[class$="test"]{background:#ffff00;} E[attr*=val]    匹配属性值中包含指定值的每个元素              div[class*="test"]{background:#ffff00;}

4.伪类

anchor伪类:专用于控制链接的显示效果

‘‘‘        a:link(没有接触过的链接),用于定义了链接的常规状态。        a:hover(鼠标放在链接上的状态),用于产生视觉效果。                a:visited(访问过的链接),用于阅读文章,能清楚的判断已经访问过的链接。                a:active(在链接上按下鼠标时的状态),用于表现鼠标按下时的链接状态。                伪类选择器 : 伪类指的是标签的不同状态:                           a ==> 点过状态 没有点过的状态 鼠标悬浮状态 激活状态                a:link {color: #FF0000} /* 未访问的链接 */                a:visited {color: #00FF00} /* 已访问的链接 */                a:hover {color: #FF00FF} /* 鼠标移动到链接上 */                a:active {color: #0000FF} /* 选定的链接 */ 格式: 标签:伪类名称{ css代码; }‘‘‘
技术分享
<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Title</title>    <style>       .top{           background-color: rebeccapurple;           width: 100px;           height: 100px;       }        .bottom{            background-color: green;            width: 100px;            height: 100px;        }        .outer:hover .bottom{            background-color: yellow;        }        注意:一定是outer:hover  控制outer里某一个标签,否则无效        .top:hover .bottom{            background-color: yellow;        }    </style></head><body><div class="outer">    <div class="top">top</div>    <div class="bottom">bottom</div></div></body></html>
示例

before after伪类 

 :before    p:before       在每个<p>元素之前插入内容      :after     p:after        在每个<p>元素之后插入内容     例:p:before{content:"hello";color:red;display: block;}

5.选择器的优先级

5.1 CSS的继承

继承是CSS的一个主要特征,它是依赖于祖先-后代的关系的。继承是一种机制,它允许样式不仅可以应用于某个特定的元素,还可以应用于它的后代。例如一个BODY定义了的颜色值也会应用到段落的文本中。

body{color:red;}       <p>helloyuan</p>

这段文字都继承了由body {color:red;}样式定义的颜色。然而CSS继承性的权重是非常低的,是比普通元素的权重还要低的0。

p{color:green}

发现只需要给加个颜色值就能覆盖掉它继承的样式颜色。由此可见:任何显示申明的规则都可以覆盖其继承样式。 

      此外,继承是CSS重要的一部分,我们甚至不用去考虑它为什么能够这样,但CSS继承也是有限制的。有一些属性不能被继承,如:border, margin, padding, background等。

div{  border:1px solid #222}<div>hello <p>yuan</p> </div>
5.2 CSS的优先级

所谓CSS优先级,即是指CSS样式在浏览器中被解析的先后顺序。

样式表中的特殊性描述了不同规则的相对权重,它的基本规则是:

1 内联样式表的权值最高                 style=""------------1000;

2 统计选择符中的ID属性个数。         #id --------------100

3 统计选择符中的CLASS属性个数。    .class -------------10

4 统计选择符中的HTML标签名个数。   p ---------------1

按这些规则将数字符串逐位相加,就得到最终的权重,然后在比较取舍时按照从左到右的顺序逐位比较。

  1、文内的样式优先级为1,0,0,0,所以始终高于外部定义。     2、有!important声明的规则高于一切。  3、如果!important声明冲突,则比较优先权。  4、如果优先权一样,则按照在源码中出现的顺序决定,后来者居上。  5、由继承而得到的样式没有specificity的计算,它低于一切其它规则(比如全局选择符*定义的规则)。

Day48:HTML(form标签)、CSS选择器