博客列表 >表单与CSS选择器--2018-8-16

表单与CSS选择器--2018-8-16

晓明的博客
晓明的博客原创
2018年08月16日 17:15:02579浏览

一 上课笔记重点

    1).表单的基本元素

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>3-1表单的基本元素</title>
</head>
<body>
<!-- 1.我们先看一下表单是什么?几乎每个网站都会有
2.表单给人最直接的印象就是有一些输入框,还有一些按钮
3.这些输入框,可以接受用户输入的数据,按钮可以将用户的数据进行提交
4.表单元素是由一组标签组成的 -->

<!-- 提交方式有很多,最主要的有二种:
1.get方式:这也是默认的方式,用户提交的表单数据全部在url地址上
优点是便于收藏和重复调用,缺点是不安全并且数据数量受限制
2.post方式:数据通过请求头来提交,url地址栏看不到,非常安全,且长度不受限制

get方式非常适合传递不敏感且长度很短的数据
post方式非常适合传递重要数据且长度不确定的数据 -->

<form action="demo.php" method="get">
    <!-- <form action="demo.php" method="post"> -->
    <!-- 最重要的输入控件标签是<input>,它有很多类型,是由type属性来指定的 -->
    <!-- 1.文本框: 最常见,可以输入文本,常用来输入用户名帐号等 -->
    <!-- 因为input是一个内联元素,多个input会在一行显示,所以后面加一个换行标签 -->
    <!-- name是输入控件的名称,一定要设置,因为PHP要用它当变量名来获取表单的数据
    value保存的是用户输入的数据,通常保持为空即可 -->
    姓名:<input type="text" name="name" value=""> <br>
    <!-- 2.密码框: type="password",和文本是一样的,只是用户输入的内容以星号代替 -->
    密码:<input type="password" name="password" value=""> <br>
    <!-- 3.单选框:顾名思义就是每次只能选择一项,例如性别,付 款方式等只能选择一个且选项较少的情况 -->
    <!-- 单选按钮的name值必须全部一样,才能确保仅返回一个选择 -->
    <!-- 可以设置默认选择荐:checked:它是布尔属性,不需要赋值,如果要给值就是它自己 -->
    性别:<input type="radio" name="sex" value="male">男
    <input type="radio" name="sex" value="woman">女
    <input type="radio" name="sex" value="secret" checked>保密
    <br>
    <!-- 4.复选框:就是一次可以选择多个数据提交,返回值是一个数组,name属性要加[],确保返回数组 -->
    爱好:<input type="checkbox" name="hobby[]" value="movie">看电影
    <input type="checkbox" name="hobby[]" value="game" checked>打游戏
    <input type="checkbox" name="hobby[]" value="cook">做饭
    <input type="checkbox" name="hobby[]" value="wash">洗衣 服
    <br>
    <!-- 5:下拉列表框:点击后会出一个下拉列表,用户可以选择一个或多个选项 -->
    <!-- 下拉列表使用的是select标签,名值对name和value分在二个标签中 -->
    <!-- name写在父标签select中,value写在option子标签中,可以用selected属性设置默认值 -->
    级别: <select name="level">
    <option value="0">纯洁的小白</option>
    <option value="1">有点污啦</option>
    <option value="2" selected>目空一切</option>
    <option value="3">宇宙无敌小霸王</option>
</select>
    <br>
    <!-- 6.文件上传域:accept属性设置允许上传的文件类型,不过这个很少用,应该在服务器进行判断 -->
    头像:<input type="file" name="photo" accept="image/*"> <br>

    <!-- 特殊的隐藏域:type="hidden",为什么要用隐藏域呢?
    1.有一些数据是自动生成的,不需要用户输入:例如注册时间
    2.有一些数据用户是不知道的,例如,用户id
    3.后端通过表单向一些页面传数据时使用的主键或关键字 -->
    <!-- 在页面看不到隐藏域的东西,但是提交后可以在后台看到通过隐藏域传递过来的数据 -->
    <input type="hidden" name="user_id" value="10">

    文本域:<textarea name="comment" rows="5" cols="30"></textarea><br>

    <!-- 7.提交按钮:type="submit",type="button"是普通按钮,失去提交功能 -->
    <input type="submit" name="submit" value="提交">
    <input type="button" name="button" value="提交">
    <!-- type="reset"可以重置用户数据,恢复到最初状态 -->
    <input type="reset" name="reset" value="重置">
    <!-- 8.提交图像按钮: type="image",默认就是提交功能,与submit功能是一样的 -->
    <input type="image" name="submit" src="../images/submit.jpg" width="30">

