• Web前端学习第五天·fighting_框架和表单


    首先祝自己祝大家520快乐吖~祝有对象的幸福下去,没对象的早日找到对象,实在找不到的自己new一个对象!!!

    框架集<frameset>

      大的网站不会使用框架集,小网站会使用框架集来制作。

      框架提供一种简便的分栏式布局,减少对网页内容的下载,提升网页的加载速度。只能应用于一些简单的页面布局,不适合复杂页面的布局。

      <frameset>用来划分窗体,不能放在<body>中,否则没有效果。重要属性除了rows和cols以为还有frameborder(边框的厚度,默认值为5,等于0时边框没有明显的边界),border(框架之间的距离,一般设置为0),bordercolor(边框的颜色,不经常使用,因为border和frameborder通常设置为0)。

      <frameset>可以设置cols,也可以设置rows(页面按行纵向分布)。一般用百分比来设置,也可以用固定的像素来设置(当最后一列以“*”表示时,则前面数字单位是像素,否则是百分比),如下所示。  

     1 <!DOCTYPE html>
     2 <html>
     3     <head>
     4         <title>框架集的使用</title>
     5     </head>
     6     <frameset cols="35%,35%,*">
     7         <frame></frame>
     8     <frame></frame>
     9     <frame></frame>
    10     </frameset>
    11 </html>

      <frame>的重要属性:src(资源,例如:src="http://www.baidu.com")、name(框架的名称)、noresize(不可以调整框架的大小吗,默认值为false,即可以调整)、scrolling(是否出现滚动条,默认是auto,scrolling="no"时不出现滚动条,等于yes时滚动条出现)。

      <frameset>也可以将页面划分为多行多列。示例代码如下:(每一部分页面按顺序存放)。

     1 <!DOCTYPE html>
     2 <html>
     3     <head>
     4         <title>将页面切分成3行3列<title>
     5     </head>
     6     <frameset rows="1,1,1" cols="1,1,1">
     7         <frame/><!--第一行第一列-->
     8         <frame/><!--第一行第二列-->
     9         <frame/><!--第一行第三列-->
    10 
    11         <frame/><!--第二行第一列-->
    12         <frame/><!--第二行第二列-->
    13         <frame/><!--第二行第三列-->
    14 
    15         <frame/><!--第三行第一列-->   
    16         <frame/><!--第三行第二列--> 
    17         <frame/><!--第三行第三列-->
    18                    
    19     </frameset>       
    20 </html>

      <frameset>跨行跨列的页面布局,使用框架集的嵌套实现,如下所示。

     1 <!DOCTYPE html>
     2 <html>
     3     <head><title>框架集的嵌套使用</title></head>
     4     <frameset rows="20%,*">
     5         <frame src="http:www.baidu.com"/>
     6         <frameset cols="30%,*">
     7             <frame src="http:www.tmall.com"/>
     8             <frame/>
     9         </frameset>
    10     </frameset>
    11 </html>

    超链接在框架中的使用

      在<a>超链接标签中设置target的属性值等于要显示部分的框架的名称。

      可以做一个自己所做案例显示的静态网页供别人查看。

      <a>标签的target属性值除了_blank(打开新窗口)、_self(默认,在本窗口中打开)这两个以外,还有_parent(超链接所在框架的父容器)、_top(顶级容器,整个窗口是顶级容器)

    <iframe>框架

      行级标签。

      在一个网页的局部嵌入其它网页的内容。

      网页相同的地方可以采用<iframe>减少编码量,且容易维护(如当当网)。

      门户网站使用较多(大多用在广告位),购物网站用的较少。当当网每个页面的头部和尾部基本相同,可以使用<iframe>标签来减少代码量。

      常用的属性:marginwidth(框架内容和左右边框的距离)、marginheight(框架内容和上下边框的距离,设置为0,为了让内容完全显示在框架内)、scrolling="no"(无滚动条)。

      注意:<iframe>要有正确的结束标签</iframe>,否则无法正确显示。

    客户端访问服务器的方式

      get请求

        地址栏写网址而后回车,这种方式就属于get请求。

        访问的数据显示在url上,数据有不安全因素,重要的数据需要加密处理。

        get请求的数据长度有限,不用的浏览器的长度有一定的区别,不能使用get请求较大的数据,一般不超过2kb。(IE6.0和IE7.0的url最大长度是2083个字符,超过后无法提交。firefox最大长度7764,超过最大长度无法提交。opera9最大长度7684,超出后无法提交,谷歌最大长度7713,超出后无法提交。项目开发中可以忽略。)

        get访问的速度较快,一般用于从服务器获取数据到客户端。

        使用这种方式提交客户端数据时,会将相应的数据显示在url的参数中去。安全性较差。

      post请求

        要将客户端的数据提交给服务器时,使用post请求,一般用于收集表单数据。

        访问的数据封装在http的请求流,不会再url上显示,相对比较安全。

        从理论上讲,请求的数据没有大小的限制,但实际上数据请求的大小和服务器(可以限制客户端提交数据的大小)也有关系。

        数据请求较慢,无论数据大小都需要请求两次,先发送请求头,再发送请求体。

        使用这种方式提交客户端数据时,相应的数据不会显示在url的参数中,比较安全。

      还有其他几种几乎不用的请求方式。

    <form>表单简介

      用于手机用户的数据,填写完成后,提交数据给服务器去处理。

      块级标签。

      要收集的内容都要放在表单里面,一个页面可以有多个表单。(ajax也可以用来提交数据)

      常用于系统登录,系统注册,后台添加数据。

      属性:action、method、enctype

        action  表单要提交的地址,用于处理表单的内容(一般是提交到后台的一个接口,这个接口是java写成的,提交到这个接口后后台就知道如何处理这些数据了)。

        method  提交的方法,get还是post,默认是get方式提交。

        enctype  对表单数据进行编码,默认都是要编码的。格式为:application/x-www-form-urlencoded(表单默认的编码格式,表单发送前对所有字符进行编码。编码规则:空格转换为“+”号,特殊符号转换为ASC HEX值)。提交普通的文本内容到服务器就可以采用这种默认的编码方式。当你需要提交的是一个文件时,编码就需要采用另一种格式:multipart/form-data(不对字符编码,文件上传时使用)。text/plain(是一种纯文本编码,空格转换为“+”号,但是不对特殊字符进行编码)。

    表单元素

      <input>标签,通过type属性值指定具体类型,不指定类型时,默认是text文本框类型。

      公共属性有:size(指定表单元素的初始宽度。当type为text或password时,表单元素的大小以字符为单位,对于其他元素,宽度以像素为单位)、maxlength(type为text或password时,表示输入的最大字符数),有利于防止sql的注入攻击。

      <input>标签的type属性值有如下几种情况:

        text  文本框(如用户名的输入)。重要属性:autocomplete(自动完成输入的内容,要求表单元素要有name属性才有自动完成的效果,off表示自动完成不可用,on表示自动完成可用)、disabled(设置或者获取控件的状态,默认是false即可用,等于true时不可用,不能输入内容)。

        password  密码框。属性与文本框类似。

        button  普通按钮。一般结合javascript使用。属性:value(显示在button上的名称)、onclick="alert('谢谢!');"(JS)。

        submit  提交按钮。用于提交表单。

        reset  重置按钮。清空表单的输入,恢复到表单默认的状态。

        checkbox  复选框。属性:name(名字一定要是一样的,一样的名字才表示是一组数据)、value(必须要写,否则提交到服务器后为空值,不知道所选项是什么,一般情况下它的值与显示的名称相同,实际开发过程中value一般是编号)、checked(是否被选中的状态,true表示被选中,false表示没被选中,但是false在浏览器解析时并不能实现这样的功能,还是会显示被选中,与disabled属性类似)。

        友好设计:不只是选中复选框才能选中并打钩,要求点击对应的文字也能选中该复选框。这种情况下要用到<label>标签的for属性(设置或获取给定标签对象指定到的对象,值=另一个元素的id号即可)。下面的这行代码可以点击文字选中对应的复选框。

    <input type="checkbox" id="chkDQ" name="hobby" value="打球"/><label for="chkDQ">打球</label>

        下面的这行代码没有上面的功能。

    <input type="checkbox" id="chkDQ" name="hobby" value="打球"/><span>打球</span>

        radio  单选按钮。属性:name(将name的值设置为相同值,才表示一组数据,才能实现单选功能)、value与复选框的value属性同理、checked(是否被选中的状态,true表示被选中)。

        hidden  隐藏字段。属性:value(隐藏的内容)。

        使用场景:传用户数据时给定一个用户不需要知道的值给服务器,可以做数据的主键。

        image  图片按钮,用来提交表单,与submit是一样的效果。属性:src(图片路径)。

        file  文件域,上传文件。不同的浏览器表现形式不同。

      <textarea>文本域标签。默认表现形式是可以输入很多行文本的文本框,在谷歌浏览器中可以拉伸拖拽,IE浏览器中不可以。

        属性:cols(设置文本域宽度)、rows(设置文本域高度,即行数)。

        注意文本域标签的开始标签和结束标签之间尽量不要有空格,尽量紧挨着写,否则提交表单数据到服务器时会把一大段空格一起提交,出现问题。也不要将文本域标签写成<textarea/>,即不能是空标签。

      <select>下拉框标签。使用时要结合<option>子标签一起使用。

        属性:name(做动态网站必须使用name,相应的option必须给定value属性属性值以明确用户选中的是哪一项)。

        <option>的属性:selected(设置列表框中的选项是否为默认项)、value(提交到服务器的值)。

    HTML5表单元素

      <input>标签的type属性值:

        color  颜色标签。value指定颜色值(采用#十六进制数表示)。点击这一块就可以选择相应的颜色。

          一个好用的工具:ColorPix.exe 取色工具,获取你看到的东西的颜色的各种值。

        date  日期。不再需要写大量的脚本来选择日期。value值指定默认的日期,格式为****-**-**(年月日)。

        datetime-local  显示本地时间。value值指定默认的时间,格式为2016-05-20T19:58:22(年月日T时分秒),不给定的话可以自己选择。 

        number  数字向上或者向下滑动。可以填数字然后向上或者向下选择不同的值。

        range  滑动标签。min(指定最小值)、max(指定最大值)、value(指定当前默认值)。

        week  每年的周数。value指定哪一年第几周,格式为2016-W25(2016年第25周)。

    练习代码段

     1 <!DOCTYPE html>
     2 <html>
     3     <head>
     4     <title>form表单案例</title>
     5     <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
     6     </head>
     7     <body>
     8     <form action="success.html" type="get" enctype="application/x-www-form-urlencoded">
     9         <p>
    10         <span>姓名</span>
    11         <input type="text" autocomplete="on"/>
    12         </p>
    13         <p>
    14         <span>密码</span>
    15         <input type="password"/>
    16         </p>
    17         <p>
    18         <span>按钮</span>
    19         <input type="button" value="普通按钮"/>
    20         <input type="submit" value="提交按钮"/>
    21         <input type="reset" value="重置按钮"/>
    22         </p>
    23         <p>
    24         <span>爱好</span>
    25         <input id="chkZQ" type="checkbox" name="hobby" value="足球" checked="true"/><label for="chkZQ">足球</label>
    26         <input id="chkLQ" type="checkbox" name="hobby" value="篮球" checked="true"/><label for="chkLQ">篮球</label>
    27         <input id="chkTW" type="checkbox" name="hobby" value="跳舞"/><label for="chkTW">跳舞</label>
    28         <input id="chkJS" type="checkbox" name="hobby" value="健身"/><label for="chkJS">健身</label>
    29         </p>
    30         <p>
    31         <span>性别</span>
    32         <input id="rdoMale" type="radio" name="sex" value="male"/><label for="rdoMale"></label>
    33             <input id="rdoFemale" type="radio" name="sex" value="female" checked="true"/><label for="rdoFemale"></label>
    34         </p>
    35         <p>
    36         <span>隐藏文字</span>
    37         <input type="hidden" value="这部分文字需要隐藏"/>
    38         </p>
    39         <p>
    40         <span>图片按钮</span>
    41         <input type="image" src="images/tianmao.ico"/>
    42         </p>
    43         <p>
    44         <span>上传文件</span>
    45         <input type="file"/>
    46         </p>
    47         <p>
    48         <span>备注</span>
    49         <textarea cols="20" rows="5"></textarea>
    50         </p>
    51         <p>
    52         <span>城市</span>
    53         <select>
    54             <option value="1" selected="true">上海</option>
    55             <option value="1">北京</option>
    56             <option value="1">武汉</option>
    57             <option value="1">深圳</option>
    58             <option value="1">南通</option>
    59         </select>
    60         </p>
    61     </form>
    62     <hr/>
    63     <h1>HTML5表单元素</h1>
    64     <form action="success.html" type="get">
    65         <p>
    66         <span>颜色</span>
    67         <input type="color" value="#000000"/>
    68         </p>
    69         <p>
    70         <span>日期</span>
    71         <input type="date" value="2016-07-07"/>
    72         </p>
    73         <p>
    74         <span>时间</span>
    75         <input type="datetime-local" value="2016-07-08T22:09:56"/>
    76             </p>
    77         <p>
    78         <span>数字滑动</span>
    79         <input type="number" value="22"/>
    80         </p>
    81         <p>
    82         <span>进度条</span>
    83         <input type="range" min="0" max="100" value="20"/>
    84         </p>
    85         <p>
    86         <span>周数</span>
    87         <input type="week" value="2016-W25"/>
    88         </p>
    89     </form>
    90     </body>
    91 </html>

    页面内容如下:

        

      

      

      

      

      

      

  • 相关阅读:
    [Unity] 如何通过 C# 代码控制角色动画的播放
    [Unity] Unity粒子系统报错: Ensure Read/Write is enabled on the Particle System's Texture.
    [Unity] Shader Graph Error 当前渲染管道与此主节点不兼容(The current render pipeline is not compatible with this master node)
    [运维] 请求 nginx 出现 502 Bad Gateway 的解决方案!
    [排错] SpringBoot 警告 Could not find acceptable representation
    [理解] C++ 中的 源文件 和 头文件
    [经验] 如何将 Java 项目发布到云服务器上并可以访问
    均衡与竞争
    指数退避算法
    判断两个多项式是否为同一个方程
  • 原文地址:https://www.cnblogs.com/Candy1029/p/5511456.html
Copyright © 2020-2023  润新知