美文网首页web从零开始
七、CSS之——表格和表单

七、CSS之——表格和表单

作者: 风中丶凌乱 | 来源:发表于2018-09-11 23:07 被阅读0次

    表格

    在web的历史中,HTML的表格发挥了巨大作用。最初创建表格就是为了以表格的形式显示数据,后来变成了一个极受欢迎的布局工具。
    但是有了CSS以后,CSS在布局网页方面实际上会更加出色,所以现在我们使用表格的作用只有一个,就是用来表示格式化的数据。
    HTML中的表格可以很复杂,但是通常情况下我们不需要创建过于复杂的表格。

    table tr td th
    使用table标签创建一个表格。
    tr表示表格中的一行。
    tr中可以编写一个或多个th和td。
    th表示表头。
    td表示表格中的一个单元格。

    caption thead tbody tfoot
    caption表示表格的标题
    thead表示表格的头部
    tbody表示表格的主体
    tfoot表示表格的底部

    合并单元格
    合并单元格指将两个或两个以上的单元格合并为一个单元格。
    合并单元格可以通过在th或td中设置属性来完成。
    横向合并:colspan
    纵向合并:rowspan

    表格的样式
    之前学习的很多属性都可以用来设置表格的样式,比如color可以用来设置文本的颜色。padding可以用来设置内容和表格边框的距离。
    text-align:设置文本的垂直对齐。
    vertical-align:设置文本的垂直对齐。
    可选值:top,baseline,middle,bottom
    border-spacing:边框间距
    border-collapse:边框合并

    • collapse:合并边框
    • separate:不合并边框

    长表格

    有一些情况下表格是非常的长的,这时就需要将表格分为三个部分,表头,表格的主体,表格底部
    在HTML中为我们提供了三个标签:
    thead 表头
    tbody 表格主体
    tfoot 表格底部

    这三个标签的作用,就来区分表格的不同的部分,他们都是table的子标签,都需要直接写到table中,tr需要写在这些标签当中
    
        thead中的内容,永远会显示在表格的头部
        tfoot中的内容,永远都会显示表格的底部
        tbody中的内容,永远都会显示表格的中间
    
    

    如果表格中没有写tbody,浏览器会自动在表格中添加tbody
    并且将所有的tr都放到tbody中,所以注意tr并不是table的子元素,而是tbody的子元素
    通过table > tr 无法选中行 需要通过tbody > tr

    <body>
    <table>
         头部
        <thead>
            <tr>
                <th>日期</th>
                <th>收入</th>
                <th>支出</th>
                <th>合计</th>
            </tr>
        </thead>
        中间
        <tbody>
            <tr>
                <td>2017.03.01</td>
                <td>500</td>
                <td>300</td>
                <td>2000</td>
            </tr>
         底部
        <tfoot>
            <tr>
                <td></td>
                <td></td>
                <td>合计</td>
                <td>100</td>
            </tr>
        </tfoot>
    
    

    表格的布局

    以前表格更多的情况实际上是用来对页面进行布局的,但是这种方式早已被CSS所淘汰了
    表格的列数由td最多的那行决定
    表格是可以嵌套,可以在td中在放置一个表格

    <body>
    <table border="1" width="50%">
        <tr height="100px">
            <td colspan="2"></td>
        </tr>
        <tr height="400px">
            <td width="20%"></td>
            <td width="80%">
                <table border="1" width="100%" height="100%">
                    <tr height="100px">
                        <td width="20%"></td>
                    </tr>
                    <tr height="100px">
                        <td width="20%"></td>
                    </tr>
                </table>
            </td>
        </tr>
        <tr height="100px">
            <td colspan="2"></td>
        </tr>
    </table>
    </body>
    
    

    [图片上传失败...(image-14dc85-1536678295447)]

    完善clearfix

    解决父子元素的外边距重叠

     .box1:before{
            content: "";
            /*display:table可以将一个元素设置为表格显示*/
             display: table;
        }
    
    

    解决父元素高度塌陷

    .clearfix:after{
            content: "";
            display: block;
            clear: both;
            }
    
    

    经过修改后的clearfix是一个多功能的样式,既可以解决高度塌陷,又可以确保父元素和子元素的垂直外边距不会重叠

       合并并解决兼容性
        .clearfix:before,
        .clearfix:after{
            content: "";
            display: table;
            clear: both;
        }
        .clearfix{
            zoom: 1;
        }       
    
    

    表单

    表单的作用就是用来将用户信息提交给服务器的
    比如:百度的搜索框 注册 登录这些操作都需要填写表单

    • 使用form标签创建一个表单
      form标签中必须指定一个action属性,该属性指向的是一个服务器的地址
      当我们提交表单时将会提交到action属性对应的地址

        <form action="demo075_target.html">
      
      

    使用form创建的仅仅是一个空白的表单,我们还需要向form中添加不同的表单项

    • 在表单中可以使用fieldset来为表单项进行分组,可以将表单项中的同一组放到一个fieldset中

        <fieldset>
            <!-- 在fieldset可以使用legend子标签,来指定组名 -->
            <legend>用户信息</legend>      
      
      
    • 使用input来创建一个文本框,它的type属性是text
      如果希望表单项中的数据会提交到服务器中,还必须给表单项指定一个name属性
      name表示提交内容的名字

       <input type="text" name="aaa">
      
      
    • 用户填写的信息会附在url地址的后边以查询字符串的形式发送给服务器
      url地址?查询字符串
      -格式:
      属性名=属性值&属性名=属性值&属性名=属性值&……
      在文本框中也可以指定value属性值,该值将会作为文本框的默认值显示

    • 在html中还为我们提供了一个专门用来选中表单中的提示文字的label标签label for="um"
      该标签可以指定一个for属性,该属性的值需要指定一个表单项的id值

            <label for="um">用户名</label>
            <!-- value是默认值,提示信息用:placeholder="用户名/邮箱/手机号" -->
            <input id="um" type="text" name="username" value="我是value"><br><br>              
      
      
    • 密码框type="password"
      使用input创建一个密码框,它的type属性值是password

      <label for="pwd">密码</label>
      <input id="pwd" type="password" name="password"><br><br>                           
      
      
    • 单选按钮type="radio"

      • 使用input来创建一个单选按钮,它的type属性使用radio
      • 单选按钮通过name属性进行分组,name属性相同是一组按钮
      • 像这种需要用户选择但是不需要用户直接填写内容的表单项,还必须指定一个value属性,这样被选中的表单项的value属性值将会最终提交给服务器

    如果希望在单选按钮或者是多选框中指定默认选中的选项,则可以在希望选中的项中添加checked="checked"属性

    性别<input type="radio" name="gender" value="male" id="male"><label for="male">男</label>
     <input type="radio" name="gender" value="female" checked="checked" id="female"><label for="female">女</label>
    
    
    • 多选框

      • 使用input创建一个多选框,它的type属性使用checkbox
      爱好<input type="checkbox" name="hobby" value="zq">足球
                <input type="checkbox" name="hobby" value="lq">篮球
                <input type="checkbox" name="hobby" value="ymq" checked="checked">羽毛球
                <input type="checkbox" name="hobby" value="ppq" checked="checked">乒乓球 
      
      
    • 下拉列表

      • 使用select来创建一个下拉列表
        下拉列表的name属性需要指定给select,而value属性需要指定给option

    可以通过在option中添加selected="selected"来将选项设置为默认选中
    当为select添加一个multiple="multiple",则下拉列表变为一个多选的下拉列表

        <select name="start">
            <!-- 
            在select中可以使用optgroup对选项进行分组
            同一个optgroup中的选项是一组
            可以通过label属性来指定分组的名字
             -->
            <optgroup label="女明星">
                <!-- 在下拉列表中使用option标签来创建一个一个列表项 -->
                <option value="fbb">范冰冰</option>
                <option value="lxr">林心如</option>
                <option value="zw">赵薇</option>
            </optgroup>
            <optgroup label="男明星">
                <option value="zbs" selected="selected">赵本山</option>
                <option value="ldh">刘德华</option>
                <option value="zjl">周杰伦</option>
            </optgroup>
        </select>
        <br><br>
    
    
    • 使用textarea创建一个文本域

      自我介绍<textarea name="info"></textarea>
        <br><br>
      
      
    • 提交按钮可以将表单中的信息提交给服务器
      使用input创建一个提交按钮,它的type属性值是submit
      在提交按钮中可以通过value属性来指定按钮上的文字

      <input type="submit" value="注册" />
      
      
    • 创建一个重置按钮,点击重置按钮以后表单中内容将会恢复为默认值

         <input type="reset">
      
      
    • 创建一个单纯的按钮,这个按钮没有任何功能,只能被点击

        <input type="button" value="按钮">
      
      
    • 除了使用input,也可以使用button标签来创建按钮
      这种方式和使用input类似,只不过由于它是成对出现的标签,使用起来更加的灵活

        <button type="submit">提交</button>
        <button type="reset">重置</button>
        <button type="button">按钮</button>
      
      

    相关文章

      网友评论

        本文标题:七、CSS之——表格和表单

        本文链接:https://www.haomeiwen.com/subject/egkugftx.html