</form>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

      补充案例

   

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>3-2实战1:用表格布局来实现用户注册表单</title>
</head>
<body>
<!-- 这个案例中,我们还要学员几个新标签,<label><fieldset><legend> -->

<form action="" method="post">
    <table border="0" cellspacing="0" cellpadding="8" align="center" width="400" bgcolor="powderblue">
        <caption><h2>用户注册</h2></caption>
        <tr><td colspan="2"><hr></td></tr>  <!-- 此行代码就是画一条分隔线没有其它用处 -->
        <tr align="center">
            <td align="right" width="60"><label for="name">邮箱:</label></td>
            <td align="left" width="300"><input type="text" id="name" name="name" value="" placeholder="example@mail.com" size="30" width="200"></td>
        </tr>

        <tr align="center">
            <td align="right"><label for="password">密码:</label></td>
            <td align="left"><input type="text" id="password" name="name" value="" placeholder="字母+数字不少于10位" size="30"></td>
        </tr>

        <tr align="center">  <!-- 如何设置label标签,点击时会导致第一个控件被选中 -->
            <td align="right">性别:</td> <!-- 不需要进入焦点 -->
            <td align="left">
                <input type="radio"  name="sex" value="male">男
                <input type="radio"  name="sex" value="female">女
                <input type="radio"  name="sex" value="secret" checked="">保密
            </td>
        </tr>

        <tr align="center">
            <td align="right">兴趣:</td>   <!-- 不需要进入焦点 -->
            <td align="left">
                <input type="checkbox" name="happy[]" value="html">HTML
                <input type="checkbox" name="happy[]" value="css">CSS
                <input type="checkbox" name="happy[]" value="javascript">JavaScript
                <input type="checkbox" name="happy[]" value="php" checked="">PHP
            </td>
        </tr>

        <!-- tr[align="center"]>(td>label[for="level"]{级别:}+td>select[id="level" name="level"]>option[value=""]*3) -->
        <tr align="center">
            <td align="right"><label for="level">级别:</label></td>
            <td align="left">
                <select name="level" id="level">
                    <option value="">我是零基础的小白啦</option>
                    <option value="" selected="">已经入门啦</option>
                    <option value="">做过一些项目</option>
                    <option value="">已经是大神级别</option>
                </select>
            </td>
        </tr>

        <tr align="center">
            <td align="right"><label for="photo">头像:</label></td>
            <td align="left">
                <img src="../images/13.png" height="30">
                <input type="file" id="photo" name="photo" accept="image/*">
            </td>
        </tr>

        <tr align="center">
            <td valign="middle" align="right"><label>简介:</label></td>
            <td align="left"><textarea name="comment" id="comment" rows="5" cols="40" placeholder="文明上网,理性发言"></textarea></td>
        </tr>

        <tr>
            <td colspan="2" align="center">
                <hr>
                <input type="submit" name="submit" value="提交">
                    
                <input type="reset" name="reset" value="重填">
            </td>
        </tr>

    </table>
</form>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例


   2)样式的继承和样式冲突解决案例

   一.

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>样式继承</title>
    <style>
        body {
            font-size:22px; /*可继承*/
        }
        ul {
            font-weight: bolder; /*可继承*/
            border: 1px solid red; /*边框不可继承*/
            padding: 1rem;
        }

        ul li {
            border: inherit; /*指定inherit才可强制继承*/
            padding: inherit; /*指定inherit才可强制继承*/

            /*在浏览器检查器的style中可以看到li标签的所有样式规则与继承关系*/
        }
    </style>
</head>
<body>
    <!--nav>ul>li.item$*4>a{导航$$}-->
    <nav>
        <ul>
            <li class="item1"><a href="">导航01</a></li>
            <li class="item2"><a href="">导航02</a></li>
            <li class="item3"><a href="">导航03</a></li>
            <li class="item4"><a href="">导航04</a></li>
        </ul>
    </nav>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

   二:

  

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>样式冲突</title>
    <!--引入外部样式表文件:style-->
    <link rel="stylesheet" href="style.css">
</head>
<body>
<!--1.与样式声明的位置相关-->
<!--内部样式声明,仅适用当前文档-->
<style>
    h2 {
        /*color: cyan;*/
        /*3重要性级别最高 !important,内联样式都会被覆盖,江湖大哥*/
        color: cyan!important;
        /*2.与样式声明的顺序相关,相同样式规则之间互相层叠覆盖*/
        color: gold;  /*金色覆盖青色*/
    }
</style>
<!--内联样式声明,仅适用于当前元素-->
<!--优先级: 内联 > 内部 > 外部 (特殊性越小,优先级别越低)-->
<!--<h2>《CSS权威指南》</h2>-->
<!--<h2 style="color: coral">《CSS权威指南》</h2>-->

</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

二:作业提交

   test.jpg

作业二:

  

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>选择的使用</title>
    <style type="text/css">
        ul {
            margin: 0px;
            padding:0px;
            width:550px;
        }
        ul li{
            float: left;
            list-style: none;
            text-align: center;
            box-shadow: 2px 2px #999;
            width:40px;
            margin-left: 5px;
            height:40px;
            line-height: 40px;
            border: 1px solid blue;
            border-radius: 50%;
        }
        /*id 类 标签选择器省略*/
        ul li[class]{
           background-color:darkblue; /* 这里选择所以具有class属性的,这里还可以 属性名="值"*/
        }
        ul li[class^="test"]{ /* 这里的 ^表示已上门开头 $以什么结尾  * 包含 */
            background-color: bisque;
        }
        ul li span{  /* 后代选择器 */
            color:red;
        }
        ul >li{   /* ul后面所以的li--直接儿子 */
            background-color: greenyellow;
        }
        ul >li[class="test"] ~*{ /*选择当前元素之后的所有同级元素(不含当前)*/
            background-color: black;
            color: white;
        }
        /*相邻兄弟选择器*/
        ul li[class$="test"] + li {
            background-color: pink;
            color: red;
        }

        /*群组选择器*/
        h1, p {
            font-size: 2rem;
            font-weight: lighter;
            margin: 0;
        }

        /*伪类选择器: 链接*/
        a {
            font-size: 2rem;
        }
        /*访问前*/
        a:link {
            color:red;
        }
        /*访问后*/
        a:visited {
            color: orange;
        }
        /*获取焦点时*/
        a:focus {
            color: purple;
        }
        /*鼠标悬停时*/
        a:hover {
            color: green;
        }
        /*鼠标点击时*/
        a:active {
            color: blue;
        }

        /*伪类选择器: 位置*/
        /*选择集合中的第一个元素*/
        ul li:first-child {
            background-color: #efefef;
            background-color: #efefef!important;
        }

        /*选择集合中的最后一个子元素*/
        ul li:last-child {
            background-color: red;
        }

        /*按索引选择指定的元素,注意从1开始计数*/
        ul li:nth-child(5) {
            background-color: red;
        }
        /* 选择所有的偶数小球变色 */
        /* 2n偶数, even偶数, 2n+1奇数, odd奇数*/
        ul li:nth-child(even) {
            background-color: purple!important;
        }

        /*伪类选择器: 根据子元素数量*/
        /*选择具有唯一子元素的元素*/
        ol:only-child {
            background-color: lawngreen;
        }

        /* 选择指定类型的唯一子元素 */
        ol li:only-of-type {
            background-color: lawngreen;
        }

        /* 倒数选择指定位置的元素 */
        ul li:nth-last-child(3) {
            /*将倒数第3个小球变色,实际上第8号球*/
            background-color: wheat!important;
        }

        /*选择指定父级的第二个<li>子元素*/
        ol li:nth-of-type(2) {
            background-color: wheat;
        }

        /*选择页面中内容为空的元素*/
        :empty {
            width: 220px;
            height: 271px;
            background-color: coral;

        }

        :empty:after {
            content: '看到我了吗?亲';
        }

        :empty:before {
            /*默认插入的元素为行内元素,不支持宽度设定,如果一定要设置可以通过背景图片实现*/
            content: url("http://a.hiphotos.baidu.com/image/pic/item/9345d688d43f87949470e9e5de1b0ef41ad53a69.jpg");
            width:200px;
            height: 200px;
        }

    </style>
</head>
<body>
<ul>
    <li class="First">1</li>
    <li class="testSecond">2</li>
    <li>3 <span>玩</span></li>
    <li>4</li>
    <li>5</li>
    <li class="test">6</li>
    <li>7</li>
    <li>8</li>
    <li>9</li>
    <li>10</li>
</ul>
<hr>
<h1>css选择器大法</h1>
<p>css选择器非常重要,对于后面的jquery学习至关重要</p>
<a href="http://baidu.com">我伪类测试</a>
<ol>
    <li>列表项1</li>
    <!--
    现在给ol再添加一个子元素<p>,有二个子元素了,所以子元素不再唯一,
    如何才能选中唯一的li元素呢?only-of-type
    -->
    <p>我是一个段落</p>
</ol>
<ol>
    <li>列表项1</li>
    <li>列表项2</li>
    <li>列表项3</li>
</ol>

<ol>
    <li>列表项1</li>
    <li>列表项2</li>
    <li>列表项3</li>
    <li>列表项4</li>
</ol>
<!--空区块-->
<div></div>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议